Fesapi 2.13.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
DataObjectRepository.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include <chrono>
22#include <numeric>
23#include <sstream>
24#include <unordered_map>
25
26#include "DataObjectReference.h"
27#include "../proxies/gsoap_uom1_0H.h"
28
29namespace EML2_NS
30{
31 class AbstractHdfProxy;
33 class Activity;
34 class ActivityTemplate;
36 class PropertyKind;
37 class TimeSeries;
38}
39
40namespace RESQML2_NS
41{
42 class AbstractFeature;
49 class BoundaryFeature;
52 class CmpLineFeature;
53 class CommentProperty;
56 class CulturalFeature;
57 class DiscreteColorMap;
58 class DiscreteProperty;
73 class MdDatum;
74 class Model;
78 class PointsProperty;
102 class WellboreFeature;
105 class WellboreMarker;
108}
109
110namespace RESQML2_0_1_NS
111{
112 class PropertyKindMapper;
114 class CommentProperty;
115 class ContinuousProperty;
117 class DiscreteProperty;
120 class GeobodyFeature;
121 class Horizon;
122 class PointsProperty;
123 class PropertyKind;
124 class PropertySet;
126 class SeismicLineFeature;
129}
130
131namespace WITSML2_NS
132{
133 class Trajectory;
134 class Well;
135 class Wellbore;
136}
137
138namespace WITSML2_1_NS
139{
140 class WellCompletion;
141 class WellboreCompletion;
142 class WellboreGeometry;
143 class WellboreMarker;
144 class Log;
145 class ChannelSet;
146 class Channel;
147}
148
149namespace PRODML2_2_NS
150{
151 class FluidSystem;
152 class FluidCharacterization;
153 class TimeSeriesData;
154}
155
156namespace COMMON_NS
157{
158 class AbstractObject;
159 class DataFeeder;
160 class HdfProxyFactory;
161
171 {
172 public:
173
175 DLL_IMPORT_OR_EXPORT DataObjectRepository();
176
184 DLL_IMPORT_OR_EXPORT explicit DataObjectRepository(const std::string& resourceDirectory);
185
187 DLL_IMPORT_OR_EXPORT virtual ~DataObjectRepository();
188
190 enum class openingMode : std::int8_t {
191 READ_ONLY = 0, // It is meant to open an existing file in read only mode. It throws an exception if the file does not exist.
192 READ_WRITE = 1, // It is meant to open a file in read and write mode. It creates the file if the file does not exist.
193 READ_WRITE_DO_NOT_CREATE = 2, // It is meant to open an existing file in read and write mode. It throws an exception if the file does not exist.
194 OVERWRITE = 3 // It is meant to open an existing file in read and write mode. It deletes the content of the file if the later does already exist.
195 };
196
197 enum class CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
198
202 enum class EnergisticsStandard : std::int8_t {
203 RESQML2_0_1 = 0,
204 EML2_0 = 1,
205 EML2_3 = 2,
206 PRODML2_2 = 3,
207 RESQML2_2 = 4,
208 WITSML2_1 = 5
209 };
210
216 soap* getGsoapContext() const { return gsoapContext; }
217
221 DLL_IMPORT_OR_EXPORT void setDefaultStandard(EnergisticsStandard version) {
222 switch (version) {
223 case EnergisticsStandard::PRODML2_2:
224 defaultProdmlVersion = version; break;
225 case EnergisticsStandard::RESQML2_0_1:
226 case EnergisticsStandard::RESQML2_2:
227 defaultResqmlVersion = version; break;
228 case EnergisticsStandard::WITSML2_1:
229 defaultWitsmlVersion = version; break;
230 case EnergisticsStandard::EML2_0:
231 case EnergisticsStandard::EML2_3:
232 defaultEmlVersion = version; break;
233 default :
234 throw std::invalid_argument("Unrecognized Energistics standard.");
235 }
236 }
237
243 EnergisticsStandard getDefaultEmlVersion() const { return defaultEmlVersion; }
244
250 EnergisticsStandard getDefaultProdmlVersion() const { return defaultProdmlVersion; }
251
257 EnergisticsStandard getDefaultResqmlVersion() const { return defaultResqmlVersion; }
258
264 EnergisticsStandard getDefaultWitsmlVersion() const { return defaultWitsmlVersion; }
265
267 DLL_IMPORT_OR_EXPORT void clear();
268
280 DLL_IMPORT_OR_EXPORT void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
281
286 DLL_IMPORT_OR_EXPORT void registerDataFeeder(COMMON_NS::DataFeeder * dataFeeder);
287
299 DLL_IMPORT_OR_EXPORT void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
300
306 DLL_IMPORT_OR_EXPORT void setHdfProxyFactory(COMMON_NS::HdfProxyFactory * factory);
307
311 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >& getJournal() const { return journal; }
312
316 DLL_IMPORT_OR_EXPORT virtual void on_CreateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
317
321 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
327 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* resolvePartial(COMMON_NS::AbstractObject * partialObj);
328
332 DLL_IMPORT_OR_EXPORT const std::vector<COMMON_NS::AbstractObject*>& getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const { return forwardRels.at(dataObj); }
333
341 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getTargetObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
342 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
343
354 template <class valueType>
355 std::vector<valueType *> getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const
356 {
357 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
358 }
359
369 DLL_IMPORT_OR_EXPORT const std::vector< COMMON_NS::AbstractObject*>& getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const { return backwardRels.at(dataObj); }
370
378 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getSourceObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
379 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
380
391 template <class valueType>
392 std::vector<valueType *> getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const
393 {
394 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
395
396 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
397 }
398
400 DLL_IMPORT_OR_EXPORT void updateAllRelationships();
401
412 bool addDataObject(std::unique_ptr<COMMON_NS::AbstractObject> proxy);
413
424 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceDataObject(std::unique_ptr<COMMON_NS::AbstractObject> proxy, bool replaceOnlyContent = false);
425
441 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceGsoapProxy(const std::string & xml, const std::string & contentOrDataType, const std::string& uriSource);
442
449 DLL_IMPORT_OR_EXPORT void setUriSource(const std::string& uriSource);
450
461 DLL_IMPORT_OR_EXPORT uint64_t cascadeDeleteDataObject(COMMON_NS::AbstractObject* proxy);
462
469 const std::unordered_map< std::string, std::vector< std::unique_ptr<COMMON_NS::AbstractObject> > >& getDataObjects() const { return dataObjects; }
470
477 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType() const;
478
484 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType(const std::string & filter) const;
485
493 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getDataObjectsByContentType(const std::string & contentType) const;
494
502 template <class valueType>
503 std::vector<valueType*> getDataObjects() const
504 {
505 std::vector<valueType*> result;
506
507 for (auto const& uuidDataobjectPair : dataObjects) {
508 for (auto const& dataobject : uuidDataobjectPair.second) {
509 if (dynamic_cast<valueType*>(dataobject.get()) != nullptr) {
510 result.push_back(static_cast<valueType*>(dataobject.get()));
511 }
512 }
513 }
514
515 return result;
516 }
517
524 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* getDefaultCrs() const { return defaultCrs; }
525
532 DLL_IMPORT_OR_EXPORT void setDefaultCrs(EML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
533
540 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy* getDefaultHdfProxy() const { return defaultHdfProxy; }
541
548 DLL_IMPORT_OR_EXPORT void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
549
553#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
554 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
555 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
556 const size_t result = get##dataObjectName##Set().size();\
557 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
558 return static_cast<unsigned int>(result);\
559 }\
560 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
561 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
562 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
563 return all[index];\
564 }
565
566 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
567 GETTER_DATAOBJECTS(EML2_NS::AbstractLocal3dCrs, Local3dCrs)
568 GETTER_DATAOBJECTS(EML2_NS::Activity, Activity)
569 GETTER_DATAOBJECTS(EML2_NS::ActivityTemplate, ActivityTemplate)
570 GETTER_DATAOBJECTS(EML2_NS::GraphicalInformationSet, GraphicalInformationSet)
571 GETTER_DATAOBJECTS(EML2_NS::PropertyKind, PropertyKind)
572 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
573
574 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
575 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
576 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
577 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
578 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
579 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
580 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
581 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
582 GETTER_DATAOBJECTS(RESQML2_NS::ContinuousColorMap, ContinuousColorMap)
583 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
584 GETTER_DATAOBJECTS(RESQML2_NS::DiscreteColorMap, DiscreteColorMap)
585 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
586 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
588 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
590 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
591 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
592 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
593 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
594 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
595 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
596 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
597 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
598 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
599 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
600 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
601 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
602 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
603 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
604 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
605 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
606 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
607 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
608 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
609 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
610 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
611 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
612 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
613 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
614 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
615 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
616 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
617 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
618 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
619 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
620
621 GETTER_DATAOBJECTS(RESQML2_0_1_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
622 GETTER_DATAOBJECTS(RESQML2_0_1_NS::PropertySet, PropertySet)
623
624 GETTER_DATAOBJECTS(WITSML2_NS::Well, WitsmlWell)
625 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, WitsmlWellbore)
626 GETTER_DATAOBJECTS(WITSML2_NS::Trajectory, WitsmlTrajectory)
627
628 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, WellCompletion)
629 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreCompletion, WellboreCompletion)
630 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreGeometry, WellboreGeometry)
631 GETTER_DATAOBJECTS(WITSML2_1_NS::Log, Log)
632 GETTER_DATAOBJECTS(WITSML2_1_NS::ChannelSet, ChannelSet)
633 GETTER_DATAOBJECTS(WITSML2_1_NS::Channel, Channel)
634
635 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidSystem, FluidSystem)
636 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidCharacterization, FluidCharacterization)
637
638
648 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuid(const std::string & uuid) const;
649
663 template <class valueType>
664 valueType* getDataObjectByUuid(const std::string& uuid) const
665 {
666 COMMON_NS::AbstractObject* const result = getDataObjectByUuid(uuid);
667
668 if (result == nullptr) {
669 return nullptr;
670 }
671
672 if (dynamic_cast<valueType*>(result) != nullptr) {
673 return static_cast<valueType*>(result);
674 }
675
676 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
677 }
678
688 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const;
689
696 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::array<uint8_t, 16> & uuid, const std::string & version) const;
697
712 template <class valueType>
713 valueType* getDataObjectByUuidAndVersion(const std::string& uuid, const std::string& version) const
714 {
715 COMMON_NS::AbstractObject* const result = getDataObjectByUuidAndVersion(uuid, version);
716
717 if (result == nullptr) {
718 return nullptr;
719 }
720
721 if (dynamic_cast<valueType*>(result) != nullptr) {
722 return static_cast<valueType*>(result);
723 }
724
725 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
726 }
727
733 DLL_IMPORT_OR_EXPORT std::vector<std::string> getUuids() const;
734
738 COMMON_NS::AbstractObject* createPartial(const std::string & uuid, const std::string & title, const std::string & contentType, const std::string & version = "");
739
749 COMMON_NS::AbstractObject* createPartial(const DataObjectReference& dor);
750
765 template <class valueType>
766 valueType* createPartial(const std::string & guid, const std::string & title, const std::string & version = "")
767 {
768 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
769 valueType* result = new valueType(dor);
770 dor->ContentType = result->getContentType();
771 addOrReplaceDataObject(std::unique_ptr<COMMON_NS::AbstractObject>{result});
772 return result;
773 }
774
775
776 //************************************
777 //***** DataObject creation **********
778 //************************************
779
797 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy* createHdfProxy(const std::string & guid, const std::string & title, const std::string & packageDirAbsolutePath, const std::string & filePath, DataObjectRepository::openingMode hdfPermissionAccess);
798
799 //************ CRS *******************
800
827 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalDepth3dCrs(const std::string& guid, const std::string& title,
828 double originOrdinal1, double originOrdinal2, double originOrdinal3,
829 double arealRotation,
830 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
831 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented);
832
859 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalDepth3dCrs(const std::string& guid, const std::string& title,
860 double originOrdinal1, double originOrdinal2, double originOrdinal3,
861 double arealRotation,
862 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string& projectedDefinition,
863 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string& verticalDefinition, bool isUpOriented);
864
892 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalDepth3dCrs(const std::string& guid, const std::string& title,
893 double originOrdinal1, double originOrdinal2, double originOrdinal3,
894 double arealRotation,
895 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
896 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string& verticalDefinition, bool isUpOriented);
897
925 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalDepth3dCrs(const std::string& guid, const std::string& title,
926 double originOrdinal1, double originOrdinal2, double originOrdinal3,
927 double arealRotation,
928 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string& projectedDefinition,
929 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented);
930
958 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalTime3dCrs(const std::string& guid, const std::string& title,
959 double originOrdinal1, double originOrdinal2, double originOrdinal3,
960 double arealRotation,
961 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
962 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
963 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented);
964
992 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalTime3dCrs(const std::string& guid, const std::string& title,
993 double originOrdinal1, double originOrdinal2, double originOrdinal3,
994 double arealRotation,
995 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string& projectedDefinition,
996 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
997 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string& verticalDefinition, bool isUpOriented);
998
1027 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalTime3dCrs(const std::string& guid, const std::string& title,
1028 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1029 double arealRotation,
1030 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
1031 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1032 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string& verticalDefinition, bool isUpOriented);
1033
1062 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* createLocalTime3dCrs(const std::string& guid, const std::string& title,
1063 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1064 double arealRotation,
1065 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string& projectedDefinition,
1066 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1067 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented);
1068
1090 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum* createMdDatum(const std::string & guid, const std::string & title,
1091 EML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind,
1092 double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3);
1093
1094 //************ FEATURE ***************
1095
1108 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createBoundaryFeature(const std::string & guid, const std::string & title);
1109
1121 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createHorizon(const std::string & guid, const std::string & title);
1122
1136 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createGeobodyBoundaryFeature(const std::string & guid, const std::string & title);
1137
1150 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createGeobodyFeature(const std::string & guid, const std::string & title);
1151
1163 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFault(const std::string & guid, const std::string & title);
1164
1176 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFracture(const std::string & guid, const std::string & title);
1177
1190 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature* createWellboreFeature(const std::string & guid, const std::string & title);
1191
1212 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature* createSeismicLattice(const std::string & guid, const std::string & title,
1213 int inlineIncrement, int crosslineIncrement,
1214 unsigned int originInline, unsigned int originCrossline,
1215 unsigned int inlineCount, unsigned int crosslineCount);
1216
1230 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature* createSeismicLine(const std::string & guid, const std::string & title,
1231 int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount);
1232
1247 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature* createCmpLine(const std::string & guid, const std::string & title,
1248 int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount);
1249
1260 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature* createShotPointLine(const std::string & guid, const std::string & title);
1261
1273 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature* createSeismicLineSet(const std::string & guid, const std::string & title);
1274
1288 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature* createCultural(const std::string & guid, const std::string & title,
1289 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries);
1290
1304 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createStratigraphicUnitFeature(const std::string & guid, const std::string & title);
1305
1315 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createRockVolumeFeature(const std::string & guid, const std::string & title);
1316
1325 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createModel(const std::string & guid, const std::string & title);
1326
1340 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStructuralModel(const std::string & guid, const std::string & title);
1341
1355 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStratigraphicModel(const std::string & guid, const std::string & title);
1356
1370 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createRockFluidModel(const std::string & guid, const std::string & title);
1371
1385 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createEarthModel(const std::string & guid, const std::string & title);
1386
1398 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::FluidBoundaryFeature* createFluidBoundaryFeature(const std::string & guid, const std::string & title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact);
1399
1413 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);
1414
1415 //************ INTERPRETATION ********
1416
1431 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation* createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature, const std::string & guid, const std::string & title);
1432
1447 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation* createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature, const std::string & guid, const std::string & title);
1448
1463 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation* createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon, const std::string & guid, const std::string & title);
1464
1479 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation* createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary, const std::string & guid, const std::string & title);
1480
1495 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation* createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault, const std::string & guid, const std::string & title);
1496
1512 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);
1513
1530 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation* createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore, const std::string & guid, const std::string & title, bool isDrilled);
1531
1546 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation* createEarthModelInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1547
1563 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1564
1581 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1582
1599 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInMeasuredDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1600
1616 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidOrganizationInterpretation* createRockFluidOrganizationInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1617
1632 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation* createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature, const std::string & guid, const std::string & title);
1633
1649 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation* createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody, const std::string & guid, const std::string & title);
1650
1665 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation* createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature, const std::string & guid, const std::string & title);
1666
1679 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumn* createStratigraphicColumn(const std::string & guid, const std::string & title);
1680
1698 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
1699
1717 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
1718
1734 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1735
1752 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1753
1754 //************ REPRESENTATION ********
1755
1768 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(const std::string & guid, const std::string & title);
1769
1786 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1787 const std::string & guid, const std::string & title);
1788
1801 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(const std::string & guid, const std::string & title);
1802
1819 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1820 const std::string & guid, const std::string & title);
1821
1841 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1842 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1843
1856 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(const std::string & guid, const std::string & title);
1857
1872 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1873 const std::string & guid, const std::string & title);
1874
1889 DLL_IMPORT_OR_EXPORT RESQML2_NS::PlaneSetRepresentation* createPlaneSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1890 const std::string & guid, const std::string & title);
1891
1905 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(const std::string & guid, const std::string & title, bool isClosed = false);
1906
1925 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1926 const std::string & guid, const std::string & title, bool isClosed = false);
1927
1947 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1948 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed = false);
1949
1964 DLL_IMPORT_OR_EXPORT RESQML2_NS::Grid2dRepresentation* createGrid2dRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1965 const std::string & guid, const std::string & title);
1966
1984 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1985
2003 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_0_1_NS::DeviationSurveyRepresentation* deviationSurvey);
2004
2024 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DeviationSurveyRepresentation* createDeviationSurveyRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, bool isFinal, RESQML2_NS::MdDatum* mdInfo);
2025
2042 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation* createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2043
2067 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicWellboreFrameRepresentation* createSeismicWellboreFrameRepresentation(
2068 RESQML2_NS::WellboreInterpretation* interp,
2069 const std::string& guid, const std::string& title,
2070 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2071 double seismicReferenceDatum,
2072 double weatheringVelocity,
2073 EML2_NS::AbstractLocal3dCrs* crs);
2074
2091 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation* createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2092
2107 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker* createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame, const std::string& guid, const std::string& title);
2108
2124 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);
2125
2142 DLL_IMPORT_OR_EXPORT RESQML2_NS::BlockedWellboreRepresentation* createBlockedWellboreRepresentation(RESQML2_NS::WellboreInterpretation* interp,
2143 const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2144
2161 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2162 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2163 const std::string & guid,
2164 const std::string & title);
2165
2178 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2179 const std::string & guid,
2180 const std::string & title);
2181
2196 DLL_IMPORT_OR_EXPORT RESQML2_NS::NonSealedSurfaceFrameworkRepresentation* createNonSealedSurfaceFrameworkRepresentation(
2197 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2198 const std::string & guid,
2199 const std::string & title);
2200
2215 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedSurfaceFrameworkRepresentation* createSealedSurfaceFrameworkRepresentation(
2216 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2217 const std::string & guid,
2218 const std::string & title);
2219
2236 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedVolumeFrameworkRepresentation* createSealedVolumeFrameworkRepresentation(
2237 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2238 const std::string & guid,
2239 const std::string & title,
2240 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2241
2251 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialIjkGridRepresentation(const std::string& guid, const std::string& title);
2252
2261 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialTruncatedIjkGridRepresentation(const std::string& guid, const std::string& title);
2262
2284 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(const std::string& guid, const std::string& title,
2285 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2286
2310 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2311 const std::string& guid, const std::string& title,
2312 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2313
2335 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(const std::string& guid, const std::string& title,
2336 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2337
2361 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2362 const std::string& guid, const std::string& title,
2363 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2364
2380 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(const std::string& guid, const std::string& title,
2381 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2382
2400 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2401 const std::string& guid, const std::string& title,
2402 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2403
2425 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(
2426 const std::string& guid, const std::string& title,
2427 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2428
2452 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2453 const std::string& guid, const std::string& title,
2454 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2455
2469 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(const std::string& guid, const std::string& title,
2470 const uint64_t & cellCount);
2471
2486 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2487 const std::string& guid, const std::string& title, const uint64_t & cellCount);
2488
2501 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(
2502 const std::string & guid, const std::string & title);
2503
2520 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2521 const std::string & guid, const std::string & title);
2522
2535 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(const std::string & guid, const std::string & title);
2536
2553 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2554 const std::string & guid, const std::string & title);
2555
2570 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature* createStreamlinesFeature(const std::string & guid, const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2571
2586 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation* createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp, const std::string & guid, const std::string & title, uint64_t lineCount);
2587
2588 //************* PROPERTIES ***********
2589
2602 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries* createTimeSeries(const std::string & guid, const std::string & title);
2603
2616 DLL_IMPORT_OR_EXPORT RESQML2_NS::DoubleTableLookup* createDoubleTableLookup(const std::string & guid, const std::string & title);
2617
2630 DLL_IMPORT_OR_EXPORT RESQML2_NS::StringTableLookup* createStringTableLookup(const std::string & guid, const std::string & title);
2631
2652 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2653 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2654
2675 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2676 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, EML2_NS::PropertyKind * parentPropType);
2677
2697 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2698 const std::string & namingSystem, const std::string & nonStandardUom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2699
2717 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2718 const std::string & namingSystem, const std::string & nonStandardUom, bool isAbstract, EML2_NS::PropertyKind * parentPropType);
2719
2739 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2740 gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2741
2761 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string& guid, const std::string& title,
2762 const std::string& quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2763
2784 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertySet* createPropertySet(const std::string & guid, const std::string & title,
2785 bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind);
2786
2809 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2810 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2811
2833 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2834 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2835
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::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2865
2892 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2893 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2894
2921 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2922 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2923
2949 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2950 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2951
2974 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2975 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2976
2998 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2999 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
3000
3025 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3026 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3027 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3028
3052 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3053 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3054 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3055
3079 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3080 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3081 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3082
3105 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3106 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3107 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3108
3131 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3132 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::AbstractLocal3dCrs* localCrs,
3133 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3134
3156 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3157 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::AbstractLocal3dCrs* localCrs,
3158 EML2_NS::PropertyKind * localPropType);
3159
3160 //************* ACTIVITIES ***********
3161
3174 DLL_IMPORT_OR_EXPORT EML2_NS::ActivityTemplate* createActivityTemplate(const std::string & guid, const std::string & title);
3175
3190 DLL_IMPORT_OR_EXPORT EML2_NS::Activity* createActivity(EML2_NS::ActivityTemplate* activityTemplate, const std::string & guid, const std::string & title);
3191
3192 //*************** WITSML *************
3193/*
3194 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModel* createToolErrorModel(
3195 const std::string & guid,
3196 const std::string & title,
3197 gsoap_eml2_3::witsml21__MisalignmentMode misalignmentMode);
3198
3199 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModelDictionary* createToolErrorModelDictionary(
3200 const std::string & guid,
3201 const std::string & title);
3202
3203 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTerm* createErrorTerm(
3204 const std::string & guid,
3205 const std::string & title,
3206 gsoap_eml2_3::witsml21__ErrorPropagationMode propagationMode,
3207 WITSML2_1_NS::WeightingFunction* weightingFunction);
3208
3209 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTermDictionary* createErrorTermDictionary(
3210 const std::string & guid,
3211 const std::string & title);
3212
3213 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunction* createWeightingFunction(
3214 const std::string & guid,
3215 const std::string & title,
3216 const std::string & depthFormula,
3217 const std::string & inclinationFormula,
3218 const std::string & azimuthFormula);
3219
3220 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunctionDictionary* createWeightingFunctionDictionary(
3221 const std::string & guid,
3222 const std::string & title);
3223*/
3233 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3234 const std::string & title, bool isActive);
3235
3250 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3251 const std::string & title,
3252 bool isActive,
3253 gsoap_eml2_3::eml23__WellStatus statusWell,
3254 gsoap_eml2_3::witsml21__WellDirection directionWell
3255 );
3256
3271 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3272 const std::string & guid,
3273 const std::string & title,
3274 bool isActive);
3275
3293 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3294 const std::string & guid,
3295 const std::string & title,
3296 gsoap_eml2_3::eml23__WellStatus statusWellbore,
3297 bool isActive,
3298 bool achievedTD
3299 );
3300
3314 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellCompletion* createWellCompletion(WITSML2_NS::Well* witsmlWell,
3315 const std::string & guid,
3316 const std::string & title);
3317
3330 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreCompletion* createWellboreCompletion(WITSML2_NS::Wellbore* witsmlWellbore,
3331 const std::string & guid,
3332 const std::string & title);
3333
3350 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreGeometry* createWellboreGeometry(WITSML2_NS::Wellbore* witsmlWellbore,
3351 const std::string & guid,
3352 const std::string & title,
3353 bool isActive);
3354
3370 DLL_IMPORT_OR_EXPORT WITSML2_NS::Trajectory* createTrajectory(WITSML2_NS::Wellbore* witsmlWellbore,
3371 const std::string & guid,
3372 const std::string & title,
3373 bool isActive);
3374
3389 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Log* createLog(WITSML2_NS::Wellbore* witsmlWellbore,
3390 const std::string & guid,
3391 const std::string & title,
3392 bool isActive);
3393
3403 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ChannelSet* createChannelSet(
3404 const std::string & guid,
3405 const std::string & title,
3406 bool isActive);
3407
3426 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Channel* createChannel(EML2_NS::PropertyKind * propertyKind,
3427 const std::string & guid, const std::string & title,
3428 const std::string & mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind,
3429 bool isActive);
3430
3443 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(
3444 const std::string & guid, const std::string & title,
3445 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3446
3462 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(WITSML2_NS::Wellbore* witsmlWellbore,
3463 const std::string & guid, const std::string & title,
3464 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3465
3466 //*************** PRODML *************
3467
3485 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3486 const std::string & title,
3487 double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom,
3488 double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom,
3489 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3490 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3491
3506 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3507 const std::string & title,
3508 gsoap_eml2_3::eml23__ReferenceCondition referenceCondition,
3509 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3510 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3511
3522 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidCharacterization* createFluidCharacterization(const std::string & guid, const std::string & title);
3523
3534 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::TimeSeriesData* createTimeSeriesData(const std::string & guid, const std::string & title);
3535
3536 //************** EML2.3 ****************
3537
3548 DLL_IMPORT_OR_EXPORT EML2_NS::GraphicalInformationSet* createGraphicalInformationSet(const std::string & guid, const std::string & title);
3549
3560 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap* createDiscreteColorMap(const std::string& guid, const std::string& title);
3561
3574 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousColorMap* createContinuousColorMap(const std::string& guid, const std::string& title,
3575 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3576
3577 //***** STANDARD PROP KIND ***********
3578
3585 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper* getPropertyKindMapper() const { return propertyKindMapper.get(); }
3586
3587 //*************** WARNINGS *************
3588
3590 DLL_IMPORT_OR_EXPORT void clearWarnings() { warnings.clear(); }
3591
3597 DLL_IMPORT_OR_EXPORT void addWarning(const std::string & warning);
3598
3604 DLL_IMPORT_OR_EXPORT const std::vector<std::string> & getWarnings() const;
3605
3606 //*********** TRANSACTION ***********
3607
3613
3618
3619 gsoap_uom1_0::uom10__uomDictionary const* getUomDictionary() const { return uomDictionary; }
3620
3621 private:
3622
3627 std::unordered_map< std::string, std::vector< std::unique_ptr<COMMON_NS::AbstractObject> > > dataObjects;
3628
3629 // Forward relationships
3630 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3631
3632 // Backward relationships. It is redundant with forward relationships but it allows more performance.
3633 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3634
3635 soap* gsoapContext = soap_new2(SOAP_XML_STRICT | SOAP_C_UTFSTRING | SOAP_XML_IGNORENS, SOAP_XML_TREE | SOAP_XML_INDENT | SOAP_XML_CANONICAL | SOAP_C_UTFSTRING);
3636 gsoap_uom1_0::uom10__uomDictionary const* const uomDictionary;
3637
3638 std::vector<std::string> warnings;
3639
3640 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3641
3642 EML2_NS::AbstractHdfProxy* defaultHdfProxy = nullptr;
3643 EML2_NS::AbstractLocal3dCrs* defaultCrs = nullptr;
3644
3645 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3646
3647 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3648
3649 EnergisticsStandard defaultEmlVersion = EnergisticsStandard::EML2_0;
3650 EnergisticsStandard defaultProdmlVersion = EnergisticsStandard::PRODML2_2;
3651 EnergisticsStandard defaultResqmlVersion = EnergisticsStandard::RESQML2_0_1;
3652 EnergisticsStandard defaultWitsmlVersion = EnergisticsStandard::WITSML2_1;
3653
3654 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, DataObjectReference, CUD> > journal;
3655
3659 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3660
3666 std::unique_ptr< COMMON_NS::AbstractObject > getResqml2_0_1WrapperFromGsoapContext(const std::string & resqmlContentType);
3667
3668 std::unique_ptr< COMMON_NS::AbstractObject > getResqml2_2WrapperFromGsoapContext(const std::string& resqmlContentType);
3669 std::unique_ptr< COMMON_NS::AbstractObject > getEml2_3WrapperFromGsoapContext(const std::string & datatype);
3670
3671 std::unique_ptr< COMMON_NS::AbstractObject > getWitsml2_1WrapperFromGsoapContext(const std::string & datatype);
3672 std::unique_ptr< COMMON_NS::AbstractObject > getProdml2_2WrapperFromGsoapContext(const std::string & datatype);
3673
3677 int getGsoapErrorCode() const;
3678
3682 std::string getGsoapErrorMessage() const;
3683
3684 template <class valueType>
3685 std::vector<valueType*> getObjsFilteredOnDatatype(const std::vector< COMMON_NS::AbstractObject* >& objs) const
3686 {
3687 std::vector<valueType*> result;
3688 for (auto* obj : objs) {
3689 valueType* castedObj = dynamic_cast<valueType*>(obj);
3690 if (castedObj != nullptr) {
3691 result.push_back(castedObj);
3692 }
3693 }
3694 return result;
3695 }
3696
3697 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(const std::string & guid, const std::string & title, const std::string & version);
3698
3699 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
3700
3701 gsoap_uom1_0::uom10__uomDictionary* initUomDictionary(const std::string& resourceDirectory);
3702 };
3703}
An abstract data object is the super class of all FESAPI dataobjects which are contained in a DataObj...
Definition AbstractObject.h:35
This class wraps an Energistics Data Object Reference whatever its version is.
Definition DataObjectReference.h:50
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.
witsml2_1::Channel * createChannel(eml2::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind, bool isActive)
Creates a channel into this repository.
common::AbstractObject * getDataObjectByUuid(const std::string &uuid) const
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2::PropertyKind *localPropType)
resqml2::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::AbstractLocal3dCrs *localCrs, eml2::PropertyKind *localPropType)
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:355
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition DataObjectRepository.h:540
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2_0_1::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2_0_1::DeviationSurveyRepresentation *deviationSurvey)
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive)
const std::vector< common::AbstractObject * > & getSourceObjects(common::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:369
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common::DataObjectReference, CUD > > & getJournal() const
Definition DataObjectRepository.h:311
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
resqml2::Model * createModel(const std::string &guid, const std::string &title)
prodml2_2::FluidCharacterization * createFluidCharacterization(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)
bool addDataObject(std::unique_ptr< common::AbstractObject > proxy)
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::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.
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore trajectory into this repository.
resqml2::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.
witsml2_1::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore log into this repository.
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void setHdfProxyFactory(common::HdfProxyFactory *factory)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, bool isAbstract, eml2::PropertyKind *parentPropType)
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)
void addWarning(const std::string &warning)
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_1::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::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)
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, eml2::PropertyKind *localPropType)
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::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
uint64_t cascadeDeleteDataObject(common::AbstractObject *proxy)
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:332
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
witsml2_1::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2::PropertyKind *localPropType)
resqml2::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:503
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:216
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:321
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition DataObjectRepository.h:3585
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:713
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__ReferenceCondition referenceCondition, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
void deleteRelationship(common::AbstractObject *source, common::AbstractObject *target)
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:316
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
witsml2_1::WellboreGeometry * createWellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
resqml2::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
eml2::AbstractLocal3dCrs * 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 &projectedDefinition, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalDefinition, bool isUpOriented)
Creates a local time 3d CRS which is fully defined by a string representation. Resulting local time 3...
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
EnergisticsStandard getDefaultResqmlVersion() const
Definition DataObjectRepository.h:257
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, eml2::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
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:221
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.
void setUriSource(const std::string &uriSource)
resqml2::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
resqml2::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
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.
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalDefinition, bool isUpOriented)
Creates a local time 3d CRS which is identified by an EPSG code for its projected part and which is d...
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:392
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::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, eml2::PropertyKind *localPropType)
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore 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_0_1::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind)
Creates a property set into this repository.
EnergisticsStandard
Definition DataObjectRepository.h:202
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive, gsoap_eml2_3::eml23__WellStatus statusWell, gsoap_eml2_3::witsml21__WellDirection directionWell)
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2_0_1::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length)
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
witsml2_1::ChannelSet * createChannelSet(const std::string &guid, const std::string &title, bool isActive)
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentOrDataType, const std::string &uriSource)
const std::unordered_map< std::string, std::vector< std::unique_ptr< common::AbstractObject > > > & getDataObjects() const
Definition DataObjectRepository.h:469
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.
eml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition DataObjectRepository.h:524
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
CUD
Definition DataObjectRepository.h:197
void setDefaultCrs(eml2::AbstractLocal3dCrs *crs)
Definition DataObjectRepository.h:532
resqml2::FaultInterpretation * createFaultInterpretation(resqml2::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
resqml2::SeismicWellboreFrameRepresentation * createSeismicWellboreFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj, double seismicReferenceDatum, double weatheringVelocity, eml2::AbstractLocal3dCrs *crs)
Creates a seismic wellbore frame 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::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
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)
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalDefinition, bool isUpOriented)
Creates a local depth 3d CRS which is identified by an EPSG code for its projected part and which is ...
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition DataObjectRepository.h:766
EnergisticsStandard getDefaultWitsmlVersion() const
Definition DataObjectRepository.h:264
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.
DataObjectRepository(const std::string &resourceDirectory)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
common::AbstractObject * addOrReplaceDataObject(std::unique_ptr< common::AbstractObject > proxy, bool replaceOnlyContent=false)
eml2::AbstractLocal3dCrs * 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 &projectedDefinition, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalDefinition, bool isUpOriented)
Creates a local depth 3d CRS which is fully defined by a string representation. Resulting local depth...
EnergisticsStandard getDefaultProdmlVersion() const
Definition DataObjectRepository.h:250
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.
witsml2_1::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
eml2::AbstractLocal3dCrs * 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 &projectedDefinition, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is defined by a string representation for its projected part and w...
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, eml2::PropertyKind *parentPropType)
Creates a property kind into this repository.
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-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::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.
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which is fully identified by means of EPSG code. Resulting local time 3d ...
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:243
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::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.
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.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series into this repository.
resqml2::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
witsml2_1::WellboreMarker * createWellboreMarker(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::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_0_1::DeviationSurveyRepresentation * createDeviationSurveyRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, bool isFinal, resqml2::MdDatum *mdInfo)
Creates a deviation survey representation into this repository.
void setDefaultHdfProxy(eml2::AbstractHdfProxy *hdfProxy)
Definition DataObjectRepository.h:548
eml2::AbstractLocal3dCrs * 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 &projectedDefinition, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which is defined by a string representation for its projected part and wh...
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
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)
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:190
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_0_1::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column into this repository.
prodml2_2::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
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::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
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)
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::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
void clearWarnings()
Definition DataObjectRepository.h:3590
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, uint64_t verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is fully identified by means of an EPSG code. Resulting local dept...
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition AbstractHdfProxy.h:37
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition AbstractLocal3dCrs.h:27
Instance of a given activity.
Definition Activity.h:29
Description of one type of activity.
Definition ActivityTemplate.h:29
Proxy class for handling the graphical information of data objects.
Definition GraphicalInformationSet.h:27
Property kinds carry the semantics of property values. They are used to identify if the values are,...
Definition PropertyKind.h:32
Proxy class for time series. Stores an ordered list of times, for example, for time- dependent proper...
Definition TimeSeries.h:36
Proxy class for an abstract feature.
Definition AbstractFeature.h:31
Proxy class for an abstract feature interpretation.
Definition AbstractFeatureInterpretation.h:29
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition AbstractIjkGridRepresentation.h:34
This class defines the behaviour of all RESQML2 organizations.
Definition AbstractOrganizationInterpretation.h:29
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:38
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
Proxy class for a comment property. It is used to capture comments or annotations associated with a g...
Definition CommentProperty.h:33
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
Map of discrete colors. This class cannot be inherited.
Definition DiscreteColorMap.h:27
Proxy class for a discrete property. Such property contains discrete integer values; typically used t...
Definition DiscreteProperty.h:34
Defines a function for table lookups. For example, used for linear interpolation, such as PVT.
Definition DoubleTableLookup.h:33
This class is a container for stratigraphic, structural and rock fluid organization interpretations t...
Definition EarthModelInterpretation.h:37
A fault interpretation. This type of boundary feature contains the data describing an opinion about t...
Definition FaultInterpretation.h:30
Definition FluidBoundaryInterpretation.h:26
An interpretation of a feature that is not specialized. For example, use it when the specialized type...
Definition GenericFeatureInterpretation.h:30
A type of boundary feature, this class identifies if the boundary is a geobody and the type of the bo...
Definition GeobodyBoundaryInterpretation.h:30
A type of rock feature, this class identifies if a rock feature is a geobody with any qualifications ...
Definition GeobodyInterpretation.h:32
A 2d grid representation.
Definition Grid2dRepresentation.h:27
Proxy class for a grid connection set representation. This representation consists of a list of conne...
Definition GridConnectionSetRepresentation.h:51
An interpretation of a horizon, which optionally provides stratigraphic information.
Definition HorizonInterpretation.h:27
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates....
Definition IjkGridExplicitRepresentation.h:31
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and ...
Definition IjkGridLatticeRepresentation.h:32
This class is dedicated to IJK grids with undefined IjkGridGeometry. There are two main use cases....
Definition IjkGridNoGeometryRepresentation.h:33
An IJK Grid parametric representation define the cell corner positions by means of parameters along t...
Definition IjkGridParametricRepresentation.h:32
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition MdDatum.h:37
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 representation set representation. This is the parent class of the framework repres...
Definition RepresentationSetRepresentation.h:39
This class describes the organization of geological reservoir, i.e., of an interconnected network of ...
Definition RockFluidOrganizationInterpretation.h:34
A type of rock fluid feature-interpretation , this class identifies a rock fluid feature by its phase...
Definition RockFluidUnitInterpretation.h:30
A continuous portion of rock material bounded by definite rock boundaries. It is a volume object.
Definition RockVolumeFeature.h:38
A collection of contact, which are a list of contact patches and their identities....
Definition SealedSurfaceFrameworkRepresentation.h:31
A strict boundary representation (BREP), which represents the volume region by assembling together sh...
Definition SealedVolumeFrameworkRepresentation.h:37
Defined by two lateral ordered dimensions: inline (lateral), crossline (lateral and orthogonal to the...
Definition SeismicLatticeFeature.h:33
Frox class for a seismic line set feature. It is an unordered set of several seismic lines....
Definition SeismicLineSetFeature.h:30
A seismic wellbore frame representation. This class cannot be inherited.
Definition SeismicWellboreFrameRepresentation.h:27
Definition ShotPointLineFeature.h:27
A global interpretation of the stratigraphy, which can be made up of several ranks of stratigraphic u...
Definition StratigraphicColumn.h:35
A stratigraphic column rank interpretation is a global hierarchy containing an ordered list of strati...
Definition StratigraphicColumnRankInterpretation.h:39
This class is a container for stratigraphic organizations described along a wellbore.
Definition StratigraphicOccurrenceInterpretation.h:30
The interpretation of a stratigraphic unit.
Definition StratigraphicUnitInterpretation.h:27
Specification of the vector field upon which the streamlines are based.
Definition StreamlinesFeature.h:38
Representation of streamlines associated with a streamline feature and interpretation....
Definition StreamlinesRepresentation.h:33
Defines an integer (key) to string (value) lookup table, for example, stores facies properties,...
Definition StringTableLookup.h:32
One of the main types of RESQML organizations, this class gathers boundary interpretations (e....
Definition StructuralOrganizationInterpretation.h:35
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
A triangulated representation is a representation (most of time a surface) which is constituted by tr...
Definition TriangulatedSetRepresentation.h:31
Unstructured grid representation characterized by a cell count, and potentially nothing else....
Definition UnstructuredGridRepresentation.h:30
May refer to one of these: wellbore, borehole or sidetrack.
Definition WellboreFeature.h:46
Proxy class for a wellbore frame representation. A wellbore frame representation is a representation ...
Definition WellboreFrameRepresentation.h:35
Contains the data describing an opinion of a borehole.This interpretation is relative to one particul...
Definition WellboreInterpretation.h:34
A well log frame where each entry represents a well marker.
Definition WellboreMarkerFrameRepresentation.h:30
Representation of a wellbore marker that is located along a wellbore trajectory, one for each MD valu...
Definition WellboreMarker.h:41
Representation of a wellbore trajectory.
Definition WellboreTrajectoryRepresentation.h:29
Definition CategoricalProperty.h:31
Definition CommentProperty.h:29
Definition ContinuousProperty.h:37
A deviation survey representation. It Specifies the station data from a deviation survey.
Definition DeviationSurveyRepresentation.h:41
Definition DiscreteProperty.h:31
Definition FluidBoundaryFeature.h:27
Definition GeneticBoundaryFeature.h:27
Definition GeobodyFeature.h:27
Definition Horizon.h:27
Proxy class for an points property.
Definition PointsProperty.h:27
Definition PropertyKind.h:28
Definition PropertyKindMapper.h:29
Proxy class for a property set. A property set is a set of properties collected together for a specif...
Definition PropertySet.h:39
Definition RockFluidUnitFeature.h:32
Definition SeismicLineFeature.h:27
Definition TectonicBoundaryFeature.h:27
Definition WellboreTrajectoryRepresentation.h:27
Definition Channel.h:29
Definition ChannelSet.h:30
Definition Log.h:27
Definition WellCompletion.h:31
Definition WellboreCompletion.h:27
Definition WellboreGeometry.h:33
Definition WellboreMarker.h:29