21#include <unordered_map>
26#include "DataObjectReference.h"
113namespace RESQML2_0_1_NS
138namespace WITSML2_0_NS
149namespace PRODML2_1_NS
158 class AbstractObject;
160 class HdfProxyFactory;
188 READ_WRITE_DO_NOT_CREATE = 2,
191 enum CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
219 case EnergisticsStandard::PRODML2_1:
220 defaultProdmlVersion = version;
break;
221 case EnergisticsStandard::RESQML2_0_1:
222 case EnergisticsStandard::RESQML2_2:
223 defaultResqmlVersion = version;
break;
224 case EnergisticsStandard::WITSML2_0:
225 defaultWitsmlVersion = version;
break;
226 case EnergisticsStandard::EML2_0:
227 case EnergisticsStandard::EML2_1:
228 case EnergisticsStandard::EML2_2:
229 case EnergisticsStandard::EML2_3:
230 defaultEmlVersion = version;
break;
232 throw std::invalid_argument(
"Unrecognized Energistics standard.");
278 DLL_IMPORT_OR_EXPORT
void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
297 DLL_IMPORT_OR_EXPORT
void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
309 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >&
getJournal()
const {
return journal; }
314 DLL_IMPORT_OR_EXPORT
virtual void on_CreateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
319 DLL_IMPORT_OR_EXPORT
virtual void on_UpdateDataObject(
const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
325 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
resolvePartial(COMMON_NS::AbstractObject * partialObj);
330 DLL_IMPORT_OR_EXPORT
const std::vector<COMMON_NS::AbstractObject*>&
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return forwardRels.at(dataObj); }
339 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getTargetObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
340 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
352 template <
class valueType>
355 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
367 DLL_IMPORT_OR_EXPORT
const std::vector< COMMON_NS::AbstractObject*>&
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj)
const {
return backwardRels.at(dataObj); }
376 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*>
getSourceObjects(COMMON_NS::AbstractObject
const * dataObj,
size_t depth,
377 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>())
const;
389 template <
class valueType>
392 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
394 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
422 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy,
bool replaceOnlyContent =
false);
439 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject*
addOrReplaceGsoapProxy(
const std::string & xml,
const std::string & contentType,
const std::string& uriSource);
447 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > &
getDataObjects()
const {
return dataObjects; }
480 template <
class valueType>
483 std::vector<valueType*> result;
485 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
486 for (
size_t i = 0; i < it->second.size(); ++i) {
487 if (
dynamic_cast<valueType*
>(it->second[i]) !=
nullptr) {
488 result.push_back(
static_cast<valueType*
>(it->second[i]));
502 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractLocal3dCrs*
getDefaultCrs()
const {
return defaultCrs; }
510 DLL_IMPORT_OR_EXPORT
void setDefaultCrs(RESQML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
518 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy*
getDefaultHdfProxy()
const {
return defaultHdfProxy; }
526 DLL_IMPORT_OR_EXPORT
void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
531#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
532 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
533 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
534 const size_t result = get##dataObjectName##Set().size();\
535 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
536 return static_cast<unsigned int>(result);\
538 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
539 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
540 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
544 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
545 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
547 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
548 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
549 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
550 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
551 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
552 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
553 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
554 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
555 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
556 GETTER_DATAOBJECTS(RESQML2_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
557 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
558 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
559 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
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::LocalDepth3dCrs, LocalDepth3dCrs)
564 GETTER_DATAOBJECTS(RESQML2_NS::LocalTime3dCrs, LocalTime3dCrs)
565 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
566 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
569 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
570 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
571 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
572 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
573 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
574 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
575 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
576 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
577 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
578 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
579 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
580 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
581 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
582 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
583 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
584 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
585 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
586 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
588 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
590 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
591 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
592 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
593 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
599 GETTER_DATAOBJECTS(WITSML2_0_NS::WellCompletion, WellCompletion)
600 GETTER_DATAOBJECTS(WITSML2_0_NS::WellboreCompletion, WellboreCompletion)
601 GETTER_DATAOBJECTS(WITSML2_0_NS::WellboreGeometry, WellboreGeometry)
602 GETTER_DATAOBJECTS(WITSML2_0_NS::Log, Log)
603 GETTER_DATAOBJECTS(WITSML2_0_NS::ChannelSet, ChannelSet)
604 GETTER_DATAOBJECTS(WITSML2_0_NS::Channel, Channel)
606 GETTER_DATAOBJECTS(PRODML2_1_NS::FluidSystem, FluidSystem)
607 GETTER_DATAOBJECTS(PRODML2_1_NS::FluidCharacterization, FluidCharacterization)
619 DLL_IMPORT_OR_EXPORT COMMON_NS::
AbstractObject* getDataObjectByUuid(const std::
string & uuid) const;
634 template <class valueType>
635 valueType* getDataObjectByUuid(const std::
string & uuid)
const
637 COMMON_NS::AbstractObject*
const result = getDataObjectByUuid(uuid);
639 if (result ==
nullptr) {
643 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
644 return static_cast<valueType*
>(result);
647 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
683 template <
class valueType>
686 COMMON_NS::AbstractObject*
const result = getDataObjectByUuidAndVersion(uuid, version);
688 if (result ==
nullptr) {
692 if (
dynamic_cast<valueType*
>(result) !=
nullptr) {
693 return static_cast<valueType*
>(result);
696 throw std::invalid_argument(
"The uuid " + uuid +
" does not resolve to the expected datatype");
704 DLL_IMPORT_OR_EXPORT std::vector<std::string>
getUuids()
const;
709 COMMON_NS::AbstractObject*
createPartial(
const std::string & uuid,
const std::string & title,
const std::string & contentType,
const std::string & version =
"");
736 template <
class valueType>
737 valueType*
createPartial(
const std::string & guid,
const std::string & title,
const std::string & version =
"")
739 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
740 valueType* result =
new valueType(dor);
741 dor->ContentType = result->getContentType();
742 addOrReplaceDataObject(result);
762 template <
class NumericalValueBase>
765 NumericalValueBase* result =
new NumericalValueBase(getGsoapContext(), guid);
766 addDataObject(result);
817 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
818 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
819 double arealRotation,
820 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
821 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
849 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
850 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
851 double arealRotation,
852 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
853 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
882 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
883 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
884 double arealRotation,
885 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
886 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
915 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs*
createLocalDepth3dCrs(
const std::string & guid,
const std::string & title,
916 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
917 double arealRotation,
918 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
919 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
948 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
949 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
950 double arealRotation,
951 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
952 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
953 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
982 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
983 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
984 double arealRotation,
985 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
986 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
987 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
1017 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
1018 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
1019 double arealRotation,
1020 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
unsigned long projectedEpsgCode,
1021 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1022 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
const std::string & verticalUnknownReason,
bool isUpOriented);
1052 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs*
createLocalTime3dCrs(
const std::string & guid,
const std::string & title,
1053 double originOrdinal1,
double originOrdinal2,
double originOrdinal3,
1054 double arealRotation,
1055 gsoap_resqml2_0_1::eml20__LengthUom projectedUom,
const std::string & projectedUnknownReason,
1056 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1057 gsoap_resqml2_0_1::eml20__LengthUom verticalUom,
unsigned int verticalEpsgCode,
bool isUpOriented);
1080 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum*
createMdDatum(
const std::string & guid,
const std::string & title,
1081 RESQML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__WellboreDatumReference originKind,
1082 double referenceLocationOrdinal1,
double referenceLocationOrdinal2,
double referenceLocationOrdinal3);
1098 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createBoundaryFeature(
const std::string & guid,
const std::string & title);
1111 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createHorizon(
const std::string & guid,
const std::string & title);
1140 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature*
createGeobodyFeature(
const std::string & guid,
const std::string & title);
1153 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFault(
const std::string & guid,
const std::string & title);
1166 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature*
createFracture(
const std::string & guid,
const std::string & title);
1180 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature*
createWellboreFeature(
const std::string & guid,
const std::string & title);
1202 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature*
createSeismicLattice(
const std::string & guid,
const std::string & title,
1203 int inlineIncrement,
int crosslineIncrement,
1204 unsigned int originInline,
unsigned int originCrossline,
1205 unsigned int inlineCount,
unsigned int crosslineCount);
1220 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature*
createSeismicLine(
const std::string & guid,
const std::string & title,
1221 int traceIndexIncrement,
unsigned int firstTraceIndex,
unsigned int traceCount);
1237 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature*
createCmpLine(
const std::string & guid,
const std::string & title,
1238 int nearestShotPointIndicesIncrement,
int firstNearestShotPointIndex,
unsigned int nearestShotPointCount);
1250 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature*
createShotPointLine(
const std::string & guid,
const std::string & title);
1263 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature*
createSeismicLineSet(
const std::string & guid,
const std::string & title);
1278 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature*
createCultural(
const std::string & guid,
const std::string & title,
1279 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries);
1315 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createModel(
const std::string & guid,
const std::string & title);
1375 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model*
createEarthModel(
const std::string & guid,
const std::string & title);
1388 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);
1403 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);
1421 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation*
createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature,
const std::string & guid,
const std::string & title);
1437 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation*
createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature,
const std::string & guid,
const std::string & title);
1453 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation*
createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon,
const std::string & guid,
const std::string & title);
1469 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation*
createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary,
const std::string & guid,
const std::string & title);
1485 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation*
createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault,
const std::string & guid,
const std::string & title);
1502 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);
1520 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation*
createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore,
const std::string & guid,
const std::string & title,
bool isDrilled);
1536 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation*
createEarthModelInterpretation(RESQML2_NS::Model * orgFeat,
const std::string & guid,
const std::string & title);
1622 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation*
createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature,
const std::string & guid,
const std::string & title);
1639 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation*
createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody,
const std::string & guid,
const std::string & title);
1655 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation*
createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature,
const std::string & guid,
const std::string & title);
1777 const std::string & guid,
const std::string & title);
1810 const std::string & guid,
const std::string & title);
1832 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1863 const std::string & guid,
const std::string & title);
1880 const std::string & guid,
const std::string & title);
1895 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation*
createPolylineRepresentation(
const std::string & guid,
const std::string & title,
bool isClosed =
false);
1916 const std::string & guid,
const std::string & title,
bool isClosed =
false);
1938 const std::string & guid,
const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind,
bool isClosed =
false);
1955 const std::string & guid,
const std::string & title);
1974 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1993 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation*
createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::DeviationSurveyRepresentation* deviationSurvey);
2014 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);
2032 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation*
createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2058 RESQML2_NS::WellboreInterpretation* interp,
2059 const std::string& guid,
const std::string& title,
2060 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2061 double seismicReferenceDatum,
2062 double weatheringVelocity,
2063 RESQML2_NS::LocalTime3dCrs* crs);
2081 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation*
createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp,
const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2097 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker*
createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame,
const std::string& guid,
const std::string& title);
2114 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);
2133 const std::string& guid,
const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2152 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2153 const std::string & guid,
2154 const std::string & title);
2169 const std::string & guid,
2170 const std::string & title);
2187 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2188 const std::string & guid,
2189 const std::string & title);
2206 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2207 const std::string & guid,
2208 const std::string & title);
2227 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2228 const std::string & guid,
2229 const std::string & title,
2230 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2275 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2301 const std::string& guid,
const std::string& title,
2302 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2326 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2352 const std::string& guid,
const std::string& title,
2353 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2371 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2391 const std::string& guid,
const std::string& title,
2392 unsigned int iCount,
unsigned int jCount,
unsigned int kCount);
2416 const std::string& guid,
const std::string& title,
2417 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2443 const std::string& guid,
const std::string& title,
2444 unsigned int iCount,
unsigned int jCount,
unsigned int kCount,
bool* kGaps =
nullptr, EML2_NS::AbstractHdfProxy* proxy =
nullptr);
2460 const uint64_t & cellCount);
2475 const std::string & guid,
const std::string & title);
2494 const std::string & guid,
const std::string & title);
2527 const std::string & guid,
const std::string & title);
2543 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature*
createStreamlinesFeature(
const std::string & guid,
const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2559 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation*
createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp,
const std::string & guid,
const std::string & title, uint64_t lineCount);
2575 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries*
createTimeSeries(
const std::string & guid,
const std::string & title);
2623 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2624 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2644 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2645 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * parentPropType);
2664 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2665 const std::string & namingSystem,
const std::string & nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2682 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2683 const std::string & namingSystem,
const std::string & nonStandardUom, EML2_NS::PropertyKind * parentPropType);
2703 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind*
createPropertyKind(
const std::string & guid,
const std::string & title,
2704 gsoap_eml2_1::eml21__QuantityClassKind quantityClass,
bool isAbstract =
false, EML2_NS::PropertyKind* parentPropertyKind =
nullptr);
2726 DLL_IMPORT_OR_EXPORT RESQML2_NS::PropertySet*
createPropertySet(
const std::string & guid,
const std::string & title,
2727 bool hasMultipleRealizations,
bool hasSinglePropertyKind, gsoap_eml2_3::resqml22__TimeSetKind timeSetKind);
2751 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2752 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2775 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty*
createCommentProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2776 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2805 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2806 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2834 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2835 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2863 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2864 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2891 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty*
createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2892 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2916 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2917 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2940 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty*
createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2941 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2967 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2968 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2969 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2994 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
2995 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2996 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3021 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3022 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
3023 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3047 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty*
createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3048 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
3049 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3073 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3074 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3075 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3098 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty*
createPointsProperty(RESQML2_NS::AbstractRepresentation * rep,
const std::string & guid,
const std::string & title,
3099 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3100 EML2_NS::PropertyKind * localPropType);
3132 DLL_IMPORT_OR_EXPORT EML2_NS::Activity*
createActivity(EML2_NS::ActivityTemplate* activityTemplate,
const std::string & guid,
const std::string & title);
3175 const std::string & title);
3192 const std::string & title,
3193 const std::string & operator_,
3194 gsoap_eml2_1::eml21__WellStatus statusWell,
3195 gsoap_eml2_1::witsml20__WellDirection directionWell
3212 const std::string & guid,
3213 const std::string & title);
3233 const std::string & guid,
3234 const std::string & title,
3235 gsoap_eml2_1::eml21__WellStatus statusWellbore,
3254 const std::string & guid,
3255 const std::string & title);
3274 WITSML2_0_NS::WellCompletion* wellCompletion,
3275 const std::string & guid,
3276 const std::string & title,
3277 const std::string & wellCompletionName);
3297 const std::string & guid,
3298 const std::string & title,
3299 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3318 const std::string & guid,
3319 const std::string & title,
3320 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3336 const std::string & guid,
3337 const std::string & title);
3348 const std::string & guid,
3349 const std::string & title);
3372 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Channel*
createChannel(EML2_NS::PropertyKind * propertyKind,
3373 const std::string & guid,
const std::string & title,
3374 const std::string & mnemonic, gsoap_eml2_1::eml21__UnitOfMeasure uom, gsoap_eml2_1::witsml20__EtpDataType dataType, gsoap_eml2_1::witsml20__ChannelStatus growingStatus,
3375 const std::string & timeDepth,
const std::string & loggingCompanyName);
3391 const std::string & guid,
const std::string & title,
3392 double md, gsoap_eml2_1::eml21__LengthUom mdUom,
const std::string & mdDatum);
3411 const std::string & guid,
const std::string & title,
3412 double md, gsoap_eml2_1::eml21__LengthUom mdUom,
const std::string & mdDatum);
3434 const std::string & title,
3435 double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom,
3436 double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom,
3437 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3438 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3455 const std::string & title,
3456 gsoap_eml2_2::eml22__ReferenceCondition referenceCondition,
3457 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3458 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3482 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::TimeSeriesData*
createTimeSeriesData(
const std::string & guid,
const std::string & title);
3508 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap*
createDiscreteColorMap(
const std::string& guid,
const std::string& title);
3523 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3533 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper*
getPropertyKindMapper()
const {
return propertyKindMapper.get(); }
3545 DLL_IMPORT_OR_EXPORT
void addWarning(
const std::string & warning);
3552 DLL_IMPORT_OR_EXPORT
const std::vector<std::string> &
getWarnings()
const;
3573 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3576 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3579 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3583 std::vector<std::string> warnings;
3585 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3587 EML2_NS::AbstractHdfProxy* defaultHdfProxy;
3588 RESQML2_NS::AbstractLocal3dCrs* defaultCrs;
3590 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3592 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3599 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>,
DataObjectReference, CUD> > journal;
3604 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3611 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(
const std::string & resqmlContentType);
3613 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(
const std::string& resqmlContentType);
3614 COMMON_NS::AbstractObject* getEml2_1WrapperFromGsoapContext(
const std::string & datatype);
3615 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(
const std::string & datatype);
3617 COMMON_NS::AbstractObject* getWitsml1_4WrapperFromGsoapContext(
const std::string & datatype);
3618 COMMON_NS::AbstractObject* getWitsml2_0WrapperFromGsoapContext(
const std::string & datatype);
3619 COMMON_NS::AbstractObject* getProdml2_1WrapperFromGsoapContext(
const std::string & datatype);
3624 int getGsoapErrorCode()
const;
3629 std::string getGsoapErrorMessage()
const;
3631 template <
class valueType>
3632 std::vector<valueType *> getObjsFilteredOnDatatype(
const std::vector< COMMON_NS::AbstractObject * >& objs)
const
3634 std::vector<valueType *> result;
3635 for (
size_t i = 0; i < objs.size(); ++i) {
3636 valueType * castedObj =
dynamic_cast<valueType *
>(objs[i]);
3637 if (castedObj !=
nullptr) {
3638 result.push_back(castedObj);
3644 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(
const std::string & guid,
const std::string & title,
const std::string & version);
3646 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:33
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: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::Grid2dRepresentation * createGrid2dRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
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::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
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::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, eml2::PropertyKind *parentPropType)
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::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)
const std::unordered_map< std::string, std::vector< common::AbstractObject * > > & getDataObjects() const
Definition: DataObjectRepository.h:447
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
std::vector< valueType * > getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:353
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
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.
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::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.
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition: DataObjectRepository.h:518
common::AbstractObject * addOrReplaceDataObject(common::AbstractObject *proxy, bool replaceOnlyContent=false)
DataObjectRepository(const std::string &propertyKindMappingFilesDirectory)
const std::vector< common::AbstractObject * > & getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:367
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...
witsml2_0::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common::DataObjectReference, CUD > > & getJournal() const
Definition: DataObjectRepository.h:309
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.
std::vector< common::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
witsml2_0::WellboreGeometry * createWellboreGeometry(WITSML2_NS::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::Model * createModel(const std::string &guid, const std::string &title)
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation into this repository.
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
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...
void registerDataFeeder(common::DataFeeder *dataFeeder)
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_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)
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)
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
common::AbstractObject * resolvePartial(common::AbstractObject *partialObj)
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::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2::BoundaryFeature *feature, const std::string &guid, const std::string &title)
resqml2::SubRepresentation * createSubRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation 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 setHdfProxyFactory(common::HdfProxyFactory *factory)
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
void addRelationship(common::AbstractObject *source, common::AbstractObject *target)
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)
void addWarning(const std::string &warning)
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...
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template 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::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.
NumericalValueBase * createEpcExternalPartReference(const std::string &guid, const std::string &title)
Definition: DataObjectRepository.h:763
prodml2_1::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
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_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
std::vector< common::AbstractObject * > getSourceObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
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_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::RockFluidUnitInterpretation * createRockFluidUnitInterpretation(resqml2::RockVolumeFeature *rockFluidUnitFeature, const std::string &guid, const std::string &title)
Creates a rock fluid unit interpretation into this repository.
const std::vector< common::AbstractObject * > & getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:330
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType, const std::string &uriSource)
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a wellbore 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.
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.
DataObjectRepository * newTransactionRepo()
std::vector< valueType * > getDataObjects() const
Definition: DataObjectRepository.h:481
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.
soap * getGsoapContext() const
Definition: DataObjectRepository.h:212
resqml2::ContinuousColorMap * createContinuousColorMap(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod)
virtual void on_UpdateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common::AbstractObject * > > &)
Definition: DataObjectRepository.h:319
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition: DataObjectRepository.h:3533
resqml2::PlaneSetRepresentation * createPlaneSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a plane set representation into this repository.
valueType * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
Definition: DataObjectRepository.h:684
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
eml2::GraphicalInformationSet * createGraphicalInformationSet(const std::string &guid, const std::string &title)
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid 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:314
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
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)
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)
EnergisticsStandard getDefaultResqmlVersion() const
Definition: DataObjectRepository.h:255
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_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_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)
bool addDataObject(common::AbstractObject *proxy)
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType() const
resqml2::StratigraphicUnitInterpretation * createStratigraphicUnitInterpretation(resqml2::RockVolumeFeature *stratiUnitFeature, const std::string &guid, const std::string &title)
Creates a stratigraphic unit interpretation into this repository.
void setDefaultStandard(EnergisticsStandard version)
Definition: DataObjectRepository.h:217
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
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::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.
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::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::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
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::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
prodml2_1::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
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.
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Creates a wellbore trajectory into this repository.
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
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::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by age into this repository.
std::vector< valueType * > getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:390
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...
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 ...
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::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::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
EnergisticsStandard
Definition: DataObjectRepository.h:196
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
void updateAllRelationships()
witsml2_0::WellboreMarker * createWellboreMarker(WITSML2_NS::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::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::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::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary 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, 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::FaultInterpretation * createFaultInterpretation(resqml2::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
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::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_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)
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition: DataObjectRepository.h:737
EnergisticsStandard getDefaultWitsmlVersion() const
Definition: DataObjectRepository.h:262
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::WellboreMarker * createWellboreMarker(resqml2::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title)
Creates a wellbore marker within a given wellbore marker frame representation.
resqml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition: DataObjectRepository.h:502
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
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.
EnergisticsStandard getDefaultProdmlVersion() const
Definition: DataObjectRepository.h:248
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2::TimeSeries *timeSeries)
Creates a streamlines feature 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::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.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
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_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::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::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
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.
WITSML2_NS::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::HorizonInterpretation * createHorizonInterpretation(resqml2::BoundaryFeature *horizon, const std::string &guid, const std::string &title)
Creates a horizon interpretation into this repository.
EnergisticsStandard getDefaultEmlVersion() const
Definition: DataObjectRepository.h:241
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.
witsml2_0::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
Creates a wellbore log into this repository.
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)
witsml2_0::ChannelSet * createChannelSet(const std::string &guid, const std::string &title)
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title)
resqml2::GeobodyInterpretation * createGeobodyInterpretation(resqml2::RockVolumeFeature *geobody, const std::string &guid, const std::string &title)
Creates a geobody interpretation 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.
witsml2_0::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, witsml2_0::WellCompletion *wellCompletion, const std::string &guid, const std::string &title, const std::string &wellCompletionName)
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::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.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series 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::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by age into this repository.
void setDefaultHdfProxy(eml2::AbstractHdfProxy *hdfProxy)
Definition: DataObjectRepository.h:526
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
void setDefaultCrs(resqml2::AbstractLocal3dCrs *crs)
Definition: DataObjectRepository.h:510
std::vector< common::AbstractObject * > getTargetObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
void commitTransactionRepo(DataObjectRepository *transactionRepo)
virtual ~DataObjectRepository()
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.
openingMode
Definition: DataObjectRepository.h:185
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature 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::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::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
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.
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 ...
eml2::Activity * createActivity(eml2::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::BoundaryFeature * createFault(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)
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.
std::vector< std::string > getUuids() const
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::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::DeviationSurveyRepresentation *deviationSurvey)
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
void clearWarnings()
Definition: DataObjectRepository.h:3538
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.
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: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