Fesapi 2.7.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
28namespace EML2_NS
29{
30 class AbstractHdfProxy;
31 class Activity;
32 class ActivityTemplate;
34 class PropertyKind;
35 class TimeSeries;
36}
37
38namespace RESQML2_NS
39{
40 class AbstractFeature;
48 class BoundaryFeature;
51 class CmpLineFeature;
52 class CommentProperty;
55 class CulturalFeature;
56 class DiscreteColorMap;
57 class DiscreteProperty;
73 class LocalDepth3dCrs;
74 class LocalTime3dCrs;
75 class MdDatum;
76 class Model;
80 class PointsProperty;
83 class PropertySet;
100 class StringTableLookup;
102 class SubRepresentation;
105 class WellboreFeature;
108 class WellboreMarker;
111}
112
113namespace RESQML2_0_1_NS
114{
115 class PropertyKindMapper;
117 class CommentProperty;
118 class ContinuousProperty;
119 class DiscreteProperty;
122 class GeobodyFeature;
123 class Horizon;
124 class PointsProperty;
125 class PropertyKind;
127 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
167 {
168 public:
169
171 DLL_IMPORT_OR_EXPORT DataObjectRepository();
172
179 DLL_IMPORT_OR_EXPORT explicit DataObjectRepository(const std::string & propertyKindMappingFilesDirectory);
180
182 DLL_IMPORT_OR_EXPORT virtual ~DataObjectRepository();
183
185 enum class openingMode : std::int8_t {
186 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.
187 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.
188 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.
189 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.
190 };
191 enum CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
192
196 enum class EnergisticsStandard : std::int8_t {
197 RESQML2_0_1 = 0,
198 EML2_0 = 1,
199 EML2_3 = 2,
200 PRODML2_2 = 3,
201 RESQML2_2 = 4,
202 WITSML2_1 = 5
203 };
204
210 soap* getGsoapContext() const { return gsoapContext; }
211
215 DLL_IMPORT_OR_EXPORT void setDefaultStandard(EnergisticsStandard version) {
216 switch (version) {
217 case EnergisticsStandard::PRODML2_2:
218 defaultProdmlVersion = version; break;
219 case EnergisticsStandard::RESQML2_0_1:
220 case EnergisticsStandard::RESQML2_2:
221 defaultResqmlVersion = version; break;
222 case EnergisticsStandard::WITSML2_1:
223 defaultWitsmlVersion = version; break;
224 case EnergisticsStandard::EML2_0:
225 case EnergisticsStandard::EML2_3:
226 defaultEmlVersion = version; break;
227 default :
228 throw std::invalid_argument("Unrecognized Energistics standard.");
229 }
230 }
231
237 EnergisticsStandard getDefaultEmlVersion() const { return defaultEmlVersion; }
238
244 EnergisticsStandard getDefaultProdmlVersion() const { return defaultProdmlVersion; }
245
251 EnergisticsStandard getDefaultResqmlVersion() const { return defaultResqmlVersion; }
252
258 EnergisticsStandard getDefaultWitsmlVersion() const { return defaultWitsmlVersion; }
259
261 DLL_IMPORT_OR_EXPORT void clear();
262
274 DLL_IMPORT_OR_EXPORT void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
275
280 DLL_IMPORT_OR_EXPORT void registerDataFeeder(COMMON_NS::DataFeeder * dataFeeder);
281
282 /*
283 * Delete a relationship between two objects. Source and target of the relationship are defined
284 * by Energistics data model. Usually, the simplest is to look at Energistics UML diagrams.
285 * Another way is to rely on XSD/XML: explicit relationships are contained by the source objects
286 * and point to target objects.
287 *
288 * @exception std::invalid_argument if the source or target object is null.
289 *
290 * @param [in] source The source object of the relationship.
291 * @param [in] target The target object of the relationship.
292 */
293 DLL_IMPORT_OR_EXPORT void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
294
300 DLL_IMPORT_OR_EXPORT void setHdfProxyFactory(COMMON_NS::HdfProxyFactory * factory);
301
305 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >& getJournal() const { return journal; }
306
310 DLL_IMPORT_OR_EXPORT virtual void on_CreateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
311
315 DLL_IMPORT_OR_EXPORT virtual void on_UpdateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
316
321 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* resolvePartial(COMMON_NS::AbstractObject * partialObj);
322
326 DLL_IMPORT_OR_EXPORT const std::vector<COMMON_NS::AbstractObject*>& getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const { return forwardRels.at(dataObj); }
327
335 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getTargetObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
336 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
337
348 template <class valueType>
349 std::vector<valueType *> getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const
350 {
351 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
352 }
353
363 DLL_IMPORT_OR_EXPORT const std::vector< COMMON_NS::AbstractObject*>& getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const { return backwardRels.at(dataObj); }
364
372 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getSourceObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
373 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
374
385 template <class valueType>
386 std::vector<valueType *> getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const
387 {
388 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
389
390 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
391 }
392
394 DLL_IMPORT_OR_EXPORT void updateAllRelationships();
395
406 bool addDataObject(COMMON_NS::AbstractObject* proxy);
407
418 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy, bool replaceOnlyContent = false);
419
435 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceGsoapProxy(const std::string & xml, const std::string & contentType, const std::string& uriSource);
436
443 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > & getDataObjects() const { return dataObjects; }
444
451 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType() const;
452
458 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType(const std::string & filter) const;
459
467 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getDataObjectsByContentType(const std::string & contentType) const;
468
476 template <class valueType>
477 std::vector<valueType*> getDataObjects() const
478 {
479 std::vector<valueType*> result;
480
481 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
482 for (size_t i = 0; i < it->second.size(); ++i) {
483 if (dynamic_cast<valueType*>(it->second[i]) != nullptr) {
484 result.push_back(static_cast<valueType*>(it->second[i]));
485 }
486 }
487 }
488
489 return result;
490 }
491
498 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractLocal3dCrs* getDefaultCrs() const { return defaultCrs; }
499
506 DLL_IMPORT_OR_EXPORT void setDefaultCrs(RESQML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
507
514 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy* getDefaultHdfProxy() const { return defaultHdfProxy; }
515
522 DLL_IMPORT_OR_EXPORT void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
523
527#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
528 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
529 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
530 const size_t result = get##dataObjectName##Set().size();\
531 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
532 return static_cast<unsigned int>(result);\
533 }\
534 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
535 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
536 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
537 return all[index];\
538 }
539
540 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
541 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
542
543 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
544 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
545 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
546 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
547 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
548 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
549 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
550 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
551 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
552 GETTER_DATAOBJECTS(RESQML2_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
553 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
554 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
555 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
556 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
557 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
558 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
559 GETTER_DATAOBJECTS(RESQML2_NS::LocalDepth3dCrs, LocalDepth3dCrs)
560 GETTER_DATAOBJECTS(RESQML2_NS::LocalTime3dCrs, LocalTime3dCrs)
561 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
562 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
563 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
564 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
565 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
566 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
569 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
570 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
571 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
572 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
573 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
574 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
575 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
576 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
577 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
578 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
579 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
580 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
581 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
582 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
583 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
584 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
585 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
586 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
588 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
590
591 GETTER_DATAOBJECTS(WITSML2_NS::Well, WitsmlWell)
592 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, WitsmlWellbore)
593 GETTER_DATAOBJECTS(WITSML2_NS::Trajectory, WitsmlTrajectory)
594
595 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, WellCompletion)
596 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreCompletion, WellboreCompletion)
597 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreGeometry, WellboreGeometry)
598 GETTER_DATAOBJECTS(WITSML2_1_NS::Log, Log)
599 GETTER_DATAOBJECTS(WITSML2_1_NS::ChannelSet, ChannelSet)
600 GETTER_DATAOBJECTS(WITSML2_1_NS::Channel, Channel)
601
602 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidSystem, FluidSystem)
603 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidCharacterization, FluidCharacterization)
604
605
615 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuid(const std::string & uuid) const;
616
630 template <class valueType>
631 valueType* getDataObjectByUuid(const std::string & uuid) const
632 {
633 COMMON_NS::AbstractObject* const result = getDataObjectByUuid(uuid);
634
635 if (result == nullptr) {
636 return nullptr;
637 }
638
639 if (dynamic_cast<valueType*>(result) != nullptr) {
640 return static_cast<valueType*>(result);
641 }
642
643 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
644 }
645
655 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const;
656
663 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::array<uint8_t, 16> & uuid, const std::string & version) const;
664
679 template <class valueType>
680 valueType* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const
681 {
682 COMMON_NS::AbstractObject* const result = getDataObjectByUuidAndVersion(uuid, version);
683
684 if (result == nullptr) {
685 return nullptr;
686 }
687
688 if (dynamic_cast<valueType*>(result) != nullptr) {
689 return static_cast<valueType*>(result);
690 }
691
692 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
693 }
694
700 DLL_IMPORT_OR_EXPORT std::vector<std::string> getUuids() const;
701
705 COMMON_NS::AbstractObject* createPartial(const std::string & uuid, const std::string & title, const std::string & contentType, const std::string & version = "");
706
716 COMMON_NS::AbstractObject* createPartial(const DataObjectReference& dor);
717
732 template <class valueType>
733 valueType* createPartial(const std::string & guid, const std::string & title, const std::string & version = "")
734 {
735 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
736 valueType* result = new valueType(dor);
737 dor->ContentType = result->getContentType();
738 addOrReplaceDataObject(result);
739 return result;
740 }
741
742
743 //************************************
744 //***** DataObject creation **********
745 //************************************
746
758 template <class NumericalValueBase>
759 NumericalValueBase* createEpcExternalPartReference(const std::string & guid, const std::string & title)
760 {
761 NumericalValueBase* result = new NumericalValueBase(getGsoapContext(), guid);
762 addDataObject(result);
763 return result;
764 }
765
783 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);
784
785 //************ CRS *******************
786
813 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
814 double originOrdinal1, double originOrdinal2, double originOrdinal3,
815 double arealRotation,
816 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
817 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
818
845 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
846 double originOrdinal1, double originOrdinal2, double originOrdinal3,
847 double arealRotation,
848 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
849 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
850
878 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
879 double originOrdinal1, double originOrdinal2, double originOrdinal3,
880 double arealRotation,
881 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
882 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
883
911 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
912 double originOrdinal1, double originOrdinal2, double originOrdinal3,
913 double arealRotation,
914 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
915 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
916
944 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
945 double originOrdinal1, double originOrdinal2, double originOrdinal3,
946 double arealRotation,
947 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
948 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
949 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
950
978 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
979 double originOrdinal1, double originOrdinal2, double originOrdinal3,
980 double arealRotation,
981 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
982 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
983 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
984
1013 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
1014 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1015 double arealRotation,
1016 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode,
1017 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1018 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
1019
1048 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
1049 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1050 double arealRotation,
1051 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
1052 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1053 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
1054
1076 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum* createMdDatum(const std::string & guid, const std::string & title,
1077 RESQML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind,
1078 double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3);
1079
1080 //************ FEATURE ***************
1081
1094 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createBoundaryFeature(const std::string & guid, const std::string & title);
1095
1107 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createHorizon(const std::string & guid, const std::string & title);
1108
1122 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createGeobodyBoundaryFeature(const std::string & guid, const std::string & title);
1123
1136 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createGeobodyFeature(const std::string & guid, const std::string & title);
1137
1149 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFault(const std::string & guid, const std::string & title);
1150
1162 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFracture(const std::string & guid, const std::string & title);
1163
1176 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature* createWellboreFeature(const std::string & guid, const std::string & title);
1177
1198 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature* createSeismicLattice(const std::string & guid, const std::string & title,
1199 int inlineIncrement, int crosslineIncrement,
1200 unsigned int originInline, unsigned int originCrossline,
1201 unsigned int inlineCount, unsigned int crosslineCount);
1202
1216 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature* createSeismicLine(const std::string & guid, const std::string & title,
1217 int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount);
1218
1233 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature* createCmpLine(const std::string & guid, const std::string & title,
1234 int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount);
1235
1246 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature* createShotPointLine(const std::string & guid, const std::string & title);
1247
1259 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature* createSeismicLineSet(const std::string & guid, const std::string & title);
1260
1274 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature* createCultural(const std::string & guid, const std::string & title,
1275 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries);
1276
1290 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createStratigraphicUnitFeature(const std::string & guid, const std::string & title);
1291
1301 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createRockVolumeFeature(const std::string & guid, const std::string & title);
1302
1311 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createModel(const std::string & guid, const std::string & title);
1312
1326 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStructuralModel(const std::string & guid, const std::string & title);
1327
1341 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStratigraphicModel(const std::string & guid, const std::string & title);
1342
1356 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createRockFluidModel(const std::string & guid, const std::string & title);
1357
1371 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createEarthModel(const std::string & guid, const std::string & title);
1372
1384 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::FluidBoundaryFeature* createFluidBoundaryFeature(const std::string & guid, const std::string & title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact);
1385
1399 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::RockFluidUnitFeature* createRockFluidUnit(const std::string & guid, const std::string & title, gsoap_resqml2_0_1::resqml20__Phase phase, RESQML2_0_1_NS::FluidBoundaryFeature* fluidBoundaryTop, RESQML2_0_1_NS::FluidBoundaryFeature* fluidBoundaryBottom);
1400
1401 //************ INTERPRETATION ********
1402
1417 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation* createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature, const std::string & guid, const std::string & title);
1418
1433 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation* createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature, const std::string & guid, const std::string & title);
1434
1449 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation* createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon, const std::string & guid, const std::string & title);
1450
1465 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation* createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary, const std::string & guid, const std::string & title);
1466
1481 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation* createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault, const std::string & guid, const std::string & title);
1482
1498 DLL_IMPORT_OR_EXPORT RESQML2_NS::FluidBoundaryInterpretation* createFluidBoundaryInterpretation(RESQML2_NS::BoundaryFeature * boundary, const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__FluidContact fluidContact);
1499
1516 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation* createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore, const std::string & guid, const std::string & title, bool isDrilled);
1517
1532 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation* createEarthModelInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1533
1549 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1550
1567 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1568
1585 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInMeasuredDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1586
1602 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidOrganizationInterpretation* createRockFluidOrganizationInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1603
1618 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation* createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature, const std::string & guid, const std::string & title);
1619
1635 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation* createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody, const std::string & guid, const std::string & title);
1636
1651 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation* createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature, const std::string & guid, const std::string & title);
1652
1665 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumn* createStratigraphicColumn(const std::string & guid, const std::string & title);
1666
1684 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
1685
1703 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
1704
1720 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1721
1738 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1739
1740 //************ REPRESENTATION ********
1741
1754 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(const std::string & guid, const std::string & title);
1755
1772 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1773 const std::string & guid, const std::string & title);
1774
1787 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(const std::string & guid, const std::string & title);
1788
1805 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1806 const std::string & guid, const std::string & title);
1807
1827 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1828 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1829
1842 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(const std::string & guid, const std::string & title);
1843
1858 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1859 const std::string & guid, const std::string & title);
1860
1875 DLL_IMPORT_OR_EXPORT RESQML2_NS::PlaneSetRepresentation* createPlaneSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1876 const std::string & guid, const std::string & title);
1877
1891 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(const std::string & guid, const std::string & title, bool isClosed = false);
1892
1911 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1912 const std::string & guid, const std::string & title, bool isClosed = false);
1913
1933 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1934 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed = false);
1935
1950 DLL_IMPORT_OR_EXPORT RESQML2_NS::Grid2dRepresentation* createGrid2dRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1951 const std::string & guid, const std::string & title);
1952
1970 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1971
1989 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::DeviationSurveyRepresentation* deviationSurvey);
1990
2010 DLL_IMPORT_OR_EXPORT RESQML2_NS::DeviationSurveyRepresentation* createDeviationSurveyRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, const bool& isFinal, RESQML2_NS::MdDatum* mdInfo);
2011
2028 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation* createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2029
2053 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicWellboreFrameRepresentation* createSeismicWellboreFrameRepresentation(
2054 RESQML2_NS::WellboreInterpretation* interp,
2055 const std::string& guid, const std::string& title,
2056 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2057 double seismicReferenceDatum,
2058 double weatheringVelocity,
2059 RESQML2_NS::LocalTime3dCrs* crs);
2060
2077 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation* createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2078
2093 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker* createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame, const std::string& guid, const std::string& title);
2094
2110 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker* createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame, const std::string& guid, const std::string& title, gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind geologicBoundaryKind);
2111
2128 DLL_IMPORT_OR_EXPORT RESQML2_NS::BlockedWellboreRepresentation* createBlockedWellboreRepresentation(RESQML2_NS::WellboreInterpretation* interp,
2129 const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2130
2147 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2148 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2149 const std::string & guid,
2150 const std::string & title);
2151
2164 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2165 const std::string & guid,
2166 const std::string & title);
2167
2182 DLL_IMPORT_OR_EXPORT RESQML2_NS::NonSealedSurfaceFrameworkRepresentation* createNonSealedSurfaceFrameworkRepresentation(
2183 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2184 const std::string & guid,
2185 const std::string & title);
2186
2201 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedSurfaceFrameworkRepresentation* createSealedSurfaceFrameworkRepresentation(
2202 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2203 const std::string & guid,
2204 const std::string & title);
2205
2222 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedVolumeFrameworkRepresentation* createSealedVolumeFrameworkRepresentation(
2223 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2224 const std::string & guid,
2225 const std::string & title,
2226 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2227
2237 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialIjkGridRepresentation(const std::string& guid, const std::string& title);
2238
2247 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialTruncatedIjkGridRepresentation(const std::string& guid, const std::string& title);
2248
2270 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(const std::string& guid, const std::string& title,
2271 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2272
2296 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2297 const std::string& guid, const std::string& title,
2298 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2299
2321 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(const std::string& guid, const std::string& title,
2322 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2323
2347 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2348 const std::string& guid, const std::string& title,
2349 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2350
2366 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(const std::string& guid, const std::string& title,
2367 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2368
2386 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2387 const std::string& guid, const std::string& title,
2388 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2389
2411 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(
2412 const std::string& guid, const std::string& title,
2413 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2414
2438 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2439 const std::string& guid, const std::string& title,
2440 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2441
2455 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(const std::string& guid, const std::string& title,
2456 const uint64_t & cellCount);
2457
2472 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2473 const std::string& guid, const std::string& title, const uint64_t & cellCount);
2474
2487 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(
2488 const std::string & guid, const std::string & title);
2489
2506 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2507 const std::string & guid, const std::string & title);
2508
2521 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(const std::string & guid, const std::string & title);
2522
2539 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2540 const std::string & guid, const std::string & title);
2541
2556 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature* createStreamlinesFeature(const std::string & guid, const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2557
2572 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation* createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp, const std::string & guid, const std::string & title, uint64_t lineCount);
2573
2574 //************* PROPERTIES ***********
2575
2588 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries* createTimeSeries(const std::string & guid, const std::string & title);
2589
2602 DLL_IMPORT_OR_EXPORT RESQML2_NS::DoubleTableLookup* createDoubleTableLookup(const std::string & guid, const std::string & title);
2603
2616 DLL_IMPORT_OR_EXPORT RESQML2_NS::StringTableLookup* createStringTableLookup(const std::string & guid, const std::string & title);
2617
2636 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2637 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2638
2657 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2658 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * parentPropType);
2659
2677 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2678 const std::string & namingSystem, const std::string & nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2679
2695 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2696 const std::string & namingSystem, const std::string & nonStandardUom, EML2_NS::PropertyKind * parentPropType);
2697
2717 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2718 gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2719
2740 DLL_IMPORT_OR_EXPORT RESQML2_NS::PropertySet* createPropertySet(const std::string & guid, const std::string & title,
2741 bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind);
2742
2765 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2766 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2767
2789 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2790 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2791
2819 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2820 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2821
2848 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2849 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2850
2877 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2878 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2879
2905 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2906 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2907
2930 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2931 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2932
2954 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2955 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2956
2981 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2982 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
2983 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2984
3008 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3009 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3010 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3011
3035 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3036 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3037 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3038
3061 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3062 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3063 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3064
3087 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3088 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3089 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3090
3112 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3113 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3114 EML2_NS::PropertyKind * localPropType);
3115
3116 //************* ACTIVITIES ***********
3117
3130 DLL_IMPORT_OR_EXPORT EML2_NS::ActivityTemplate* createActivityTemplate(const std::string & guid, const std::string & title);
3131
3146 DLL_IMPORT_OR_EXPORT EML2_NS::Activity* createActivity(EML2_NS::ActivityTemplate* activityTemplate, const std::string & guid, const std::string & title);
3147
3148 //*************** WITSML *************
3149/*
3150 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModel* createToolErrorModel(
3151 const std::string & guid,
3152 const std::string & title,
3153 gsoap_eml2_3::witsml21__MisalignmentMode misalignmentMode);
3154
3155 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModelDictionary* createToolErrorModelDictionary(
3156 const std::string & guid,
3157 const std::string & title);
3158
3159 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTerm* createErrorTerm(
3160 const std::string & guid,
3161 const std::string & title,
3162 gsoap_eml2_3::witsml21__ErrorPropagationMode propagationMode,
3163 WITSML2_1_NS::WeightingFunction* weightingFunction);
3164
3165 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTermDictionary* createErrorTermDictionary(
3166 const std::string & guid,
3167 const std::string & title);
3168
3169 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunction* createWeightingFunction(
3170 const std::string & guid,
3171 const std::string & title,
3172 const std::string & depthFormula,
3173 const std::string & inclinationFormula,
3174 const std::string & azimuthFormula);
3175
3176 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunctionDictionary* createWeightingFunctionDictionary(
3177 const std::string & guid,
3178 const std::string & title);
3179*/
3189 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3190 const std::string & title, bool isActive);
3191
3206 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3207 const std::string & title,
3208 bool isActive,
3209 gsoap_eml2_3::eml23__WellStatus statusWell,
3210 gsoap_eml2_3::witsml21__WellDirection directionWell
3211 );
3212
3227 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3228 const std::string & guid,
3229 const std::string & title,
3230 bool isActive);
3231
3249 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3250 const std::string & guid,
3251 const std::string & title,
3252 gsoap_eml2_3::eml23__WellStatus statusWellbore,
3253 bool isActive,
3254 bool achievedTD
3255 );
3256
3270 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellCompletion* createWellCompletion(WITSML2_NS::Well* witsmlWell,
3271 const std::string & guid,
3272 const std::string & title);
3273
3286 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreCompletion* createWellboreCompletion(WITSML2_NS::Wellbore* witsmlWellbore,
3287 const std::string & guid,
3288 const std::string & title);
3289
3306 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreGeometry* createWellboreGeometry(WITSML2_NS::Wellbore* witsmlWellbore,
3307 const std::string & guid,
3308 const std::string & title,
3309 bool isActive);
3310
3326 DLL_IMPORT_OR_EXPORT WITSML2_NS::Trajectory* createTrajectory(WITSML2_NS::Wellbore* witsmlWellbore,
3327 const std::string & guid,
3328 const std::string & title,
3329 bool isActive);
3330
3345 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Log* createLog(WITSML2_NS::Wellbore* witsmlWellbore,
3346 const std::string & guid,
3347 const std::string & title,
3348 bool isActive);
3349
3359 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ChannelSet* createChannelSet(
3360 const std::string & guid,
3361 const std::string & title,
3362 bool isActive);
3363
3382 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Channel* createChannel(EML2_NS::PropertyKind * propertyKind,
3383 const std::string & guid, const std::string & title,
3384 const std::string & mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind,
3385 bool isActive);
3386
3399 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(
3400 const std::string & guid, const std::string & title,
3401 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3402
3418 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(WITSML2_NS::Wellbore* witsmlWellbore,
3419 const std::string & guid, const std::string & title,
3420 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3421
3422 //*************** PRODML *************
3423
3441 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3442 const std::string & title,
3443 double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom,
3444 double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom,
3445 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3446 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3447
3462 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3463 const std::string & title,
3464 gsoap_eml2_3::eml23__ReferenceCondition referenceCondition,
3465 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3466 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3467
3478 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidCharacterization* createFluidCharacterization(const std::string & guid, const std::string & title);
3479
3490 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::TimeSeriesData* createTimeSeriesData(const std::string & guid, const std::string & title);
3491
3492 //************** EML2.3 ****************
3493
3504 DLL_IMPORT_OR_EXPORT EML2_NS::GraphicalInformationSet* createGraphicalInformationSet(const std::string & guid, const std::string & title);
3505
3516 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap* createDiscreteColorMap(const std::string& guid, const std::string& title);
3517
3530 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousColorMap* createContinuousColorMap(const std::string& guid, const std::string& title,
3531 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3532
3533 //***** STANDARD PROP KIND ***********
3534
3541 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper* getPropertyKindMapper() const { return propertyKindMapper.get(); }
3542
3543 //*************** WARNINGS *************
3544
3546 DLL_IMPORT_OR_EXPORT void clearWarnings() { warnings.clear(); }
3547
3553 DLL_IMPORT_OR_EXPORT void addWarning(const std::string & warning);
3554
3560 DLL_IMPORT_OR_EXPORT const std::vector<std::string> & getWarnings() const;
3561
3562 //*********** TRANSACTION ***********
3563
3569
3574
3575 private:
3576
3581 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3582
3583 // Forward relationships
3584 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3585
3586 // Backward relationships. It is redundant with forward relationships but it allows more performance.
3587 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3588
3589 soap* gsoapContext;
3590
3591 std::vector<std::string> warnings;
3592
3593 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3594
3595 EML2_NS::AbstractHdfProxy* defaultHdfProxy;
3596 RESQML2_NS::AbstractLocal3dCrs* defaultCrs;
3597
3598 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3599
3600 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3601
3602 EnergisticsStandard defaultEmlVersion;
3603 EnergisticsStandard defaultProdmlVersion;
3604 EnergisticsStandard defaultResqmlVersion;
3605 EnergisticsStandard defaultWitsmlVersion;
3606
3607 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, DataObjectReference, CUD> > journal;
3608
3612 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3613
3619 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(const std::string & resqmlContentType);
3620
3621 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(const std::string& resqmlContentType);
3622 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(const std::string & datatype);
3623
3624 COMMON_NS::AbstractObject* getWitsml2_1WrapperFromGsoapContext(const std::string & datatype);
3625 COMMON_NS::AbstractObject* getProdml2_2WrapperFromGsoapContext(const std::string & datatype);
3626
3630 int getGsoapErrorCode() const;
3631
3635 std::string getGsoapErrorMessage() const;
3636
3637 template <class valueType>
3638 std::vector<valueType *> getObjsFilteredOnDatatype(const std::vector< COMMON_NS::AbstractObject * >& objs) const
3639 {
3640 std::vector<valueType *> result;
3641 for (size_t i = 0; i < objs.size(); ++i) {
3642 valueType * castedObj = dynamic_cast<valueType *>(objs[i]);
3643 if (castedObj != nullptr) {
3644 result.push_back(castedObj);
3645 }
3646 }
3647 return result;
3648 }
3649
3650 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(const std::string & guid, const std::string & title, const std::string & version);
3651
3652 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
3653 };
3654}
Definition DataFeeder.h:29
It contains many trajectory stations to capture the information about individual survey points.
Definition Trajectory.h:31
Contains all information that is the same for all wellbores (sidetracks).
Definition Well.h:43
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46
An abstract data object.
Definition AbstractObject.h:32
This class wraps an Energistics Data Object Reference whatever its version is.
Definition DataObjectReference.h:50
This abstract class acts as a buffer between the RESQML (business) classes and the persisted data.
Definition DataObjectRepository.h:167
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
virtual void on_CreateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common ::AbstractObject * > > &)
Definition DataObjectRepository.h:310
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition DataObjectRepository.h:514
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract=false, eml2 ::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
void setHdfProxyFactory(common ::HdfProxyFactory *factory)
DataObjectRepository(const std::string &propertyKindMappingFilesDirectory)
resqml2::DeviationSurveyRepresentation * createDeviationSurveyRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, const bool &isFinal, resqml2 ::MdDatum *mdInfo)
Creates a deviation survey representation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is fully identified by means of an EPSG code. Resulting local dept...
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive)
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which unknown for its projected part and which is identified by an EPSG c...
std::vector< common ::AbstractObject * > getTargetObjects(common ::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
resqml2::Model * createModel(const std::string &guid, const std::string &title)
prodml2_2::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
std::unordered_map< std::string, std::vector< common ::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is fully unknown. Resulting local depth 3d CRS is stored into this...
resqml2::StratigraphicUnitInterpretation * createStratigraphicUnitInterpretation(resqml2 ::RockVolumeFeature *stratiUnitFeature, const std::string &guid, const std::string &title)
Creates a stratigraphic unit interpretation into this repository.
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore trajectory into this repository.
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2 ::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::StringTableLookup *strLookup, eml2 ::PropertyKind *localPropType)
witsml2_1::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore log into this repository.
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void setDefaultCrs(resqml2 ::AbstractLocal3dCrs *crs)
Definition DataObjectRepository.h:506
void addWarning(const std::string &warning)
resqml2::FaultInterpretation * createFaultInterpretation(resqml2 ::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is unknown for its projected part and which is identified by an EP...
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2 ::PropertyKind *parentPropType)
Creates a property kind into this repository.
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
NumericalValueBase * createEpcExternalPartReference(const std::string &guid, const std::string &title)
Definition DataObjectRepository.h:759
witsml2_1::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2_0_1::RockFluidUnitFeature * createRockFluidUnit(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__Phase phase, resqml2_0_1 ::FluidBoundaryFeature *fluidBoundaryTop, resqml2_0_1 ::FluidBoundaryFeature *fluidBoundaryBottom)
resqml2_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
resqml2_0_1::PointsProperty * createPointsProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length)
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by apparent depth into this repository.
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
resqml2::BlockedWellboreRepresentation * createBlockedWellboreRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
Creates a blocked wellbore representation into this repository.
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
void registerDataFeeder(common ::DataFeeder *dataFeeder)
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType, const std::string &uriSource)
resqml2::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind)
Creates a property set into this repository.
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
witsml2_1::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
resqml2::StreamlinesRepresentation * createStreamlinesRepresentation(resqml2 ::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates a streamlines representation into this repository.
const std::vector< common ::AbstractObject * > & getTargetObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:326
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::RockFluidUnitInterpretation * createRockFluidUnitInterpretation(resqml2 ::RockVolumeFeature *rockFluidUnitFeature, const std::string &guid, const std::string &title)
Creates a rock fluid unit interpretation into this repository.
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
DataObjectRepository * newTransactionRepo()
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2 ::TimeSeries *timeSeries)
Creates a streamlines feature into this repository.
std::vector< valueType * > getDataObjects() const
Definition DataObjectRepository.h:477
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::DeviationSurveyRepresentation *deviationSurvey)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::SealedVolumeFrameworkRepresentation * createSealedVolumeFrameworkRepresentation(resqml2 ::StratigraphicColumnRankInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::SealedSurfaceFrameworkRepresentation *ssf)
Creates a sealed volume framework representation into this repository.
soap * getGsoapContext() const
Definition DataObjectRepository.h:210
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2 ::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
resqml2::ContinuousColorMap * createContinuousColorMap(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod)
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition DataObjectRepository.h:3541
common::AbstractObject * resolvePartial(common ::AbstractObject *partialObj)
valueType * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
Definition DataObjectRepository.h:680
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__ReferenceCondition referenceCondition, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
eml2::GraphicalInformationSet * createGraphicalInformationSet(const std::string &guid, const std::string &title)
std::unordered_map< std::string, std::vector< common ::AbstractObject * > > getDataObjectsGroupedByDataType() const
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
witsml2_1::WellboreGeometry * createWellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
resqml2::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2 ::PropertyKind *localPropType)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
EnergisticsStandard getDefaultResqmlVersion() const
Definition DataObjectRepository.h:251
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::MdDatum *mdInfo)
Creates a wellbore trajectory representation into this repository.
resqml2::WellboreFrameRepresentation * createWellboreFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
Creates a wellbore frame representation into this repository.
resqml2::PointsProperty * createPointsProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::AbstractLocal3dCrs *localCrs, eml2 ::PropertyKind *localPropType)
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2::EarthModelInterpretation * createEarthModelInterpretation(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates an earth model interpretation into this repository.
resqml2::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2 ::BoundaryFeature *feature, const std::string &guid, const std::string &title)
void setDefaultStandard(EnergisticsStandard version)
Definition DataObjectRepository.h:215
const std::unordered_map< std::string, std::vector< common ::AbstractObject * > > & getDataObjects() const
Definition DataObjectRepository.h:443
resqml2::Model * createStructuralModel(const std::string &guid, const std::string &title)
resqml2::PointSetRepresentation * createPointSetRepresentation(const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::SeismicWellboreFrameRepresentation * createSeismicWellboreFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj, double seismicReferenceDatum, double weatheringVelocity, resqml2 ::LocalTime3dCrs *crs)
Creates a seismic wellbore frame representation into this repository.
std::vector< valueType * > getTargetObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:349
resqml2::SubRepresentation * createSubRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
resqml2::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2 ::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::HorizonInterpretation * createHorizonInterpretation(resqml2 ::BoundaryFeature *horizon, const std::string &guid, const std::string &title)
Creates a horizon interpretation into this repository.
resqml2::GeobodyInterpretation * createGeobodyInterpretation(resqml2 ::RockVolumeFeature *geobody, const std::string &guid, const std::string &title)
Creates a geobody interpretation into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by age into this repository.
common::AbstractObject * createPartial(const DataObjectReference &dor)
resqml2::SeismicLatticeFeature * createSeismicLattice(const std::string &guid, const std::string &title, int inlineIncrement, int crosslineIncrement, unsigned int originInline, unsigned int originCrossline, unsigned int inlineCount, unsigned int crosslineCount)
Creates a seismic lattice into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
void setDefaultHdfProxy(eml2 ::AbstractHdfProxy *hdfProxy)
Definition DataObjectRepository.h:522
virtual void on_UpdateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common ::AbstractObject * > > &)
Definition DataObjectRepository.h:315
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is fully unknown. Resulting local time 3d CRS is stored into this r...
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore into this repository.
EnergisticsStandard
Definition DataObjectRepository.h:196
witsml2_1::Channel * createChannel(eml2 ::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind, bool isActive)
Creates a channel into this repository.
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive, gsoap_eml2_3::eml23__WellStatus statusWell, gsoap_eml2_3::witsml21__WellDirection directionWell)
bool addDataObject(common ::AbstractObject *proxy)
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common ::DataObjectReference, CUD > > & getJournal() const
Definition DataObjectRepository.h:305
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
const std::vector< common ::AbstractObject * > & getSourceObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:363
witsml2_1::ChannelSet * createChannelSet(const std::string &guid, const std::string &title, bool isActive)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, eml2 ::PropertyKind *parentPropType)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInApparentDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by apparent depth into this repository.
resqml2::CulturalFeature * createCultural(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__CulturalFeatureKind kind=gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries)
Creates a cultural into this repository.
resqml2::ShotPointLineFeature * createShotPointLine(const std::string &guid, const std::string &title)
resqml2::Model * createRockFluidModel(const std::string &guid, const std::string &title)
resqml2::CategoricalProperty * createCategoricalProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2 ::DoubleTableLookup *dblLookup, eml2 ::PropertyKind *localPropType)
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2 ::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
resqml2::Grid2dRepresentation * createGrid2dRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
std::vector< common ::AbstractObject * > getSourceObjects(common ::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition DataObjectRepository.h:733
EnergisticsStandard getDefaultWitsmlVersion() const
Definition DataObjectRepository.h:258
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::Activity * createActivity(eml2 ::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition DataObjectRepository.h:498
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
EnergisticsStandard getDefaultProdmlVersion() const
Definition DataObjectRepository.h:244
resqml2::CmpLineFeature * createCmpLine(const std::string &guid, const std::string &title, int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount)
Creates a CMP line into this repository.
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::RockVolumeFeature * createRockVolumeFeature(const std::string &guid, const std::string &title)
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::SeismicLineSetFeature * createSeismicLineSet(const std::string &guid, const std::string &title)
Creates a seismic line set into this repository.
witsml2_1::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::PlaneSetRepresentation * createPlaneSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a plane set representation into this repository.
std::vector< valueType * > getSourceObjects(common ::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:386
resqml2::RockVolumeFeature * createGeobodyFeature(const std::string &guid, const std::string &title)
Creates a geobody feature into this repository.
resqml2::DoubleTableLookup * createDoubleTableLookup(const std::string &guid, const std::string &title)
Creates a double table lookup into this repository.
std::vector< common ::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInMeasuredDepth(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by measured depth into this repository.
EnergisticsStandard getDefaultEmlVersion() const
Definition DataObjectRepository.h:237
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind)
Creates a polyline set representation into this repository.
resqml2_0_1::CommentProperty * createCommentProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInAge(resqml2 ::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by age into this repository.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series into this repository.
witsml2_1::WellboreMarker * createWellboreMarker(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2 ::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation into this repository.
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2 ::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::WellboreMarker * createWellboreMarker(resqml2 ::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title)
Creates a wellbore marker within a given wellbore marker frame representation.
void commitTransactionRepo(DataObjectRepository *transactionRepo)
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is identified by an EPSG code for its projected part and which is ...
openingMode
Definition DataObjectRepository.h:185
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
common::AbstractObject * addOrReplaceDataObject(common ::AbstractObject *proxy, bool replaceOnlyContent=false)
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature into this repository.
resqml2::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
resqml2::ContinuousProperty * createContinuousProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2 ::PropertyKind *localPropType)
resqml2::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column into this repository.
prodml2_2::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
resqml2::DiscreteProperty * createDiscreteProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2 ::PropertyKind *localPropType)
eml2::AbstractHdfProxy * createHdfProxy(const std::string &guid, const std::string &title, const std::string &packageDirAbsolutePath, const std::string &filePath, DataObjectRepository::openingMode hdfPermissionAccess)
Creates a non parallel access to an HDF5 file for writing to it. Resulting HDF5 file proxy is stored ...
resqml2::BoundaryFeature * createFault(const std::string &guid, const std::string &title)
void addRelationship(common ::AbstractObject *source, common ::AbstractObject *target)
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, resqml2 ::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
std::vector< std::string > getUuids() const
resqml2::FluidBoundaryInterpretation * createFluidBoundaryInterpretation(resqml2 ::BoundaryFeature *boundary, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__FluidContact fluidContact)
Creates a fluid Boundary interpretation into this repository.
resqml2::CommentProperty * createCommentProperty(resqml2 ::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2 ::PropertyKind *localPropType)
resqml2::WellboreMarker * createWellboreMarker(resqml2 ::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind geologicBoundaryKind)
Creates a wellbore marker within a given wellbore marker frame representation.
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which is fully identified by means of EPSG code. Resulting local time 3d ...
void clearWarnings()
Definition DataObjectRepository.h:3546
resqml2::NonSealedSurfaceFrameworkRepresentation * createNonSealedSurfaceFrameworkRepresentation(resqml2 ::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a non sealed surface framework representation into this repository.
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(resqml2 ::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is identified by an EPSG code for its projected part and which is u...
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2 ::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2 ::WellboreTrajectoryRepresentation *traj)
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition AbstractHdfProxy.h:37
Instance of a given activity.
Definition Activity.h:29
Description of one type of activity.
Definition ActivityTemplate.h:29
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
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition AbstractLocal3dCrs.h:27
This class defines the behaviour of all RESQML2 organizations.
Definition AbstractOrganizationInterpretation.h:29
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:37
Proxy class for an abstract seismic line feature. Defined by one lateral dimension: trace (lateral)....
Definition AbstractSeismicLineFeature.h:34
A blocked wellbore representation. This is the information that allows you to locate,...
Definition BlockedWellboreRepresentation.h:33
A boundary feature. This is an interface between two geological objects, such as horizons and faults....
Definition BoundaryFeature.h:30
A boundary feature interpretation. This is the main class for data describing an opinion of a surface...
Definition BoundaryFeatureInterpretation.h:35
Proxy class for a categorical property. It contains discrete integers. This type of property is assoc...
Definition CategoricalProperty.h:35
Definition CmpLineFeature.h:27
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
A deviation survey representation. It Specifies the station data from a deviation survey.
Definition DeviationSurveyRepresentation.h:41
Map of discrete colors. This class cannot be inherited.
Definition DiscreteColorMap.h:27
Proxy class for a discrete property. Such property contains discrete integer values; typically used t...
Definition DiscreteProperty.h:34
Defines a function for table lookups. For example, used for linear interpolation, such as PVT.
Definition DoubleTableLookup.h:33
This class is a container for stratigraphic, structural and rock fluid organization interpretations t...
Definition EarthModelInterpretation.h:37
A fault interpretation. This type of boundary feature contains the data describing an opinion about t...
Definition FaultInterpretation.h:30
Definition FluidBoundaryInterpretation.h:26
An interpretation of a feature that is not specialized. For example, use it when the specialized type...
Definition GenericFeatureInterpretation.h:30
A type of boundary feature, this class identifies if the boundary is a geobody and the type of the bo...
Definition GeobodyBoundaryInterpretation.h:30
A type of rock feature, this class identifies if a rock feature is a geobody with any qualifications ...
Definition GeobodyInterpretation.h:32
A 2d grid representation.
Definition Grid2dRepresentation.h:27
Proxy class for a grid connection set representation. This representation consists of a list of conne...
Definition GridConnectionSetRepresentation.h:51
An interpretation of a horizon, which optionally provides stratigraphic information.
Definition HorizonInterpretation.h:27
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates....
Definition IjkGridExplicitRepresentation.h:31
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and ...
Definition IjkGridLatticeRepresentation.h:32
This class is dedicated to IJK grids with undefined IjkGridGeometry. There are two main use cases....
Definition IjkGridNoGeometryRepresentation.h:33
An IJK Grid parametric representation define the cell corner positions by means of parameters along t...
Definition IjkGridParametricRepresentation.h:32
Defines a local depth coordinate system. The geometrical origin and location are defined by the eleme...
Definition LocalDepth3dCrs.h:31
Defines a local time coordinate system. The geometrical origin and location are defined by the elemen...
Definition LocalTime3dCrs.h:31
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition MdDatum.h:32
The explicit description of the relationships between geologic features, such as rock features (e....
Definition Model.h:35
A non sealed surface framework representation is collection of contact representations parts,...
Definition NonSealedSurfaceFrameworkRepresentation.h:32
Defines a plane representation, which can be made up of multiple patches. Commonly represented featur...
Definition PlaneSetRepresentation.h:34
A representation that consists of one or more node patches. Each node patch is an array of xyz coordi...
Definition PointSetRepresentation.h:31
Proxy class for an points property.
Definition PointsProperty.h:27
A representation made up of a single polyline or "polygonal chain", which may be closed or not....
Definition PolylineRepresentation.h:38
A representation made up of a set of polylines or a set of polygonal chains (for more information,...
Definition PolylineSetRepresentation.h:34
Proxy class for a property set. A property set is a set of properties collected together for a specif...
Definition PropertySet.h:36
Proxy class for a representation set representation. This is the parent class of the framework repres...
Definition RepresentationSetRepresentation.h:39
This class describes the organization of geological reservoir, i.e., of an interconnected network of ...
Definition RockFluidOrganizationInterpretation.h:34
A type of rock fluid feature-interpretation , this class identifies a rock fluid feature by its phase...
Definition RockFluidUnitInterpretation.h:30
A continuous portion of rock material bounded by definite rock boundaries. It is a volume object.
Definition RockVolumeFeature.h:38
A collection of contact, which are a list of contact patches and their identities....
Definition SealedSurfaceFrameworkRepresentation.h:31
A strict boundary representation (BREP), which represents the volume region by assembling together sh...
Definition SealedVolumeFrameworkRepresentation.h:37
Defined by two lateral ordered dimensions: inline (lateral), crossline (lateral and orthogonal to the...
Definition SeismicLatticeFeature.h:33
Frox class for a seismic line set feature. It is an unordered set of several seismic lines....
Definition SeismicLineSetFeature.h:30
A seismic wellbore frame representation. This class cannot be inherited.
Definition SeismicWellboreFrameRepresentation.h:27
Definition ShotPointLineFeature.h:27
A global interpretation of the stratigraphy, which can be made up of several ranks of stratigraphic u...
Definition StratigraphicColumn.h:35
A stratigraphic column rank interpretation is a global hierarchy containing an ordered list of strati...
Definition StratigraphicColumnRankInterpretation.h:39
This class is a container for stratigraphic organizations described along a wellbore.
Definition StratigraphicOccurrenceInterpretation.h:30
The interpretation of a stratigraphic unit.
Definition StratigraphicUnitInterpretation.h:27
Specification of the vector field upon which the streamlines are based.
Definition StreamlinesFeature.h:38
Representation of streamlines associated with a streamline feature and interpretation....
Definition StreamlinesRepresentation.h:33
Defines an integer (key) to string (value) lookup table, for example, stores facies properties,...
Definition StringTableLookup.h:32
One of the main types of RESQML organizations, this class gathers boundary interpretations (e....
Definition StructuralOrganizationInterpretation.h:35
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
A triangulated representation is a representation (most of time a surface) which is constituted by tr...
Definition TriangulatedSetRepresentation.h:31
Unstructured grid representation characterized by a cell count, and potentially nothing else....
Definition UnstructuredGridRepresentation.h:30
May refer to one of these: wellbore, borehole or sidetrack.
Definition WellboreFeature.h:46
Proxy class for a wellbore frame representation. A wellbore frame representation is a representation ...
Definition WellboreFrameRepresentation.h:35
Contains the data describing an opinion of a borehole.This interpretation is relative to one particul...
Definition WellboreInterpretation.h:34
A well log frame where each entry represents a well marker.
Definition WellboreMarkerFrameRepresentation.h:30
Representation of a wellbore marker that is located along a wellbore trajectory, one for each MD valu...
Definition WellboreMarker.h:41
Representation of a wellbore trajectory.
Definition WellboreTrajectoryRepresentation.h:29
Definition CategoricalProperty.h:31
Definition CommentProperty.h:29
Definition ContinuousProperty.h:37
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
Definition RockFluidUnitFeature.h:32
Definition SeismicLineFeature.h:27
Definition TectonicBoundaryFeature.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