21 #include <unordered_map>
26 #include "DataObjectReference.h"
113 namespace RESQML2_0_1_NS
131 namespace WITSML2_0_NS
146 namespace PRODML2_1_NS
155 class AbstractObject;
157 class HdfProxyFactory;
185 READ_WRITE_DO_NOT_CREATE = 2,
188 enum CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
216 case EnergisticsStandard::PRODML2_1:
217 defaultProdmlVersion = version;
break;
218 case EnergisticsStandard::RESQML2_0_1:
219 case EnergisticsStandard::RESQML2_2:
220 defaultResqmlVersion = version;
break;
221 case EnergisticsStandard::WITSML2_0:
222 defaultWitsmlVersion = version;
break;
223 case EnergisticsStandard::EML2_0:
224 case EnergisticsStandard::EML2_1:
225 case EnergisticsStandard::EML2_2:
226 case EnergisticsStandard::EML2_3:
227 defaultEmlVersion = version;
break;
229 throw std::invalid_argument(
"Unrecognized Energistics standard.");
275 DLL_IMPORT_OR_EXPORT
void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
294 DLL_IMPORT_OR_EXPORT
void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
306 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >&
getJournal()
const {
return journal; }
311 DLL_IMPORT_OR_EXPORT
virtual void on_CreateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
316 DLL_IMPORT_OR_EXPORT
virtual void on_UpdateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
322 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
resolvePartial(COMMON_NS::AbstractObject * partialObj);
327 DLL_IMPORT_OR_EXPORT
const std::vector<COMMON_NS::AbstractObject*>&
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return forwardRels.at(dataObj); }
336 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
337 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
349 template <
class valueType>
352 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
364 DLL_IMPORT_OR_EXPORT
const std::vector< COMMON_NS::AbstractObject*>&
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return backwardRels.at(dataObj); }
373 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
374 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
386 template <
class valueType>
389 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
391 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
407 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy,
bool replaceOnlyContent =
false);
423 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceGsoapProxy(
const std::string & xml,
const std::string & contentType);
431 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > &
getDataObjects()
const {
return dataObjects; }
464 template <
class valueType>
467 std::vector<valueType*> result;
469 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
470 for (
size_t i = 0; i < it->second.size(); ++i) {
471 if (
dynamic_cast<valueType*
>(it->second[i]) !=
nullptr) {
472 result.push_back(
static_cast<valueType*
>(it->second[i]));
486 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractLocal3dCrs*
getDefaultCrs()
const {
return defaultCrs; }
494 DLL_IMPORT_OR_EXPORT
void setDefaultCrs(RESQML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
502 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy*
getDefaultHdfProxy()
const {
return defaultHdfProxy; }
510 DLL_IMPORT_OR_EXPORT
void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
515 #define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
516 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
517 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
518 const size_t result = get##dataObjectName##Set().size();\
519 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
520 return static_cast<unsigned int>(result);\
522 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
523 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
524 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
528 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
529 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
531 GETTER_DATAOBJECTS(RESQML2_NS::LocalDepth3dCrs, LocalDepth3dCrs)
532 GETTER_DATAOBJECTS(RESQML2_NS::LocalTime3dCrs, LocalTime3dCrs)
533 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
534 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
535 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
536 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
537 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
538 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
539 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRep)
540 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRep)
541 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRep)
542 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRep)
543 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRep)
544 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRep)
545 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRep)
546 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRep)
547 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRep)
548 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRep)
549 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRep)
550 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
551 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
552 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRep)
553 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
554 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRep)
555 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
556 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
557 GETTER_DATAOBJECTS(RESQML2_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
558 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
559 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
560 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
561 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
562 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
563 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
564 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
565 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
566 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
569 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
582 DLL_IMPORT_OR_EXPORT COMMON_NS::
AbstractObject* getDataObjectByUuid(const std::
string & uuid) const;
597 template <class valueType>
598 valueType* getDataObjectByUuid(const std::
string & uuid)
const
600 COMMON_NS::AbstractObject*
const result = getDataObjectByUuid(uuid);
602 if (result ==
nullptr) {
606 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
607 return static_cast<valueType*
>(result);
610 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
646 template <
class valueType>
649 COMMON_NS::AbstractObject*
const result = getDataObjectByUuidAndVersion(uuid, version);
651 if (result ==
nullptr) {
655 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
656 return static_cast<valueType*
>(result);
659 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
667 DLL_IMPORT_OR_EXPORT std::vector<std::string>
getUuids()
const;
672 COMMON_NS::AbstractObject*
createPartial(
const std::string & uuid,
const std::string & title,
const std::string & contentType,
const std::string & version =
"");
699 template <
class valueType>
700 valueType*
createPartial(
const std::string & guid,
const std::string & title,
const std::string & version =
"")
702 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
703 valueType* result =
new valueType(dor);
704 dor->ContentType = result->getContentType();
705 addOrReplaceDataObject(result);
725 template <
class NumericalValueBase>
728 NumericalValueBase* result =
new NumericalValueBase(getGsoapContext(), guid);
729 addDataObject(result);
780 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
781 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
782 double arealRotation,
783 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
784 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
812 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
813 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
814 double arealRotation,
815 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
816 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
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,
unsigned long projectedEpsgCode,
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,
const std::string & projectedUnknownReason,
882 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
911 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
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,
unsigned long projectedEpsgCode,
915 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
916 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
945 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
946 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
947 double arealRotation,
948 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
949 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
950 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
980 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
981 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
982 double arealRotation,
983 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
984 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
985 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
1015 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
1016 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
1017 double arealRotation,
1018 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
1019 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1020 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
1043 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum*
createMdDatum(
const std::string & guid,
const std::string & title,
1044 RESQML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__WellboreDatumReference originKind,
1045 double referenceLocationOrdinal1,
double referenceLocationOrdinal2,
double referenceLocationOrdinal3);
1061 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createBoundaryFeature(
const std::string & guid,
const std::string & title);
1074 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createHorizon(
const std::string & guid,
const std::string & title);
1103 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature*
createGeobodyFeature(
const std::string & guid,
const std::string & title);
1116 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFault(
const std::string & guid,
const std::string & title);
1129 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFracture(
const std::string & guid,
const std::string & title);
1143 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature*
createWellboreFeature(
const std::string & guid,
const std::string & title);
1165 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature*
createSeismicLattice(
const std::string & guid,
const std::string & title,
1166 int inlineIncrement,
int crosslineIncrement,
1167 unsigned int originInline,
unsigned int originCrossline,
1168 unsigned int inlineCount,
unsigned int crosslineCount);
1183 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature*
createSeismicLine(
const std::string & guid,
const std::string & title,
1184 int traceIndexIncrement,
unsigned int firstTraceIndex,
unsigned int traceCount);
1200 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature*
createCmpLine(
const std::string & guid,
const std::string & title,
1201 int nearestShotPointIndicesIncrement,
int firstNearestShotPointIndex,
unsigned int nearestShotPointCount);
1213 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature*
createShotPointLine(
const std::string & guid,
const std::string & title);
1226 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature*
createSeismicLineSet(
const std::string & guid,
const std::string & title);
1241 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature*
createCultural(
const std::string & guid,
const std::string & title,
1242 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind__project_x0020boundaries);
1278 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createModel(
const std::string & guid,
const std::string & title);
1338 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createEarthModel(
const std::string & guid,
const std::string & title);
1351 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);
1366 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);
1384 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation*
createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature,
const std::string & guid,
const std::string & title);
1400 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation*
createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature,
const std::string & guid,
const std::string & title);
1416 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation*
createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon,
const std::string & guid,
const std::string & title);
1432 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation*
createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary,
const std::string & guid,
const std::string & title);
1448 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation*
createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault,
const std::string & guid,
const std::string & title);
1465 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);
1483 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation*
createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore,
const std::string & guid,
const std::string & title,
bool isDrilled);
1499 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation*
createEarthModelInterpretation(RESQML2_NS::Model * orgFeat,
const std::string & guid,
const std::string & title);
1585 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation*
createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature,
const std::string & guid,
const std::string & title);
1602 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation*
createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody,
const std::string & guid,
const std::string & title);
1618 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation*
createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature,
const std::string & guid,
const std::string & title);
1740 const std::string & guid,
const std::string & title);
1773 const std::string & guid,
const std::string & title);
1795 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1826 const std::string & guid,
const std::string & title);
1843 const std::string & guid,
const std::string & title);
1858 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation*
createPolylineRepresentation(
const std::string & guid,
const std::string & title,
bool isClosed =
false);
1879 const std::string & guid,
const std::string & title,
bool isClosed =
false);
1901 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind,
bool isClosed =
false);
1918 const std::string & guid,
const std::string & title);
1937 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1956 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::DeviationSurveyRepresentation* deviationSurvey);
1977 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);
1995 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation*
createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2021 RESQML2_NS::WellboreInterpretation* interp,
2022 const std::string& guid,
const std::string& title,
2023 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2024 double seismicReferenceDatum,
2025 double weatheringVelocity,
2026 RESQML2_NS::LocalTime3dCrs* crs);
2044 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation*
createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2060 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker*
createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame,
const std::string& guid,
const std::string& title);
2077 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);
2096 const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2115 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2116 const std::string & guid,
2117 const std::string & title);
2132 const std::string & guid,
2133 const std::string & title);
2150 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2151 const std::string & guid,
2152 const std::string & title);
2169 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2170 const std::string & guid,
2171 const std::string & title);
2190 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2191 const std::string & guid,
2192 const std::string & title,
2193 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2238 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2264 const std::string& guid,
const std::string& title,
2265 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2289 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2315 const std::string& guid,
const std::string& title,
2316 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2334 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2354 const std::string& guid,
const std::string& title,
2355 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2379 const std::string& guid,
const std::string& title,
2380 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2406 const std::string& guid,
const std::string& title,
2407 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2423 const uint64_t & cellCount);
2438 const std::string & guid,
const std::string & title);
2457 const std::string & guid,
const std::string & title);
2490 const std::string & guid,
const std::string & title);
2506 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature*
createStreamlinesFeature(
const std::string & guid,
const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2522 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation*
createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp,
const std::string & guid,
const std::string & title, uint64_t lineCount);
2538 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries*
createTimeSeries(
const std::string & guid,
const std::string & title);
2586 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2587 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2607 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2608 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * parentPropType);
2627 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2628 const std::string & namingSystem,
const std::string & nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2645 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2646 const std::string & namingSystem,
const std::string & nonStandardUom, EML2_NS::PropertyKind * parentPropType);
2666 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2667 gsoap_eml2_1::eml21__QuantityClassKind quantityClass,
bool isAbstract =
false, EML2_NS::PropertyKind* parentPropertyKind =
nullptr);
2689 DLL_IMPORT_OR_EXPORT RESQML2_NS::PropertySet*
createPropertySet(
const std::string & guid,
const std::string & title,
2690 bool hasMultipleRealizations,
bool hasSinglePropertyKind, gsoap_eml2_3::resqml22__TimeSetKind timeSetKind);
2714 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2715 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2738 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2739 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2768 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2769 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2797 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2798 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2826 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2827 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2854 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2855 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2879 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2880 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2903 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2904 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2930 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2931 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2932 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2957 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2958 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2959 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2984 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2985 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2986 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3010 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3011 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
3012 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3036 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3037 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3038 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind__length);
3061 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3062 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3063 EML2_NS::PropertyKind * localPropType);
3095 DLL_IMPORT_OR_EXPORT EML2_NS::Activity*
createActivity(EML2_NS::ActivityTemplate* activityTemplate,
const std::string & guid,
const std::string & title);
3137 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Well*
createWell(
const std::string & guid,
3138 const std::string & title);
3154 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Well*
createWell(
const std::string & guid,
3155 const std::string & title,
3156 const std::string & operator_,
3157 gsoap_eml2_1::eml21__WellStatus statusWell,
3158 gsoap_eml2_1::witsml20__WellDirection directionWell
3174 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Wellbore*
createWellbore(WITSML2_0_NS::Well* witsmlWell,
3175 const std::string & guid,
3176 const std::string & title);
3195 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Wellbore*
createWellbore(WITSML2_0_NS::Well* witsmlWell,
3196 const std::string & guid,
3197 const std::string & title,
3198 gsoap_eml2_1::eml21__WellStatus statusWellbore,
3217 const std::string & guid,
3218 const std::string & title);
3237 WITSML2_0_NS::WellCompletion* wellCompletion,
3238 const std::string & guid,
3239 const std::string & title,
3240 const std::string & wellCompletionName);
3260 const std::string & guid,
3261 const std::string & title,
3262 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3280 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Trajectory*
createTrajectory(WITSML2_0_NS::Wellbore* witsmlWellbore,
3281 const std::string & guid,
3282 const std::string & title,
3283 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3298 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Log*
createLog(WITSML2_0_NS::Wellbore* witsmlWellbore,
3299 const std::string & guid,
3300 const std::string & title);
3311 const std::string & guid,
3312 const std::string & title);
3335 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Channel*
createChannel(EML2_NS::PropertyKind * propertyKind,
3336 const std::string & guid,
const std::string & title,
3337 const std::string & mnemonic, gsoap_eml2_1::eml21__UnitOfMeasure uom, gsoap_eml2_1::witsml20__EtpDataType dataType, gsoap_eml2_1::witsml20__ChannelStatus growingStatus,
3338 const std::string & timeDepth,
const std::string & loggingCompanyName);
3354 const std::string & guid,
const std::string & title,
3355 double md, gsoap_eml2_1::eml21__LengthUom mdUom,
const std::string & mdDatum);
3374 const std::string & guid,
const std::string & title,
3375 double md, gsoap_eml2_1::eml21__LengthUom mdUom,
const std::string & mdDatum);
3397 const std::string & title,
3398 double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom,
3399 double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom,
3400 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3401 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3418 const std::string & title,
3419 gsoap_eml2_2::eml22__ReferenceCondition referenceCondition,
3420 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3421 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3445 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::TimeSeriesData*
createTimeSeriesData(
const std::string & guid,
const std::string & title);
3471 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap*
createDiscreteColorMap(
const std::string& guid,
const std::string& title);
3486 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3496 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper*
getPropertyKindMapper()
const {
return propertyKindMapper.get(); }
3508 DLL_IMPORT_OR_EXPORT
void addWarning(
const std::string & warning);
3515 DLL_IMPORT_OR_EXPORT
const std::vector<std::string> &
getWarnings()
const;
3536 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3539 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3542 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3546 std::vector<std::string> warnings;
3548 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3550 EML2_NS::AbstractHdfProxy* defaultHdfProxy;
3551 RESQML2_NS::AbstractLocal3dCrs* defaultCrs;
3553 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3555 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3562 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>,
DataObjectReference, CUD> > journal;
3567 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3574 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(
const std::string & resqmlContentType);
3576 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(
const std::string& resqmlContentType);
3577 COMMON_NS::AbstractObject* getEml2_1WrapperFromGsoapContext(
const std::string & datatype);
3578 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(
const std::string & datatype);
3580 COMMON_NS::AbstractObject* getWitsml2_0WrapperFromGsoapContext(
const std::string & datatype);
3581 COMMON_NS::AbstractObject* getProdml2_1WrapperFromGsoapContext(
const std::string & datatype);
3586 int getGsoapErrorCode()
const;
3591 std::string getGsoapErrorMessage()
const;
3593 template <
class valueType>
3594 std::vector<valueType *> getObjsFilteredOnDatatype(
const std::vector< COMMON_NS::AbstractObject * >& objs)
const
3596 std::vector<valueType *> result;
3597 for (
size_t i = 0; i < objs.size(); ++i) {
3598 valueType * castedObj =
dynamic_cast<valueType *
>(objs[i]);
3599 if (castedObj !=
nullptr) {
3600 result.push_back(castedObj);
3606 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(
const std::string & guid,
const std::string & title,
const std::string & version);
3608 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
Definition: DataFeeder.h:29
An abstract data object.
Definition: AbstractObject.h:31
This class wraps an Energistics Data Object Reference whatever its version is.
Definition: DataObjectReference.h:43
This abstract class acts as a buffer between the RESQML (business) classes and the persisted data.
Definition: DataObjectRepository.h:164
resqml2::SeismicLineSetFeature * createSeismicLineSet(const std::string &guid, const std::string &title)
Creates a seismic line set 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_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
resqml2::Model * createStructuralModel(const std::string &guid, const std::string &title)
resqml2::RockVolumeFeature * createRockVolumeFeature(const std::string &guid, const std::string &title)
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::DeviationSurveyRepresentation *deviationSurvey)
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.
resqml2::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
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::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::PolylineSetRepresentation * createPolylineSetRepresentation(const std::string &guid, const std::string &title)
Creates a polyline set 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.
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2::TimeSeries *timeSeries)
Creates a streamlines feature into this repository.
DataObjectRepository(const std::string &propertyKindMappingFilesDirectory)
resqml2_0_1::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind__length)
DataObjectRepository * newTransactionRepo()
eml2::Activity * createActivity(eml2::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column 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::resqml22__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
prodml2_1::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom, gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom)
std::vector< valueType * > getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:350
resqml2::ContinuousColorMap * createContinuousColorMap(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod)
std::vector< std::string > getUuids() const
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
void registerDataFeeder(common::DataFeeder *dataFeeder)
witsml2_0::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string &mdDatum)
Creates a WITSML2.0 Wellbore Marker 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.
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_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
witsml2_0::Wellbore * createWellbore(witsml2_0::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_1::eml21__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
resqml2::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2::BoundaryFeature *feature, const std::string &guid, const std::string &title)
void setHdfProxyFactory(common::HdfProxyFactory *factory)
std::vector< valueType * > getDataObjects() const
Definition: DataObjectRepository.h:465
resqml2::DoubleTableLookup * createDoubleTableLookup(const std::string &guid, const std::string &title)
Creates a double table lookup into this repository.
void addRelationship(common::AbstractObject *source, common::AbstractObject *target)
void addWarning(const std::string &warning)
witsml2_0::ChannelSet * createChannelSet(const std::string &guid, const std::string &title)
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series 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::ShotPointLineFeature * createShotPointLine(const std::string &guid, const std::string &title)
resqml2::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
resqml2_0_1::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
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::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.
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::StreamlinesRepresentation * createStreamlinesRepresentation(resqml2::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates a streamlines representation into this repository.
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2::PropertyKind *localPropType)
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.
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, unsigned long 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...
resqml2::EarthModelInterpretation * createEarthModelInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates an earth model interpretation into this repository.
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::PlaneSetRepresentation * createPlaneSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a plane 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.
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::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, const unsigned long &rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
resqml2::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_eml2_3::resqml22__TimeSetKind timeSetKind)
Creates a property set into this repository.
resqml2::Model * createModel(const std::string &guid, const std::string &title)
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
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::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
const std::unordered_map< std::string, std::vector< common::AbstractObject * > > & getDataObjects() const
Definition: DataObjectRepository.h:431
resqml2_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_1::eml21__QuantityClassKind quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates an EML2.1 property kind into this repository.
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
witsml2_0::Wellbore * createWellbore(witsml2_0::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a wellbore into this repository.
resqml2::PointSetRepresentation * createPointSetRepresentation(const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
common::AbstractObject * resolvePartial(common::AbstractObject *partialObj)
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
EnergisticsStandard getDefaultResqmlVersion() const
Definition: DataObjectRepository.h:252
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, eml2::PropertyKind *localPropType)
resqml2::BoundaryFeature * createFault(const std::string &guid, const std::string &title)
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::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, unsigned long 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::SubRepresentation * createSubRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation 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::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
void setDefaultStandard(EnergisticsStandard version)
Definition: DataObjectRepository.h:214
resqml2::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::AbstractLocal3dCrs *localCrs, eml2::PropertyKind *localPropType)
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
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::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.
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template into this repository.
witsml2_0::Channel * createChannel(eml2::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_1::eml21__UnitOfMeasure uom, gsoap_eml2_1::witsml20__EtpDataType dataType, gsoap_eml2_1::witsml20__ChannelStatus growingStatus, const std::string &timeDepth, const std::string &loggingCompanyName)
Creates a channel into this repository.
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition: DataObjectRepository.h:3496
virtual void on_UpdateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common::AbstractObject * >> &)
Definition: DataObjectRepository.h:316
common::AbstractObject * addOrReplaceDataObject(common::AbstractObject *proxy, bool replaceOnlyContent=false)
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::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::RockVolumeFeature * createGeobodyFeature(const std::string &guid, const std::string &title)
Creates a geobody feature into this repository.
witsml2_0::Log * createLog(witsml2_0::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
Creates a wellbore log into this repository.
prodml2_1::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
common::AbstractObject * createPartial(const DataObjectReference &dor)
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition: DataObjectRepository.h:700
EnergisticsStandard
Definition: DataObjectRepository.h:193
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.
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, eml2::PropertyKind *parentPropType)
valueType * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
Definition: DataObjectRepository.h:647
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::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, unsigned long 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 ...
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void updateAllRelationships()
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
const std::vector< std::string > & getWarnings() const
resqml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition: DataObjectRepository.h:486
resqml2::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, resqml2::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__WellboreDatumReference originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
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.
witsml2_0::WellCompletion * createWellCompletion(witsml2_0::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
const std::vector< common::AbstractObject * > & getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:364
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
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.
const std::vector< common::AbstractObject * > & getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:327
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::NonSealedSurfaceFrameworkRepresentation * createNonSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a non sealed surface framework representation into this repository.
EnergisticsStandard getDefaultWitsmlVersion() const
Definition: DataObjectRepository.h:259
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 getDefaultProdmlVersion() const
Definition: DataObjectRepository.h:245
std::vector< common::AbstractObject * > getSourceObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
resqml2::Model * createRockFluidModel(const std::string &guid, const std::string &title)
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common::DataObjectReference, CUD > > & getJournal() const
Definition: DataObjectRepository.h:306
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType() const
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
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...
std::vector< common::AbstractObject * > getTargetObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
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.
prodml2_1::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
prodml2_1::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_2::eml22__ReferenceCondition referenceCondition, gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom)
EnergisticsStandard getDefaultEmlVersion() const
Definition: DataObjectRepository.h:238
witsml2_0::WellboreCompletion * createWellboreCompletion(witsml2_0::Wellbore *witsmlWellbore, witsml2_0::WellCompletion *wellCompletion, const std::string &guid, const std::string &title, const std::string &wellCompletionName)
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType)
NumericalValueBase * createEpcExternalPartReference(const std::string &guid, const std::string &title)
Definition: DataObjectRepository.h:726
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.
witsml2_0::WellboreGeometry * createWellboreGeometry(witsml2_0::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition: DataObjectRepository.h:502
witsml2_0::Well * createWell(const std::string &guid, const std::string &title)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) 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::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_0::Trajectory * createTrajectory(witsml2_0::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Creates a wellbore trajectory into this repository.
witsml2_0::Well * createWell(const std::string &guid, const std::string &title, const std::string &operator_, gsoap_eml2_1::eml21__WellStatus statusWell, gsoap_eml2_1::witsml20__WellDirection directionWell)
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::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
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.
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
virtual void on_CreateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common::AbstractObject * >> &)
Definition: DataObjectRepository.h:311
resqml2::HorizonInterpretation * createHorizonInterpretation(resqml2::BoundaryFeature *horizon, const std::string &guid, const std::string &title)
Creates a horizon interpretation into this repository.
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.
void setDefaultHdfProxy(eml2::AbstractHdfProxy *hdfProxy)
Definition: DataObjectRepository.h:510
std::vector< common::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
witsml2_0::WellboreMarker * createWellboreMarker(witsml2_0::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string &mdDatum)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, const unsigned long &rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature into this repository.
void setDefaultCrs(resqml2::AbstractLocal3dCrs *crs)
Definition: DataObjectRepository.h:494
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2::PropertyKind *localPropType)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
void commitTransactionRepo(DataObjectRepository *transactionRepo)
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, 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.
virtual ~DataObjectRepository()
openingMode
Definition: DataObjectRepository.h:182
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation 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, 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...
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::FaultInterpretation * createFaultInterpretation(resqml2::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
eml2::GraphicalInformationSet * createGraphicalInformationSet(const std::string &guid, const std::string &title)
resqml2::StratigraphicUnitInterpretation * createStratigraphicUnitInterpretation(resqml2::RockVolumeFeature *stratiUnitFeature, const std::string &guid, const std::string &title)
Creates a stratigraphic unit interpretation into this repository.
std::vector< valueType * > getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:387
resqml2::Grid2dRepresentation * createGrid2dRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
void clearWarnings()
Definition: DataObjectRepository.h:3501
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::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature 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::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, unsigned long 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 ...
soap * getGsoapContext() const
Definition: DataObjectRepository.h:209
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition: AbstractHdfProxy.h:42
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
Definition: FluidCharacterization.h:110
Definition: FluidSystem.h:103
Definition: TimeSeriesData.h:33
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:32
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. Notice that,...
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: wellore, 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:33
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: AbstractObject.h:28
Definition: ChannelSet.h:30
Definition: Trajectory.h:27
Definition: WellCompletion.h:30
Definition: WellboreCompletion.h:27
Definition: WellboreGeometry.h:31
Definition: Wellbore.h:41
Definition: WellboreMarker.h:27