24#include <unordered_map>
26#include "DataObjectReference.h"
113namespace RESQML2_0_1_NS
138namespace WITSML2_1_NS
149namespace PRODML2_2_NS
152 class FluidCharacterization;
153 class TimeSeriesData;
158 class AbstractObject;
160 class HdfProxyFactory;
188 READ_WRITE_DO_NOT_CREATE = 2,
191 enum CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
217 case EnergisticsStandard::PRODML2_2:
218 defaultProdmlVersion = version;
break;
219 case EnergisticsStandard::RESQML2_0_1:
220 case EnergisticsStandard::RESQML2_2:
221 defaultResqmlVersion = version;
break;
222 case EnergisticsStandard::WITSML2_1:
223 defaultWitsmlVersion = version;
break;
224 case EnergisticsStandard::EML2_0:
225 case EnergisticsStandard::EML2_3:
226 defaultEmlVersion = version;
break;
228 throw std::invalid_argument(
"Unrecognized Energistics standard.");
274 DLL_IMPORT_OR_EXPORT
void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
293 DLL_IMPORT_OR_EXPORT
void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
305 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >&
getJournal()
const {
return journal; }
310 DLL_IMPORT_OR_EXPORT
virtual void on_CreateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
315 DLL_IMPORT_OR_EXPORT
virtual void on_UpdateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
321 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
resolvePartial(COMMON_NS::AbstractObject * partialObj);
326 DLL_IMPORT_OR_EXPORT
const std::vector<COMMON_NS::AbstractObject*>&
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return forwardRels.at(dataObj); }
335 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
336 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
348 template <
class valueType>
351 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
363 DLL_IMPORT_OR_EXPORT
const std::vector< COMMON_NS::AbstractObject*>&
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return backwardRels.at(dataObj); }
372 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
373 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
385 template <
class valueType>
388 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
390 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
418 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy,
bool replaceOnlyContent =
false);
435 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceGsoapProxy(
const std::string & xml,
const std::string & contentType,
const std::string& uriSource);
443 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > &
getDataObjects()
const {
return dataObjects; }
476 template <
class valueType>
479 std::vector<valueType*> result;
481 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
482 for (
size_t i = 0; i < it->second.size(); ++i) {
483 if (
dynamic_cast<valueType*
>(it->second[i]) !=
nullptr) {
484 result.push_back(
static_cast<valueType*
>(it->second[i]));
498 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractLocal3dCrs*
getDefaultCrs()
const {
return defaultCrs; }
506 DLL_IMPORT_OR_EXPORT
void setDefaultCrs(RESQML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
514 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy*
getDefaultHdfProxy()
const {
return defaultHdfProxy; }
522 DLL_IMPORT_OR_EXPORT
void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
527#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
528 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
529 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
530 const size_t result = get##dataObjectName##Set().size();\
531 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
532 return static_cast<unsigned int>(result);\
534 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
535 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
536 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
540 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
541 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
543 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
544 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
545 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
546 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
547 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
548 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
549 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
550 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
551 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
552 GETTER_DATAOBJECTS(RESQML2_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
553 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
554 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
555 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
556 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
557 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
558 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
559 GETTER_DATAOBJECTS(RESQML2_NS::LocalDepth3dCrs, LocalDepth3dCrs)
560 GETTER_DATAOBJECTS(RESQML2_NS::LocalTime3dCrs, LocalTime3dCrs)
561 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
562 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
563 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
564 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
565 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
566 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
569 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
570 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
571 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
572 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
573 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
574 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
575 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
576 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
577 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
578 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
579 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
580 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
581 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
582 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
583 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
584 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
585 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
586 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
588 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
595 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, WellCompletion)
596 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreCompletion, WellboreCompletion)
597 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreGeometry, WellboreGeometry)
598 GETTER_DATAOBJECTS(WITSML2_1_NS::Log, Log)
599 GETTER_DATAOBJECTS(WITSML2_1_NS::ChannelSet, ChannelSet)
600 GETTER_DATAOBJECTS(WITSML2_1_NS::Channel, Channel)
602 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidSystem, FluidSystem)
603 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidCharacterization, FluidCharacterization)
615 DLL_IMPORT_OR_EXPORT COMMON_NS::
AbstractObject* getDataObjectByUuid(const std::
string & uuid) const;
630 template <class valueType>
631 valueType* getDataObjectByUuid(const std::
string & uuid)
const
633 COMMON_NS::AbstractObject*
const result = getDataObjectByUuid(uuid);
635 if (result ==
nullptr) {
639 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
640 return static_cast<valueType*
>(result);
643 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
679 template <
class valueType>
682 COMMON_NS::AbstractObject*
const result = getDataObjectByUuidAndVersion(uuid, version);
684 if (result ==
nullptr) {
688 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
689 return static_cast<valueType*
>(result);
692 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
700 DLL_IMPORT_OR_EXPORT std::vector<std::string>
getUuids()
const;
705 COMMON_NS::AbstractObject*
createPartial(
const std::string & uuid,
const std::string & title,
const std::string & contentType,
const std::string & version =
"");
732 template <
class valueType>
733 valueType*
createPartial(
const std::string & guid,
const std::string & title,
const std::string & version =
"")
735 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
736 valueType* result =
new valueType(dor);
737 dor->ContentType = result->getContentType();
738 addOrReplaceDataObject(result);
758 template <
class NumericalValueBase>
761 NumericalValueBase* result =
new NumericalValueBase(getGsoapContext(), guid);
762 addDataObject(result);
813 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
814 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
815 double arealRotation,
816 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
817 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
845 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
846 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
847 double arealRotation,
848 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
849 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
878 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
879 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
880 double arealRotation,
881 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
882 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
911 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
912 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
913 double arealRotation,
914 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
915 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
944 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
945 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
946 double arealRotation,
947 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
948 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
949 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
978 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
979 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
980 double arealRotation,
981 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
982 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
983 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
1013 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
1014 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
1015 double arealRotation,
1016 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
1017 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1018 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
1048 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
1049 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
1050 double arealRotation,
1051 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
1052 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1053 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
1076 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum*
createMdDatum(
const std::string & guid,
const std::string & title,
1077 RESQML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind,
1078 double referenceLocationOrdinal1,
double referenceLocationOrdinal2,
double referenceLocationOrdinal3);
1094 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createBoundaryFeature(
const std::string & guid,
const std::string & title);
1107 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createHorizon(
const std::string & guid,
const std::string & title);
1136 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature*
createGeobodyFeature(
const std::string & guid,
const std::string & title);
1149 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFault(
const std::string & guid,
const std::string & title);
1162 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFracture(
const std::string & guid,
const std::string & title);
1176 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature*
createWellboreFeature(
const std::string & guid,
const std::string & title);
1198 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature*
createSeismicLattice(
const std::string & guid,
const std::string & title,
1199 int inlineIncrement,
int crosslineIncrement,
1200 unsigned int originInline,
unsigned int originCrossline,
1201 unsigned int inlineCount,
unsigned int crosslineCount);
1216 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature*
createSeismicLine(
const std::string & guid,
const std::string & title,
1217 int traceIndexIncrement,
unsigned int firstTraceIndex,
unsigned int traceCount);
1233 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature*
createCmpLine(
const std::string & guid,
const std::string & title,
1234 int nearestShotPointIndicesIncrement,
int firstNearestShotPointIndex,
unsigned int nearestShotPointCount);
1246 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature*
createShotPointLine(
const std::string & guid,
const std::string & title);
1259 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature*
createSeismicLineSet(
const std::string & guid,
const std::string & title);
1274 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature*
createCultural(
const std::string & guid,
const std::string & title,
1275 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries);
1311 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createModel(
const std::string & guid,
const std::string & title);
1371 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createEarthModel(
const std::string & guid,
const std::string & title);
1384 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::FluidBoundaryFeature*
createFluidBoundaryFeature(
const std::string & guid,
const std::string & title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact);
1399 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::RockFluidUnitFeature*
createRockFluidUnit(
const std::string & guid,
const std::string & title, gsoap_resqml2_0_1::resqml20__Phase phase, RESQML2_0_1_NS::FluidBoundaryFeature* fluidBoundaryTop, RESQML2_0_1_NS::FluidBoundaryFeature* fluidBoundaryBottom);
1417 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation*
createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature,
const std::string & guid,
const std::string & title);
1433 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation*
createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature,
const std::string & guid,
const std::string & title);
1449 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation*
createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon,
const std::string & guid,
const std::string & title);
1465 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation*
createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary,
const std::string & guid,
const std::string & title);
1481 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation*
createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault,
const std::string & guid,
const std::string & title);
1498 DLL_IMPORT_OR_EXPORT RESQML2_NS::FluidBoundaryInterpretation*
createFluidBoundaryInterpretation(RESQML2_NS::BoundaryFeature * boundary,
const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__FluidContact fluidContact);
1516 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation*
createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore,
const std::string & guid,
const std::string & title,
bool isDrilled);
1532 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation*
createEarthModelInterpretation(RESQML2_NS::Model * orgFeat,
const std::string & guid,
const std::string & title);
1618 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation*
createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature,
const std::string & guid,
const std::string & title);
1635 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation*
createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody,
const std::string & guid,
const std::string & title);
1651 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation*
createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature,
const std::string & guid,
const std::string & title);
1773 const std::string & guid,
const std::string & title);
1806 const std::string & guid,
const std::string & title);
1828 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1859 const std::string & guid,
const std::string & title);
1876 const std::string & guid,
const std::string & title);
1891 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation*
createPolylineRepresentation(
const std::string & guid,
const std::string & title,
bool isClosed =
false);
1912 const std::string & guid,
const std::string & title,
bool isClosed =
false);
1934 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind,
bool isClosed =
false);
1951 const std::string & guid,
const std::string & title);
1970 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1989 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::DeviationSurveyRepresentation* deviationSurvey);
2010 DLL_IMPORT_OR_EXPORT RESQML2_NS::DeviationSurveyRepresentation*
createDeviationSurveyRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title,
const bool& isFinal, RESQML2_NS::MdDatum* mdInfo);
2028 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation*
createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2054 RESQML2_NS::WellboreInterpretation* interp,
2055 const std::string& guid,
const std::string& title,
2056 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2057 double seismicReferenceDatum,
2058 double weatheringVelocity,
2059 RESQML2_NS::LocalTime3dCrs* crs);
2077 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation*
createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2093 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker*
createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame,
const std::string& guid,
const std::string& title);
2110 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker*
createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame,
const std::string& guid,
const std::string& title, gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind geologicBoundaryKind);
2129 const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2148 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2149 const std::string & guid,
2150 const std::string & title);
2165 const std::string & guid,
2166 const std::string & title);
2183 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2184 const std::string & guid,
2185 const std::string & title);
2202 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2203 const std::string & guid,
2204 const std::string & title);
2223 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2224 const std::string & guid,
2225 const std::string & title,
2226 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2271 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2297 const std::string& guid,
const std::string& title,
2298 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2322 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2348 const std::string& guid,
const std::string& title,
2349 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2367 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2387 const std::string& guid,
const std::string& title,
2388 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2412 const std::string& guid,
const std::string& title,
2413 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2439 const std::string& guid,
const std::string& title,
2440 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2456 const uint64_t & cellCount);
2473 const std::string& guid,
const std::string& title,
const uint64_t & cellCount);
2488 const std::string & guid,
const std::string & title);
2507 const std::string & guid,
const std::string & title);
2540 const std::string & guid,
const std::string & title);
2556 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature*
createStreamlinesFeature(
const std::string & guid,
const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2572 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation*
createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp,
const std::string & guid,
const std::string & title, uint64_t lineCount);
2588 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries*
createTimeSeries(
const std::string & guid,
const std::string & title);
2636 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2637 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2657 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2658 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * parentPropType);
2677 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2678 const std::string & namingSystem,
const std::string & nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2695 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2696 const std::string & namingSystem,
const std::string & nonStandardUom, EML2_NS::PropertyKind * parentPropType);
2717 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2718 gsoap_eml2_3::eml23__QuantityClassKind quantityClass,
bool isAbstract =
false, EML2_NS::PropertyKind* parentPropertyKind =
nullptr);
2740 DLL_IMPORT_OR_EXPORT RESQML2_NS::PropertySet*
createPropertySet(
const std::string & guid,
const std::string & title,
2741 bool hasMultipleRealizations,
bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind);
2765 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2766 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2789 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2790 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2819 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2820 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2848 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2849 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2877 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2878 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2905 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2906 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2930 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2931 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2954 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2955 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2981 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2982 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
2983 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3008 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3009 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3010 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3035 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3036 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3037 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3061 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3062 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3063 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3087 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3088 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3089 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3112 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3113 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3114 EML2_NS::PropertyKind * localPropType);
3146 DLL_IMPORT_OR_EXPORT EML2_NS::Activity*
createActivity(EML2_NS::ActivityTemplate* activityTemplate,
const std::string & guid,
const std::string & title);
3190 const std::string & title,
bool isActive);
3207 const std::string & title,
3209 gsoap_eml2_3::eml23__WellStatus statusWell,
3210 gsoap_eml2_3::witsml21__WellDirection directionWell
3228 const std::string & guid,
3229 const std::string & title,
3250 const std::string & guid,
3251 const std::string & title,
3252 gsoap_eml2_3::eml23__WellStatus statusWellbore,
3271 const std::string & guid,
3272 const std::string & title);
3287 const std::string & guid,
3288 const std::string & title);
3307 const std::string & guid,
3308 const std::string & title,
3327 const std::string & guid,
3328 const std::string & title,
3346 const std::string & guid,
3347 const std::string & title,
3360 const std::string & guid,
3361 const std::string & title,
3382 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Channel*
createChannel(EML2_NS::PropertyKind * propertyKind,
3383 const std::string & guid,
const std::string & title,
3384 const std::string & mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind,
3400 const std::string & guid,
const std::string & title,
3401 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3419 const std::string & guid,
const std::string & title,
3420 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3442 const std::string & title,
3443 double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom,
3444 double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom,
3445 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3446 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3463 const std::string & title,
3464 gsoap_eml2_3::eml23__ReferenceCondition referenceCondition,
3465 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3466 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3490 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::TimeSeriesData*
createTimeSeriesData(
const std::string & guid,
const std::string & title);
3516 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap*
createDiscreteColorMap(
const std::string& guid,
const std::string& title);
3531 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3541 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper*
getPropertyKindMapper()
const {
return propertyKindMapper.get(); }
3553 DLL_IMPORT_OR_EXPORT
void addWarning(
const std::string & warning);
3560 DLL_IMPORT_OR_EXPORT
const std::vector<std::string> &
getWarnings()
const;
3581 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3584 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3587 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3591 std::vector<std::string> warnings;
3593 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3595 EML2_NS::AbstractHdfProxy* defaultHdfProxy;
3596 RESQML2_NS::AbstractLocal3dCrs* defaultCrs;
3598 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3600 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3607 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>,
DataObjectReference, CUD> > journal;
3612 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3619 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(
const std::string & resqmlContentType);
3621 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(
const std::string& resqmlContentType);
3622 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(
const std::string & datatype);
3624 COMMON_NS::AbstractObject* getWitsml2_1WrapperFromGsoapContext(
const std::string & datatype);
3625 COMMON_NS::AbstractObject* getProdml2_2WrapperFromGsoapContext(
const std::string & datatype);
3630 int getGsoapErrorCode()
const;
3635 std::string getGsoapErrorMessage()
const;
3637 template <
class valueType>
3638 std::vector<valueType *> getObjsFilteredOnDatatype(
const std::vector< COMMON_NS::AbstractObject * >& objs)
const
3640 std::vector<valueType *> result;
3641 for (
size_t i = 0; i < objs.size(); ++i) {
3642 valueType * castedObj =
dynamic_cast<valueType *
>(objs[i]);
3643 if (castedObj !=
nullptr) {
3644 result.push_back(castedObj);
3650 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(
const std::string & guid,
const std::string & title,
const std::string & version);
3652 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
Definition DataFeeder.h:29
It contains many trajectory stations to capture the information about individual survey points.
Definition Trajectory.h:31
Contains all information that is the same for all wellbores (sidetracks).
Definition Well.h:43
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46
An abstract data object.
Definition AbstractObject.h:32
This class wraps an Energistics Data Object Reference whatever its version is.
Definition DataObjectReference.h:50
This abstract class acts as a buffer between the RESQML (business) classes and the persisted data.
Definition DataObjectRepository.h:167
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
virtual void on_CreateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common ::AbstractObject * > > &)
Definition DataObjectRepository.h:310
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition DataObjectRepository.h:514
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract=false, eml2 ::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
void setHdfProxyFactory(common ::HdfProxyFactory *factory)
DataObjectRepository(const std::string &propertyKindMappingFilesDirectory)
resqml2::DeviationSurveyRepresentation * createDeviationSurveyRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, const bool &isFinal, resqml2 ::MdDatum *mdInfo)
Creates a deviation survey representation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is fully identified by means of an EPSG code. Resulting local dept...
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive)
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which unknown for its projected part and which is identified by an EPSG c...
std::vector< common ::AbstractObject * > getTargetObjects(common ::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
resqml2::Model * createModel(const std::string &guid, const std::string &title)
prodml2_2::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
std::unordered_map< std::string, std::vector< common ::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is fully unknown. Resulting local depth 3d CRS is stored into this...
resqml2::StratigraphicUnitInterpretation * createStratigraphicUnitInterpretation(resqml2 ::RockVolumeFeature *stratiUnitFeature, const std::string &guid, const std::string &title)
Creates a stratigraphic unit interpretation into this repository.
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore trajectory into this repository.
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2 ::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::StringTableLookup *strLookup, eml2 ::PropertyKind *localPropType)
witsml2_1::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore log into this repository.
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void setDefaultCrs(resqml2 ::AbstractLocal3dCrs *crs)
Definition DataObjectRepository.h:506
void addWarning(const std::string &warning)
resqml2::FaultInterpretation * createFaultInterpretation(resqml2 ::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is unknown for its projected part and which is identified by an EP...
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2 ::PropertyKind *parentPropType)
Creates a property kind into this repository.
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
NumericalValueBase * createEpcExternalPartReference(const std::string &guid, const std::string &title)
Definition DataObjectRepository.h:759
witsml2_1::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2_0_1::RockFluidUnitFeature * createRockFluidUnit(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__Phase phase, resqml2_0_1 ::FluidBoundaryFeature *fluidBoundaryTop, resqml2_0_1 ::FluidBoundaryFeature *fluidBoundaryBottom)
resqml2_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
resqml2_0_1::PointsProperty * createPointsProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length)
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by apparent depth into this repository.
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
resqml2::BlockedWellboreRepresentation * createBlockedWellboreRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
Creates a blocked wellbore representation into this repository.
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
void registerDataFeeder(common ::DataFeeder *dataFeeder)
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType, const std::string &uriSource)
resqml2::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind)
Creates a property set into this repository.
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
witsml2_1::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
resqml2::StreamlinesRepresentation * createStreamlinesRepresentation(resqml2 ::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates a streamlines representation into this repository.
const std::vector< common ::AbstractObject * > & getTargetObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:326
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::RockFluidUnitInterpretation * createRockFluidUnitInterpretation(resqml2 ::RockVolumeFeature *rockFluidUnitFeature, const std::string &guid, const std::string &title)
Creates a rock fluid unit interpretation into this repository.
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
DataObjectRepository * newTransactionRepo()
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2 ::TimeSeries *timeSeries)
Creates a streamlines feature into this repository.
std::vector< valueType * > getDataObjects() const
Definition DataObjectRepository.h:477
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::DeviationSurveyRepresentation *deviationSurvey)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::SealedVolumeFrameworkRepresentation * createSealedVolumeFrameworkRepresentation(resqml2 ::StratigraphicColumnRankInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::SealedSurfaceFrameworkRepresentation *ssf)
Creates a sealed volume framework representation into this repository.
soap * getGsoapContext() const
Definition DataObjectRepository.h:210
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2 ::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
resqml2::ContinuousColorMap * createContinuousColorMap(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod)
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition DataObjectRepository.h:3541
common::AbstractObject * resolvePartial(common ::AbstractObject *partialObj)
valueType * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
Definition DataObjectRepository.h:680
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__ReferenceCondition referenceCondition, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
eml2::GraphicalInformationSet * createGraphicalInformationSet(const std::string &guid, const std::string &title)
std::unordered_map< std::string, std::vector< common ::AbstractObject * > > getDataObjectsGroupedByDataType() const
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
witsml2_1::WellboreGeometry * createWellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
resqml2::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2 ::PropertyKind *localPropType)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
EnergisticsStandard getDefaultResqmlVersion() const
Definition DataObjectRepository.h:251
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::MdDatum *mdInfo)
Creates a wellbore trajectory representation into this repository.
resqml2::WellboreFrameRepresentation * createWellboreFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
Creates a wellbore frame representation into this repository.
resqml2::PointsProperty * createPointsProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::AbstractLocal3dCrs *localCrs, eml2 ::PropertyKind *localPropType)
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2::EarthModelInterpretation * createEarthModelInterpretation(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates an earth model interpretation into this repository.
resqml2::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2 ::BoundaryFeature *feature, const std::string &guid, const std::string &title)
void setDefaultStandard(EnergisticsStandard version)
Definition DataObjectRepository.h:215
const std::unordered_map< std::string, std::vector< common ::AbstractObject * > > & getDataObjects() const
Definition DataObjectRepository.h:443
resqml2::Model * createStructuralModel(const std::string &guid, const std::string &title)
resqml2::PointSetRepresentation * createPointSetRepresentation(const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::SeismicWellboreFrameRepresentation * createSeismicWellboreFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj, double seismicReferenceDatum, double weatheringVelocity, resqml2 ::LocalTime3dCrs *crs)
Creates a seismic wellbore frame representation into this repository.
std::vector< valueType * > getTargetObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:349
resqml2::SubRepresentation * createSubRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
resqml2::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2 ::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::HorizonInterpretation * createHorizonInterpretation(resqml2 ::BoundaryFeature *horizon, const std::string &guid, const std::string &title)
Creates a horizon interpretation into this repository.
resqml2::GeobodyInterpretation * createGeobodyInterpretation(resqml2 ::RockVolumeFeature *geobody, const std::string &guid, const std::string &title)
Creates a geobody interpretation into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by age into this repository.
common::AbstractObject * createPartial(const DataObjectReference &dor)
resqml2::SeismicLatticeFeature * createSeismicLattice(const std::string &guid, const std::string &title, int inlineIncrement, int crosslineIncrement, unsigned int originInline, unsigned int originCrossline, unsigned int inlineCount, unsigned int crosslineCount)
Creates a seismic lattice into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
void setDefaultHdfProxy(eml2 ::AbstractHdfProxy *hdfProxy)
Definition DataObjectRepository.h:522
virtual void on_UpdateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common ::AbstractObject * > > &)
Definition DataObjectRepository.h:315
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is fully unknown. Resulting local time 3d CRS is stored into this r...
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore into this repository.
EnergisticsStandard
Definition DataObjectRepository.h:196
witsml2_1::Channel * createChannel(eml2 ::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind, bool isActive)
Creates a channel into this repository.
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive, gsoap_eml2_3::eml23__WellStatus statusWell, gsoap_eml2_3::witsml21__WellDirection directionWell)
bool addDataObject(common ::AbstractObject *proxy)
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common ::DataObjectReference, CUD > > & getJournal() const
Definition DataObjectRepository.h:305
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
const std::vector< common ::AbstractObject * > & getSourceObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:363
void updateAllRelationships()
witsml2_1::ChannelSet * createChannelSet(const std::string &guid, const std::string &title, bool isActive)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, eml2 ::PropertyKind *parentPropType)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by apparent depth into this repository.
resqml2::CulturalFeature * createCultural(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__CulturalFeatureKind kind=gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries)
Creates a cultural into this repository.
resqml2::ShotPointLineFeature * createShotPointLine(const std::string &guid, const std::string &title)
resqml2::Model * createRockFluidModel(const std::string &guid, const std::string &title)
resqml2::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::DoubleTableLookup *dblLookup, eml2 ::PropertyKind *localPropType)
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2 ::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
resqml2::Grid2dRepresentation * createGrid2dRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
std::vector< common ::AbstractObject * > getSourceObjects(common ::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition DataObjectRepository.h:733
EnergisticsStandard getDefaultWitsmlVersion() const
Definition DataObjectRepository.h:258
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::Activity * createActivity(eml2 ::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition DataObjectRepository.h:498
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
EnergisticsStandard getDefaultProdmlVersion() const
Definition DataObjectRepository.h:244
resqml2::CmpLineFeature * createCmpLine(const std::string &guid, const std::string &title, int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount)
Creates a CMP line into this repository.
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::RockVolumeFeature * createRockVolumeFeature(const std::string &guid, const std::string &title)
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::SeismicLineSetFeature * createSeismicLineSet(const std::string &guid, const std::string &title)
Creates a seismic line set into this repository.
witsml2_1::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::PlaneSetRepresentation * createPlaneSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a plane set representation into this repository.
std::vector< valueType * > getSourceObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:386
resqml2::RockVolumeFeature * createGeobodyFeature(const std::string &guid, const std::string &title)
Creates a geobody feature into this repository.
resqml2::DoubleTableLookup * createDoubleTableLookup(const std::string &guid, const std::string &title)
Creates a double table lookup into this repository.
std::vector< common ::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInMeasuredDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by measured depth into this repository.
EnergisticsStandard getDefaultEmlVersion() const
Definition DataObjectRepository.h:237
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind)
Creates a polyline set representation into this repository.
resqml2_0_1::CommentProperty * createCommentProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by age into this repository.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series into this repository.
witsml2_1::WellboreMarker * createWellboreMarker(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2 ::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation into this repository.
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::WellboreMarker * createWellboreMarker(resqml2 ::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title)
Creates a wellbore marker within a given wellbore marker frame representation.
void commitTransactionRepo(DataObjectRepository *transactionRepo)
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is identified by an EPSG code for its projected part and which is ...
virtual ~DataObjectRepository()
openingMode
Definition DataObjectRepository.h:185
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
common::AbstractObject * addOrReplaceDataObject(common ::AbstractObject *proxy, bool replaceOnlyContent=false)
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature into this repository.
resqml2::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
resqml2::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2 ::PropertyKind *localPropType)
resqml2::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column into this repository.
prodml2_2::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
resqml2::DiscreteProperty * createDiscreteProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2 ::PropertyKind *localPropType)
eml2::AbstractHdfProxy * createHdfProxy(const std::string &guid, const std::string &title, const std::string &packageDirAbsolutePath, const std::string &filePath, DataObjectRepository::openingMode hdfPermissionAccess)
Creates a non parallel access to an HDF5 file for writing to it. Resulting HDF5 file proxy is stored ...
resqml2::BoundaryFeature * createFault(const std::string &guid, const std::string &title)
void addRelationship(common ::AbstractObject *source, common ::AbstractObject *target)
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, resqml2 ::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
std::vector< std::string > getUuids() const
resqml2::FluidBoundaryInterpretation * createFluidBoundaryInterpretation(resqml2 ::BoundaryFeature *boundary, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__FluidContact fluidContact)
Creates a fluid Boundary interpretation into this repository.
resqml2::CommentProperty * createCommentProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2 ::PropertyKind *localPropType)
resqml2::WellboreMarker * createWellboreMarker(resqml2 ::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind geologicBoundaryKind)
Creates a wellbore marker within a given wellbore marker frame representation.
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which is fully identified by means of EPSG code. Resulting local time 3d ...
void clearWarnings()
Definition DataObjectRepository.h:3546
resqml2::NonSealedSurfaceFrameworkRepresentation * createNonSealedSurfaceFrameworkRepresentation(resqml2 ::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a non sealed surface framework representation into this repository.
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is identified by an EPSG code for its projected part and which is u...
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition AbstractHdfProxy.h:37
Instance of a given activity.
Definition Activity.h:29
Description of one type of activity.
Definition ActivityTemplate.h:29
Property kinds carry the semantics of property values. They are used to identify if the values are,...
Definition PropertyKind.h:32
Proxy class for time series. Stores an ordered list of times, for example, for time- dependent proper...
Definition TimeSeries.h:36
Proxy class for an abstract feature.
Definition AbstractFeature.h:31
Proxy class for an abstract feature interpretation.
Definition AbstractFeatureInterpretation.h:29
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition AbstractIjkGridRepresentation.h:34
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition AbstractLocal3dCrs.h:27
This class defines the behaviour of all RESQML2 organizations.
Definition AbstractOrganizationInterpretation.h:29
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:37
Proxy class for an abstract seismic line feature. Defined by one lateral dimension: trace (lateral)....
Definition AbstractSeismicLineFeature.h:34
A blocked wellbore representation. This is the information that allows you to locate,...
Definition BlockedWellboreRepresentation.h:33
A boundary feature. This is an interface between two geological objects, such as horizons and faults....
Definition BoundaryFeature.h:30
A boundary feature interpretation. This is the main class for data describing an opinion of a surface...
Definition BoundaryFeatureInterpretation.h:35
Proxy class for a categorical property. It contains discrete integers. This type of property is assoc...
Definition CategoricalProperty.h:35
Definition CmpLineFeature.h:27
Map of continuous colors. This class cannot be inherited.
Definition ContinuousColorMap.h:27
Proxy class for a continuous property. Most common type of property used for storing rock or fluid at...
Definition ContinuousProperty.h:38
A cultural feature. It identifies a frontier or boundary in the earth model that is not a geological ...
Definition CulturalFeature.h:31
A deviation survey representation. It Specifies the station data from a deviation survey.
Definition DeviationSurveyRepresentation.h:41
Map of discrete colors. This class cannot be inherited.
Definition DiscreteColorMap.h:27
Proxy class for a discrete property. Such property contains discrete integer values; typically used t...
Definition DiscreteProperty.h:34
Defines a function for table lookups. For example, used for linear interpolation, such as PVT.
Definition DoubleTableLookup.h:33
This class is a container for stratigraphic, structural and rock fluid organization interpretations t...
Definition EarthModelInterpretation.h:37
A fault interpretation. This type of boundary feature contains the data describing an opinion about t...
Definition FaultInterpretation.h:30
Definition FluidBoundaryInterpretation.h:26
An interpretation of a feature that is not specialized. For example, use it when the specialized type...
Definition GenericFeatureInterpretation.h:30
A type of boundary feature, this class identifies if the boundary is a geobody and the type of the bo...
Definition GeobodyBoundaryInterpretation.h:30
A type of rock feature, this class identifies if a rock feature is a geobody with any qualifications ...
Definition GeobodyInterpretation.h:32
A 2d grid representation.
Definition Grid2dRepresentation.h:27
Proxy class for a grid connection set representation. This representation consists of a list of conne...
Definition GridConnectionSetRepresentation.h:51
An interpretation of a horizon, which optionally provides stratigraphic information.
Definition HorizonInterpretation.h:27
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates....
Definition IjkGridExplicitRepresentation.h:31
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and ...
Definition IjkGridLatticeRepresentation.h:32
This class is dedicated to IJK grids with undefined IjkGridGeometry. There are two main use cases....
Definition IjkGridNoGeometryRepresentation.h:33
An IJK Grid parametric representation define the cell corner positions by means of parameters along t...
Definition IjkGridParametricRepresentation.h:32
Defines a local depth coordinate system. The geometrical origin and location are defined by the eleme...
Definition LocalDepth3dCrs.h:31
Defines a local time coordinate system. The geometrical origin and location are defined by the elemen...
Definition LocalTime3dCrs.h:31
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition MdDatum.h:32
The explicit description of the relationships between geologic features, such as rock features (e....
Definition Model.h:35
A non sealed surface framework representation is collection of contact representations parts,...
Definition NonSealedSurfaceFrameworkRepresentation.h:32
Defines a plane representation, which can be made up of multiple patches. Commonly represented featur...
Definition PlaneSetRepresentation.h:34
A representation that consists of one or more node patches. Each node patch is an array of xyz coordi...
Definition PointSetRepresentation.h:31
Proxy class for an points property.
Definition PointsProperty.h:27
A representation made up of a single polyline or "polygonal chain", which may be closed or not....
Definition PolylineRepresentation.h:38
A representation made up of a set of polylines or a set of polygonal chains (for more information,...
Definition PolylineSetRepresentation.h:34
Proxy class for a property set. A property set is a set of properties collected together for a specif...
Definition PropertySet.h:36
Proxy class for a representation set representation. This is the parent class of the framework repres...
Definition RepresentationSetRepresentation.h:39
This class describes the organization of geological reservoir, i.e., of an interconnected network of ...
Definition RockFluidOrganizationInterpretation.h:34
A type of rock fluid feature-interpretation , this class identifies a rock fluid feature by its phase...
Definition RockFluidUnitInterpretation.h:30
A continuous portion of rock material bounded by definite rock boundaries. It is a volume object.
Definition RockVolumeFeature.h:38
A collection of contact, which are a list of contact patches and their identities....
Definition SealedSurfaceFrameworkRepresentation.h:31
A strict boundary representation (BREP), which represents the volume region by assembling together sh...
Definition SealedVolumeFrameworkRepresentation.h:37
Defined by two lateral ordered dimensions: inline (lateral), crossline (lateral and orthogonal to the...
Definition SeismicLatticeFeature.h:33
Frox class for a seismic line set feature. It is an unordered set of several seismic lines....
Definition SeismicLineSetFeature.h:30
A seismic wellbore frame representation. This class cannot be inherited.
Definition SeismicWellboreFrameRepresentation.h:27
Definition ShotPointLineFeature.h:27
A global interpretation of the stratigraphy, which can be made up of several ranks of stratigraphic u...
Definition StratigraphicColumn.h:35
A stratigraphic column rank interpretation is a global hierarchy containing an ordered list of strati...
Definition StratigraphicColumnRankInterpretation.h:39
This class is a container for stratigraphic organizations described along a wellbore.
Definition StratigraphicOccurrenceInterpretation.h:30
The interpretation of a stratigraphic unit.
Definition StratigraphicUnitInterpretation.h:27
Specification of the vector field upon which the streamlines are based.
Definition StreamlinesFeature.h:38
Representation of streamlines associated with a streamline feature and interpretation....
Definition StreamlinesRepresentation.h:33
Defines an integer (key) to string (value) lookup table, for example, stores facies properties,...
Definition StringTableLookup.h:32
One of the main types of RESQML organizations, this class gathers boundary interpretations (e....
Definition StructuralOrganizationInterpretation.h:35
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
A triangulated representation is a representation (most of time a surface) which is constituted by tr...
Definition TriangulatedSetRepresentation.h:31
Unstructured grid representation characterized by a cell count, and potentially nothing else....
Definition UnstructuredGridRepresentation.h:30
May refer to one of these: wellbore, borehole or sidetrack.
Definition WellboreFeature.h:46
Proxy class for a wellbore frame representation. A wellbore frame representation is a representation ...
Definition WellboreFrameRepresentation.h:35
Contains the data describing an opinion of a borehole.This interpretation is relative to one particul...
Definition WellboreInterpretation.h:34
A well log frame where each entry represents a well marker.
Definition WellboreMarkerFrameRepresentation.h:30
Representation of a wellbore marker that is located along a wellbore trajectory, one for each MD valu...
Definition WellboreMarker.h:41
Representation of a wellbore trajectory.
Definition WellboreTrajectoryRepresentation.h:29
Definition CategoricalProperty.h:31
Definition ContinuousProperty.h:37
Definition DiscreteProperty.h:31
Definition FluidBoundaryFeature.h:27
Definition GeneticBoundaryFeature.h:27
Definition GeobodyFeature.h:27
Proxy class for an points property.
Definition PointsProperty.h:27
Definition PropertyKind.h:28
Definition PropertyKindMapper.h:29
Definition RockFluidUnitFeature.h:32
Definition SeismicLineFeature.h:27
Definition TectonicBoundaryFeature.h:27
Definition ChannelSet.h:30
Definition WellCompletion.h:31
Definition WellboreCompletion.h:27
Definition WellboreGeometry.h:33
Definition WellboreMarker.h:29