Fesapi 2.1.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
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 <unordered_map>
22#include <sstream>
23#include <chrono>
24#include <limits>
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_0_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_1_NS
150{
151 class FluidSystem;
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 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 WITSML2_0 = 2,
200 EML2_1 = 3,
201 PRODML2_1 = 4,
202 EML2_2 = 5,
203 RESQML2_2 = 6,
204 EML2_3 = 7
205 };
206
212 soap* getGsoapContext() const { return gsoapContext; }
213
217 DLL_IMPORT_OR_EXPORT void setDefaultStandard(EnergisticsStandard version) {
218 switch (version) {
219 case EnergisticsStandard::PRODML2_1:
220 defaultProdmlVersion = version; break;
221 case EnergisticsStandard::RESQML2_0_1:
222 case EnergisticsStandard::RESQML2_2:
223 defaultResqmlVersion = version; break;
224 case EnergisticsStandard::WITSML2_0:
225 defaultWitsmlVersion = version; break;
226 case EnergisticsStandard::EML2_0:
227 case EnergisticsStandard::EML2_1:
228 case EnergisticsStandard::EML2_2:
229 case EnergisticsStandard::EML2_3:
230 defaultEmlVersion = version; break;
231 default :
232 throw std::invalid_argument("Unrecognized Energistics standard.");
233 }
234 }
235
241 EnergisticsStandard getDefaultEmlVersion() const { return defaultEmlVersion; }
242
248 EnergisticsStandard getDefaultProdmlVersion() const { return defaultProdmlVersion; }
249
255 EnergisticsStandard getDefaultResqmlVersion() const { return defaultResqmlVersion; }
256
262 EnergisticsStandard getDefaultWitsmlVersion() const { return defaultWitsmlVersion; }
263
265 DLL_IMPORT_OR_EXPORT void clear();
266
278 DLL_IMPORT_OR_EXPORT void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
279
284 DLL_IMPORT_OR_EXPORT void registerDataFeeder(COMMON_NS::DataFeeder * dataFeeder);
285
286 /*
287 * Delete a relationship between two objects. Source and target of the relationship are defined
288 * by Energistics data model. Usually, the simplest is to look at Energistics UML diagrams.
289 * Another way is to rely on XSD/XML: explicit relationships are contained by the source objects
290 * and point to target objects.
291 *
292 * @exception std::invalid_argument if the source or target object is null.
293 *
294 * @param [in] source The source object of the relationship.
295 * @param [in] target The target object of the relationship.
296 */
297 DLL_IMPORT_OR_EXPORT void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
298
304 DLL_IMPORT_OR_EXPORT void setHdfProxyFactory(COMMON_NS::HdfProxyFactory * factory);
305
309 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >& getJournal() const { return journal; }
310
314 DLL_IMPORT_OR_EXPORT virtual void on_CreateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
315
319 DLL_IMPORT_OR_EXPORT virtual void on_UpdateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
320
325 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* resolvePartial(COMMON_NS::AbstractObject * partialObj);
326
330 DLL_IMPORT_OR_EXPORT const std::vector<COMMON_NS::AbstractObject*>& getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const { return forwardRels.at(dataObj); }
331
339 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getTargetObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
340 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
341
352 template <class valueType>
353 std::vector<valueType *> getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const
354 {
355 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
356 }
357
367 DLL_IMPORT_OR_EXPORT const std::vector< COMMON_NS::AbstractObject*>& getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const { return backwardRels.at(dataObj); }
368
376 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getSourceObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
377 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
378
389 template <class valueType>
390 std::vector<valueType *> getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const
391 {
392 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
393
394 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
395 }
396
398 DLL_IMPORT_OR_EXPORT void updateAllRelationships();
399
410 bool addDataObject(COMMON_NS::AbstractObject* proxy);
411
422 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy, bool replaceOnlyContent = false);
423
438 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceGsoapProxy(const std::string & xml, const std::string & contentType);
439
446 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > & getDataObjects() const { return dataObjects; }
447
454 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType() const;
455
461 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType(const std::string & filter) const;
462
470 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getDataObjectsByContentType(const std::string & contentType) const;
471
479 template <class valueType>
480 std::vector<valueType*> getDataObjects() const
481 {
482 std::vector<valueType*> result;
483
484 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
485 for (size_t i = 0; i < it->second.size(); ++i) {
486 if (dynamic_cast<valueType*>(it->second[i]) != nullptr) {
487 result.push_back(static_cast<valueType*>(it->second[i]));
488 }
489 }
490 }
491
492 return result;
493 }
494
501 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractLocal3dCrs* getDefaultCrs() const { return defaultCrs; }
502
509 DLL_IMPORT_OR_EXPORT void setDefaultCrs(RESQML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
510
517 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy* getDefaultHdfProxy() const { return defaultHdfProxy; }
518
525 DLL_IMPORT_OR_EXPORT void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
526
530#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
531 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
532 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
533 const size_t result = get##dataObjectName##Set().size();\
534 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
535 return static_cast<unsigned int>(result);\
536 }\
537 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
538 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
539 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
540 return all[index];\
541 }
542
543 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
544 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
545
546 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
547 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
548 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
549 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
550 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
551 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
552 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
553 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
554 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
555 GETTER_DATAOBJECTS(RESQML2_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
556 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
557 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
558 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
559 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
560 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
561 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
562 GETTER_DATAOBJECTS(RESQML2_NS::LocalDepth3dCrs, LocalDepth3dCrs)
563 GETTER_DATAOBJECTS(RESQML2_NS::LocalTime3dCrs, LocalTime3dCrs)
564 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
565 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
566 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
569 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
570 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
571 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
572 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
573 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
574 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
575 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
576 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
577 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
578 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
579 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
580 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
581 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
582 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
583 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
584 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
585 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
586 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
588 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
590 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
591 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
592 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
593
594 GETTER_DATAOBJECTS(WITSML2_NS::Well, WitsmlWell)
595 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, WitsmlWellbore)
596 GETTER_DATAOBJECTS(WITSML2_NS::Trajectory, WitsmlTrajectory)
597
598 GETTER_DATAOBJECTS(WITSML2_0_NS::WellCompletion, WellCompletion)
599 GETTER_DATAOBJECTS(WITSML2_0_NS::WellboreCompletion, WellboreCompletion)
600 GETTER_DATAOBJECTS(WITSML2_0_NS::WellboreGeometry, WellboreGeometry)
601 GETTER_DATAOBJECTS(WITSML2_0_NS::Log, Log)
602 GETTER_DATAOBJECTS(WITSML2_0_NS::ChannelSet, ChannelSet)
603 GETTER_DATAOBJECTS(WITSML2_0_NS::Channel, Channel)
604
605 GETTER_DATAOBJECTS(PRODML2_1_NS::FluidSystem, FluidSystem)
606 GETTER_DATAOBJECTS(PRODML2_1_NS::FluidCharacterization, FluidCharacterization)
607
608
618 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuid(const std::string & uuid) const;
619
633 template <class valueType>
634 valueType* getDataObjectByUuid(const std::string & uuid) const
635 {
636 COMMON_NS::AbstractObject* const result = getDataObjectByUuid(uuid);
637
638 if (result == nullptr) {
639 return nullptr;
640 }
641
642 if (dynamic_cast<valueType*>(result) != nullptr) {
643 return static_cast<valueType*>(result);
644 }
645
646 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
647 }
648
658 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const;
659
666 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::array<uint8_t, 16> & uuid, const std::string & version) const;
667
682 template <class valueType>
683 valueType* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const
684 {
685 COMMON_NS::AbstractObject* const result = getDataObjectByUuidAndVersion(uuid, version);
686
687 if (result == nullptr) {
688 return nullptr;
689 }
690
691 if (dynamic_cast<valueType*>(result) != nullptr) {
692 return static_cast<valueType*>(result);
693 }
694
695 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
696 }
697
703 DLL_IMPORT_OR_EXPORT std::vector<std::string> getUuids() const;
704
708 COMMON_NS::AbstractObject* createPartial(const std::string & uuid, const std::string & title, const std::string & contentType, const std::string & version = "");
709
719 COMMON_NS::AbstractObject* createPartial(const DataObjectReference& dor);
720
735 template <class valueType>
736 valueType* createPartial(const std::string & guid, const std::string & title, const std::string & version = "")
737 {
738 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
739 valueType* result = new valueType(dor);
740 dor->ContentType = result->getContentType();
741 addOrReplaceDataObject(result);
742 return result;
743 }
744
745
746 //************************************
747 //***** DataObject creation **********
748 //************************************
749
761 template <class NumericalValueBase>
762 NumericalValueBase* createEpcExternalPartReference(const std::string & guid, const std::string & title)
763 {
764 NumericalValueBase* result = new NumericalValueBase(getGsoapContext(), guid);
765 addDataObject(result);
766 return result;
767 }
768
786 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);
787
788 //************ CRS *******************
789
816 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
817 double originOrdinal1, double originOrdinal2, double originOrdinal3,
818 double arealRotation,
819 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode,
820 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
821
848 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
849 double originOrdinal1, double originOrdinal2, double originOrdinal3,
850 double arealRotation,
851 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
852 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
853
881 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
882 double originOrdinal1, double originOrdinal2, double originOrdinal3,
883 double arealRotation,
884 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode,
885 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
886
914 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalDepth3dCrs* createLocalDepth3dCrs(const std::string & guid, const std::string & title,
915 double originOrdinal1, double originOrdinal2, double originOrdinal3,
916 double arealRotation,
917 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
918 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
919
947 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
948 double originOrdinal1, double originOrdinal2, double originOrdinal3,
949 double arealRotation,
950 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode,
951 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
952 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
953
981 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
982 double originOrdinal1, double originOrdinal2, double originOrdinal3,
983 double arealRotation,
984 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
985 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
986 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
987
1016 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
1017 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1018 double arealRotation,
1019 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode,
1020 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1021 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string & verticalUnknownReason, bool isUpOriented);
1022
1051 DLL_IMPORT_OR_EXPORT RESQML2_NS::LocalTime3dCrs* createLocalTime3dCrs(const std::string & guid, const std::string & title,
1052 double originOrdinal1, double originOrdinal2, double originOrdinal3,
1053 double arealRotation,
1054 gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string & projectedUnknownReason,
1055 gsoap_resqml2_0_1::eml20__TimeUom timeUom,
1056 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
1057
1079 DLL_IMPORT_OR_EXPORT RESQML2_NS::MdDatum* createMdDatum(const std::string & guid, const std::string & title,
1080 RESQML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__WellboreDatumReference originKind,
1081 double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3);
1082
1083 //************ FEATURE ***************
1084
1097 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createBoundaryFeature(const std::string & guid, const std::string & title);
1098
1110 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createHorizon(const std::string & guid, const std::string & title);
1111
1125 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createGeobodyBoundaryFeature(const std::string & guid, const std::string & title);
1126
1139 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createGeobodyFeature(const std::string & guid, const std::string & title);
1140
1152 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFault(const std::string & guid, const std::string & title);
1153
1165 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeature* createFracture(const std::string & guid, const std::string & title);
1166
1179 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFeature* createWellboreFeature(const std::string & guid, const std::string & title);
1180
1201 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLatticeFeature* createSeismicLattice(const std::string & guid, const std::string & title,
1202 int inlineIncrement, int crosslineIncrement,
1203 unsigned int originInline, unsigned int originCrossline,
1204 unsigned int inlineCount, unsigned int crosslineCount);
1205
1219 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::SeismicLineFeature* createSeismicLine(const std::string & guid, const std::string & title,
1220 int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount);
1221
1236 DLL_IMPORT_OR_EXPORT RESQML2_NS::CmpLineFeature* createCmpLine(const std::string & guid, const std::string & title,
1237 int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount);
1238
1249 DLL_IMPORT_OR_EXPORT RESQML2_NS::ShotPointLineFeature* createShotPointLine(const std::string & guid, const std::string & title);
1250
1262 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicLineSetFeature* createSeismicLineSet(const std::string & guid, const std::string & title);
1263
1277 DLL_IMPORT_OR_EXPORT RESQML2_NS::CulturalFeature* createCultural(const std::string & guid, const std::string & title,
1278 gsoap_eml2_3::resqml22__CulturalFeatureKind kind = gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries);
1279
1293 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createStratigraphicUnitFeature(const std::string & guid, const std::string & title);
1294
1304 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockVolumeFeature* createRockVolumeFeature(const std::string & guid, const std::string & title);
1305
1314 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createModel(const std::string & guid, const std::string & title);
1315
1329 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStructuralModel(const std::string & guid, const std::string & title);
1330
1344 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createStratigraphicModel(const std::string & guid, const std::string & title);
1345
1359 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createRockFluidModel(const std::string & guid, const std::string & title);
1360
1374 DLL_IMPORT_OR_EXPORT RESQML2_NS::Model* createEarthModel(const std::string & guid, const std::string & title);
1375
1387 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);
1388
1402 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);
1403
1404 //************ INTERPRETATION ********
1405
1420 DLL_IMPORT_OR_EXPORT RESQML2_NS::GenericFeatureInterpretation* createGenericFeatureInterpretation(RESQML2_NS::AbstractFeature * feature, const std::string & guid, const std::string & title);
1421
1436 DLL_IMPORT_OR_EXPORT RESQML2_NS::BoundaryFeatureInterpretation* createBoundaryFeatureInterpretation(RESQML2_NS::BoundaryFeature * feature, const std::string & guid, const std::string & title);
1437
1452 DLL_IMPORT_OR_EXPORT RESQML2_NS::HorizonInterpretation* createHorizonInterpretation(RESQML2_NS::BoundaryFeature * horizon, const std::string & guid, const std::string & title);
1453
1468 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyBoundaryInterpretation* createGeobodyBoundaryInterpretation(RESQML2_NS::BoundaryFeature * geobodyBoundary, const std::string & guid, const std::string & title);
1469
1484 DLL_IMPORT_OR_EXPORT RESQML2_NS::FaultInterpretation* createFaultInterpretation(RESQML2_NS::BoundaryFeature * fault, const std::string & guid, const std::string & title);
1485
1501 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);
1502
1519 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreInterpretation* createWellboreInterpretation(RESQML2_NS::WellboreFeature * wellbore, const std::string & guid, const std::string & title, bool isDrilled);
1520
1535 DLL_IMPORT_OR_EXPORT RESQML2_NS::EarthModelInterpretation* createEarthModelInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1536
1552 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1553
1570 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1571
1588 DLL_IMPORT_OR_EXPORT RESQML2_NS::StructuralOrganizationInterpretation* createStructuralOrganizationInterpretationInMeasuredDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1589
1605 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidOrganizationInterpretation* createRockFluidOrganizationInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1606
1621 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation* createRockFluidUnitInterpretation(RESQML2_NS::RockVolumeFeature * rockFluidUnitFeature, const std::string & guid, const std::string & title);
1622
1638 DLL_IMPORT_OR_EXPORT RESQML2_NS::GeobodyInterpretation* createGeobodyInterpretation(RESQML2_NS::RockVolumeFeature* geobody, const std::string & guid, const std::string & title);
1639
1654 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicUnitInterpretation* createStratigraphicUnitInterpretation(RESQML2_NS::RockVolumeFeature * stratiUnitFeature, const std::string & guid, const std::string & title);
1655
1668 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumn* createStratigraphicColumn(const std::string & guid, const std::string & title);
1669
1687 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, const unsigned long & rank);
1688
1706 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, const unsigned long & rank);
1707
1723 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1724
1741 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicOccurrenceInterpretation* createStratigraphicOccurrenceInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title);
1742
1743 //************ REPRESENTATION ********
1744
1757 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(const std::string & guid, const std::string & title);
1758
1775 DLL_IMPORT_OR_EXPORT RESQML2_NS::TriangulatedSetRepresentation* createTriangulatedSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1776 const std::string & guid, const std::string & title);
1777
1790 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(const std::string & guid, const std::string & title);
1791
1808 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1809 const std::string & guid, const std::string & title);
1810
1830 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineSetRepresentation* createPolylineSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1831 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind);
1832
1845 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(const std::string & guid, const std::string & title);
1846
1861 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointSetRepresentation* createPointSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1862 const std::string & guid, const std::string & title);
1863
1878 DLL_IMPORT_OR_EXPORT RESQML2_NS::PlaneSetRepresentation* createPlaneSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1879 const std::string & guid, const std::string & title);
1880
1894 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(const std::string & guid, const std::string & title, bool isClosed = false);
1895
1914 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1915 const std::string & guid, const std::string & title, bool isClosed = false);
1916
1936 DLL_IMPORT_OR_EXPORT RESQML2_NS::PolylineRepresentation* createPolylineRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1937 const std::string & guid, const std::string & title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed = false);
1938
1953 DLL_IMPORT_OR_EXPORT RESQML2_NS::Grid2dRepresentation* createGrid2dRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
1954 const std::string & guid, const std::string & title);
1955
1973 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::MdDatum* mdInfo);
1974
1992 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::DeviationSurveyRepresentation* deviationSurvey);
1993
2013 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);
2014
2031 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreFrameRepresentation* createWellboreFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2032
2056 DLL_IMPORT_OR_EXPORT RESQML2_NS::SeismicWellboreFrameRepresentation* createSeismicWellboreFrameRepresentation(
2057 RESQML2_NS::WellboreInterpretation* interp,
2058 const std::string& guid, const std::string& title,
2059 RESQML2_NS::WellboreTrajectoryRepresentation* traj,
2060 double seismicReferenceDatum,
2061 double weatheringVelocity,
2062 RESQML2_NS::LocalTime3dCrs* crs);
2063
2080 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarkerFrameRepresentation* createWellboreMarkerFrameRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2081
2096 DLL_IMPORT_OR_EXPORT RESQML2_NS::WellboreMarker* createWellboreMarker(RESQML2_NS::WellboreMarkerFrameRepresentation* wellboreMarkerFrame, const std::string& guid, const std::string& title);
2097
2113 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);
2114
2131 DLL_IMPORT_OR_EXPORT RESQML2_NS::BlockedWellboreRepresentation* createBlockedWellboreRepresentation(RESQML2_NS::WellboreInterpretation* interp,
2132 const std::string& guid, const std::string& title, RESQML2_NS::WellboreTrajectoryRepresentation* traj);
2133
2150 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2151 RESQML2_NS::AbstractOrganizationInterpretation* interp,
2152 const std::string & guid,
2153 const std::string & title);
2154
2167 DLL_IMPORT_OR_EXPORT RESQML2_NS::RepresentationSetRepresentation* createRepresentationSetRepresentation(
2168 const std::string & guid,
2169 const std::string & title);
2170
2185 DLL_IMPORT_OR_EXPORT RESQML2_NS::NonSealedSurfaceFrameworkRepresentation* createNonSealedSurfaceFrameworkRepresentation(
2186 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2187 const std::string & guid,
2188 const std::string & title);
2189
2204 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedSurfaceFrameworkRepresentation* createSealedSurfaceFrameworkRepresentation(
2205 RESQML2_NS::StructuralOrganizationInterpretation* interp,
2206 const std::string & guid,
2207 const std::string & title);
2208
2225 DLL_IMPORT_OR_EXPORT RESQML2_NS::SealedVolumeFrameworkRepresentation* createSealedVolumeFrameworkRepresentation(
2226 RESQML2_NS::StratigraphicColumnRankInterpretation* interp,
2227 const std::string & guid,
2228 const std::string & title,
2229 RESQML2_NS::SealedSurfaceFrameworkRepresentation* ssf);
2230
2240 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialIjkGridRepresentation(const std::string& guid, const std::string& title);
2241
2250 DLL_IMPORT_OR_EXPORT RESQML2_NS::AbstractIjkGridRepresentation* createPartialTruncatedIjkGridRepresentation(const std::string& guid, const std::string& title);
2251
2273 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(const std::string& guid, const std::string& title,
2274 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2275
2299 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridExplicitRepresentation* createIjkGridExplicitRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2300 const std::string& guid, const std::string& title,
2301 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2302
2324 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(const std::string& guid, const std::string& title,
2325 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2326
2350 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridParametricRepresentation* createIjkGridParametricRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2351 const std::string& guid, const std::string& title,
2352 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2353
2369 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(const std::string& guid, const std::string& title,
2370 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2371
2389 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridLatticeRepresentation* createIjkGridLatticeRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2390 const std::string& guid, const std::string& title,
2391 unsigned int iCount, unsigned int jCount, unsigned int kCount);
2392
2414 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(
2415 const std::string& guid, const std::string& title,
2416 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2417
2441 DLL_IMPORT_OR_EXPORT RESQML2_NS::IjkGridNoGeometryRepresentation* createIjkGridNoGeometryRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2442 const std::string& guid, const std::string& title,
2443 unsigned int iCount, unsigned int jCount, unsigned int kCount, bool* kGaps = nullptr, EML2_NS::AbstractHdfProxy* proxy = nullptr);
2444
2458 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(const std::string& guid, const std::string& title,
2459 const uint64_t & cellCount);
2460
2473 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(
2474 const std::string & guid, const std::string & title);
2475
2492 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2493 const std::string & guid, const std::string & title);
2494
2507 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(const std::string & guid, const std::string & title);
2508
2525 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2526 const std::string & guid, const std::string & title);
2527
2542 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature* createStreamlinesFeature(const std::string & guid, const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2543
2558 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation* createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp, const std::string & guid, const std::string & title, uint64_t lineCount);
2559
2560 //************* PROPERTIES ***********
2561
2574 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries* createTimeSeries(const std::string & guid, const std::string & title);
2575
2588 DLL_IMPORT_OR_EXPORT RESQML2_NS::DoubleTableLookup* createDoubleTableLookup(const std::string & guid, const std::string & title);
2589
2602 DLL_IMPORT_OR_EXPORT RESQML2_NS::StringTableLookup* createStringTableLookup(const std::string & guid, const std::string & title);
2603
2622 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2623 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2624
2643 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2644 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * parentPropType);
2645
2663 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2664 const std::string & namingSystem, const std::string & nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2665
2681 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2682 const std::string & namingSystem, const std::string & nonStandardUom, EML2_NS::PropertyKind * parentPropType);
2683
2702 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2703 gsoap_eml2_1::eml21__QuantityClassKind quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2704
2725 DLL_IMPORT_OR_EXPORT RESQML2_NS::PropertySet* createPropertySet(const std::string & guid, const std::string & title,
2726 bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_eml2_3::resqml22__TimeSetKind timeSetKind);
2727
2750 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2751 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2752
2774 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2775 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2776
2804 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2805 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2806
2833 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2834 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2835
2862 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2863 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2864
2890 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2891 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2892
2915 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2916 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2917
2939 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2940 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2941
2966 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2967 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2968 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2969
2993 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2994 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
2995 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2996
3020 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3021 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
3022 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3023
3046 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3047 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind,
3048 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3049
3072 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3073 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3074 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3075
3097 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3098 unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, RESQML2_NS::AbstractLocal3dCrs* localCrs,
3099 EML2_NS::PropertyKind * localPropType);
3100
3101 //************* ACTIVITIES ***********
3102
3115 DLL_IMPORT_OR_EXPORT EML2_NS::ActivityTemplate* createActivityTemplate(const std::string & guid, const std::string & title);
3116
3131 DLL_IMPORT_OR_EXPORT EML2_NS::Activity* createActivity(EML2_NS::ActivityTemplate* activityTemplate, const std::string & guid, const std::string & title);
3132
3133 //*************** WITSML *************
3134/*
3135 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModel* createToolErrorModel(
3136 const std::string & guid,
3137 const std::string & title,
3138 gsoap_eml2_2::witsml2__MisalignmentMode misalignmentMode);
3139
3140 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModelDictionary* createToolErrorModelDictionary(
3141 const std::string & guid,
3142 const std::string & title);
3143
3144 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTerm* createErrorTerm(
3145 const std::string & guid,
3146 const std::string & title,
3147 gsoap_eml2_2::witsml2__ErrorPropagationMode propagationMode,
3148 WITSML2_1_NS::WeightingFunction* weightingFunction);
3149
3150 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTermDictionary* createErrorTermDictionary(
3151 const std::string & guid,
3152 const std::string & title);
3153
3154 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunction* createWeightingFunction(
3155 const std::string & guid,
3156 const std::string & title,
3157 const std::string & depthFormula,
3158 const std::string & inclinationFormula,
3159 const std::string & azimuthFormula);
3160
3161 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunctionDictionary* createWeightingFunctionDictionary(
3162 const std::string & guid,
3163 const std::string & title);
3164*/
3173 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3174 const std::string & title);
3175
3190 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3191 const std::string & title,
3192 const std::string & operator_,
3193 gsoap_eml2_1::eml21__WellStatus statusWell,
3194 gsoap_eml2_1::witsml20__WellDirection directionWell
3195 );
3196
3210 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3211 const std::string & guid,
3212 const std::string & title);
3213
3231 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3232 const std::string & guid,
3233 const std::string & title,
3234 gsoap_eml2_1::eml21__WellStatus statusWellbore,
3235 bool isActive,
3236 bool achievedTD
3237 );
3238
3252 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::WellCompletion* createWellCompletion(WITSML2_NS::Well* witsmlWell,
3253 const std::string & guid,
3254 const std::string & title);
3255
3272 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::WellboreCompletion* createWellboreCompletion(WITSML2_NS::Wellbore* witsmlWellbore,
3273 WITSML2_0_NS::WellCompletion* wellCompletion,
3274 const std::string & guid,
3275 const std::string & title,
3276 const std::string & wellCompletionName);
3277
3295 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::WellboreGeometry* createWellboreGeometry(WITSML2_NS::Wellbore* witsmlWellbore,
3296 const std::string & guid,
3297 const std::string & title,
3298 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3299
3316 DLL_IMPORT_OR_EXPORT WITSML2_NS::Trajectory* createTrajectory(WITSML2_NS::Wellbore* witsmlWellbore,
3317 const std::string & guid,
3318 const std::string & title,
3319 gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
3320
3334 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Log* createLog(WITSML2_NS::Wellbore* witsmlWellbore,
3335 const std::string & guid,
3336 const std::string & title);
3337
3346 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::ChannelSet* createChannelSet(
3347 const std::string & guid,
3348 const std::string & title);
3349
3371 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::Channel* createChannel(EML2_NS::PropertyKind * propertyKind,
3372 const std::string & guid, const std::string & title,
3373 const std::string & mnemonic, gsoap_eml2_1::eml21__UnitOfMeasure uom, gsoap_eml2_1::witsml20__EtpDataType dataType, gsoap_eml2_1::witsml20__ChannelStatus growingStatus,
3374 const std::string & timeDepth, const std::string & loggingCompanyName);
3375
3389 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::WellboreMarker* createWellboreMarker(
3390 const std::string & guid, const std::string & title,
3391 double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string & mdDatum);
3392
3409 DLL_IMPORT_OR_EXPORT WITSML2_0_NS::WellboreMarker* createWellboreMarker(WITSML2_NS::Wellbore* witsmlWellbore,
3410 const std::string & guid, const std::string & title,
3411 double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string & mdDatum);
3412
3413 //*************** PRODML *************
3414
3432 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::FluidSystem* createFluidSystem(const std::string & guid,
3433 const std::string & title,
3434 double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom,
3435 double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom,
3436 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3437 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3438
3453 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::FluidSystem* createFluidSystem(const std::string & guid,
3454 const std::string & title,
3455 gsoap_eml2_2::eml22__ReferenceCondition referenceCondition,
3456 gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind,
3457 double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom);
3458
3469 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::FluidCharacterization* createFluidCharacterization(const std::string & guid, const std::string & title);
3470
3481 DLL_IMPORT_OR_EXPORT PRODML2_1_NS::TimeSeriesData* createTimeSeriesData(const std::string & guid, const std::string & title);
3482
3483 //************** EML2.3 ****************
3484
3495 DLL_IMPORT_OR_EXPORT EML2_NS::GraphicalInformationSet* createGraphicalInformationSet(const std::string & guid, const std::string & title);
3496
3507 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap* createDiscreteColorMap(const std::string& guid, const std::string& title);
3508
3521 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousColorMap* createContinuousColorMap(const std::string& guid, const std::string& title,
3522 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3523
3524 //***** STANDARD PROP KIND ***********
3525
3532 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper* getPropertyKindMapper() const { return propertyKindMapper.get(); }
3533
3534 //*************** WARNINGS *************
3535
3537 DLL_IMPORT_OR_EXPORT void clearWarnings() { warnings.clear(); }
3538
3544 DLL_IMPORT_OR_EXPORT void addWarning(const std::string & warning);
3545
3551 DLL_IMPORT_OR_EXPORT const std::vector<std::string> & getWarnings() const;
3552
3553 //*********** TRANSACTION ***********
3554
3560
3565
3566 private:
3567
3572 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3573
3574 // Forward relationships
3575 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3576
3577 // Backward relationships. It is redundant with forward relationships but it allows more performance.
3578 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3579
3580 soap* gsoapContext;
3581
3582 std::vector<std::string> warnings;
3583
3584 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3585
3586 EML2_NS::AbstractHdfProxy* defaultHdfProxy;
3587 RESQML2_NS::AbstractLocal3dCrs* defaultCrs;
3588
3589 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3590
3591 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3592
3593 EnergisticsStandard defaultEmlVersion;
3594 EnergisticsStandard defaultProdmlVersion;
3595 EnergisticsStandard defaultResqmlVersion;
3596 EnergisticsStandard defaultWitsmlVersion;
3597
3598 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, DataObjectReference, CUD> > journal;
3599
3603 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3604
3610 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(const std::string & resqmlContentType);
3611
3612 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(const std::string& resqmlContentType);
3613 COMMON_NS::AbstractObject* getEml2_1WrapperFromGsoapContext(const std::string & datatype);
3614 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(const std::string & datatype);
3615
3616 COMMON_NS::AbstractObject* getWitsml1_4WrapperFromGsoapContext(const std::string & datatype);
3617 COMMON_NS::AbstractObject* getWitsml2_0WrapperFromGsoapContext(const std::string & datatype);
3618 COMMON_NS::AbstractObject* getProdml2_1WrapperFromGsoapContext(const std::string & datatype);
3619
3623 int getGsoapErrorCode() const;
3624
3628 std::string getGsoapErrorMessage() const;
3629
3630 template <class valueType>
3631 std::vector<valueType *> getObjsFilteredOnDatatype(const std::vector< COMMON_NS::AbstractObject * >& objs) const
3632 {
3633 std::vector<valueType *> result;
3634 for (size_t i = 0; i < objs.size(); ++i) {
3635 valueType * castedObj = dynamic_cast<valueType *>(objs[i]);
3636 if (castedObj != nullptr) {
3637 result.push_back(castedObj);
3638 }
3639 }
3640 return result;
3641 }
3642
3643 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(const std::string & guid, const std::string & title, const std::string & version);
3644
3645 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
3646 };
3647}
Definition: DataFeeder.h:29
It contains many trajectory stations to capture the information about individual survey points.
Definition: Trajectory.h:31
Contains all information that is the same for all wellbores (sidetracks).
Definition: Well.h:43
A wellbore represents the path from surface to a unique bottomhole location.
Definition: Wellbore.h:46
An abstract data object.
Definition: AbstractObject.h:33
This class wraps an Energistics Data Object Reference whatever its version is.
Definition: DataObjectReference.h:43
This abstract class acts as a buffer between the RESQML (business) classes and the persisted data.
Definition: DataObjectRepository.h:167
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::Grid2dRepresentation * createGrid2dRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::MdDatum *mdInfo)
Creates a wellbore trajectory representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::WellboreFrameRepresentation * createWellboreFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
Creates a wellbore frame representation into this repository.
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, eml2::PropertyKind *parentPropType)
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, const unsigned long &rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2::PropertyKind *localPropType)
const std::unordered_map< std::string, std::vector< common::AbstractObject * > > & getDataObjects() const
Definition: DataObjectRepository.h:446
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
std::vector< valueType * > getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:353
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::SeismicWellboreFrameRepresentation * createSeismicWellboreFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj, double seismicReferenceDatum, double weatheringVelocity, resqml2::LocalTime3dCrs *crs)
Creates a seismic wellbore frame representation into this repository.
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_1::eml21__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition: DataObjectRepository.h:517
common::AbstractObject * addOrReplaceDataObject(common::AbstractObject *proxy, bool replaceOnlyContent=false)
DataObjectRepository(const std::string &propertyKindMappingFilesDirectory)
const std::vector< common::AbstractObject * > & getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:367
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which unknown for its projected part and which is identified by an EPSG c...
witsml2_0::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common::DataObjectReference, CUD > > & getJournal() const
Definition: DataObjectRepository.h:309
resqml2::BlockedWellboreRepresentation * createBlockedWellboreRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
Creates a blocked wellbore representation into this repository.
std::vector< common::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
witsml2_0::WellboreGeometry * createWellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
resqml2::Model * createModel(const std::string &guid, const std::string &title)
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation into this repository.
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is fully unknown. Resulting local depth 3d CRS is stored into this...
void registerDataFeeder(common::DataFeeder *dataFeeder)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::RockFluidUnitFeature * createRockFluidUnit(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__Phase phase, resqml2_0_1::FluidBoundaryFeature *fluidBoundaryTop, resqml2_0_1::FluidBoundaryFeature *fluidBoundaryBottom)
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
common::AbstractObject * resolvePartial(common::AbstractObject *partialObj)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
resqml2::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2::BoundaryFeature *feature, const std::string &guid, const std::string &title)
resqml2::SubRepresentation * createSubRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void setHdfProxyFactory(common::HdfProxyFactory *factory)
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
void addRelationship(common::AbstractObject *source, common::AbstractObject *target)
resqml2::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::AbstractLocal3dCrs *localCrs, eml2::PropertyKind *localPropType)
void addWarning(const std::string &warning)
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is unknown for its projected part and which is identified by an EP...
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by apparent depth into this repository.
witsml2_0::Channel * createChannel(eml2::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_1::eml21__UnitOfMeasure uom, gsoap_eml2_1::witsml20__EtpDataType dataType, gsoap_eml2_1::witsml20__ChannelStatus growingStatus, const std::string &timeDepth, const std::string &loggingCompanyName)
Creates a channel into this repository.
NumericalValueBase * createEpcExternalPartReference(const std::string &guid, const std::string &title)
Definition: DataObjectRepository.h:762
prodml2_1::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
resqml2_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
std::vector< common::AbstractObject * > getSourceObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
resqml2::StreamlinesRepresentation * createStreamlinesRepresentation(resqml2::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates a streamlines representation into this repository.
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
resqml2::RockFluidUnitInterpretation * createRockFluidUnitInterpretation(resqml2::RockVolumeFeature *rockFluidUnitFeature, const std::string &guid, const std::string &title)
Creates a rock fluid unit interpretation into this repository.
const std::vector< common::AbstractObject * > & getTargetObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:330
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a wellbore into this repository.
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::SealedVolumeFrameworkRepresentation * createSealedVolumeFrameworkRepresentation(resqml2::StratigraphicColumnRankInterpretation *interp, const std::string &guid, const std::string &title, resqml2::SealedSurfaceFrameworkRepresentation *ssf)
Creates a sealed volume framework representation into this repository.
DataObjectRepository * newTransactionRepo()
std::vector< valueType * > getDataObjects() const
Definition: DataObjectRepository.h:480
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by apparent depth into this repository.
soap * getGsoapContext() const
Definition: DataObjectRepository.h:212
resqml2::ContinuousColorMap * createContinuousColorMap(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod)
virtual void on_UpdateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common::AbstractObject * > > &)
Definition: DataObjectRepository.h:319
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition: DataObjectRepository.h:3532
resqml2::PlaneSetRepresentation * createPlaneSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a plane set representation into this repository.
valueType * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
Definition: DataObjectRepository.h:683
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
eml2::GraphicalInformationSet * createGraphicalInformationSet(const std::string &guid, const std::string &title)
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
virtual void on_CreateDataObject(const std::vector< std::pair< std::chrono::time_point< std::chrono::system_clock >, common::AbstractObject * > > &)
Definition: DataObjectRepository.h:314
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
prodml2_1::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom, gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom)
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
EnergisticsStandard getDefaultResqmlVersion() const
Definition: DataObjectRepository.h:255
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2::PropertyKind *parentPropType)
Creates a property kind into this repository.
resqml2_0_1::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length)
bool addDataObject(common::AbstractObject *proxy)
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType() const
resqml2::StratigraphicUnitInterpretation * createStratigraphicUnitInterpretation(resqml2::RockVolumeFeature *stratiUnitFeature, const std::string &guid, const std::string &title)
Creates a stratigraphic unit interpretation into this repository.
void setDefaultStandard(EnergisticsStandard version)
Definition: DataObjectRepository.h:217
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
resqml2::Model * createStructuralModel(const std::string &guid, const std::string &title)
resqml2::PointSetRepresentation * createPointSetRepresentation(const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInMeasuredDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by measured depth into this repository.
resqml2::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2::PropertyKind *localPropType)
resqml2::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
prodml2_1::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
common::AbstractObject * createPartial(const DataObjectReference &dor)
resqml2::SeismicLatticeFeature * createSeismicLattice(const std::string &guid, const std::string &title, int inlineIncrement, int crosslineIncrement, unsigned int originInline, unsigned int originCrossline, unsigned int inlineCount, unsigned int crosslineCount)
Creates a seismic lattice into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Creates a wellbore trajectory into this repository.
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, const unsigned long &rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
resqml2::StratigraphicOccurrenceInterpretation * createStratigraphicOccurrenceInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a stratigraphic occurrence interpretation ordered by age into this repository.
std::vector< valueType * > getSourceObjects(common::AbstractObject const *dataObj) const
Definition: DataObjectRepository.h:390
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is fully unknown. Resulting local time 3d CRS is stored into this r...
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which is fully identified by means of EPSG code. Resulting local time 3d ...
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is identified by an EPSG code for its projected part and which is ...
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
EnergisticsStandard
Definition: DataObjectRepository.h:196
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
witsml2_0::WellboreMarker * createWellboreMarker(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string &mdDatum)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::LocalTime3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local time 3d CRS which is identified by an EPSG code for its projected part and which is u...
resqml2::WellboreMarker * createWellboreMarker(resqml2::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind geologicBoundaryKind)
Creates a wellbore marker within a given wellbore marker frame representation.
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2::LocalDepth3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, unsigned long projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is fully identified by means of an EPSG code. Resulting local dept...
resqml2::FaultInterpretation * createFaultInterpretation(resqml2::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, eml2::PropertyKind *localPropType)
resqml2::CulturalFeature * createCultural(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__CulturalFeatureKind kind=gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries)
Creates a cultural into this repository.
resqml2::ShotPointLineFeature * createShotPointLine(const std::string &guid, const std::string &title)
resqml2::Model * createRockFluidModel(const std::string &guid, const std::string &title)
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition: DataObjectRepository.h:736
EnergisticsStandard getDefaultWitsmlVersion() const
Definition: DataObjectRepository.h:262
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, eml2::PropertyKind *localPropType)
resqml2::WellboreMarker * createWellboreMarker(resqml2::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title)
Creates a wellbore marker within a given wellbore marker frame representation.
resqml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition: DataObjectRepository.h:501
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
witsml2_0::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_1::eml21__LengthUom mdUom, const std::string &mdDatum)
Creates a WITSML2.0 Wellbore Marker into this repository.
EnergisticsStandard getDefaultProdmlVersion() const
Definition: DataObjectRepository.h:248
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2::TimeSeries *timeSeries)
Creates a streamlines feature into this repository.
resqml2::CmpLineFeature * createCmpLine(const std::string &guid, const std::string &title, int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount)
Creates a CMP line into this repository.
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::RockVolumeFeature * createRockVolumeFeature(const std::string &guid, const std::string &title)
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::SeismicLineSetFeature * createSeismicLineSet(const std::string &guid, const std::string &title)
Creates a seismic line set into this repository.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
resqml2::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_eml2_3::resqml22__TimeSetKind timeSetKind)
Creates a property set into this repository.
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
resqml2::RockVolumeFeature * createGeobodyFeature(const std::string &guid, const std::string &title)
Creates a geobody feature into this repository.
resqml2::DoubleTableLookup * createDoubleTableLookup(const std::string &guid, const std::string &title)
Creates a double table lookup into this repository.
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, const std::string &operator_, gsoap_eml2_1::eml21__WellStatus statusWell, gsoap_eml2_1::witsml20__WellDirection directionWell)
resqml2::HorizonInterpretation * createHorizonInterpretation(resqml2::BoundaryFeature *horizon, const std::string &guid, const std::string &title)
Creates a horizon interpretation into this repository.
EnergisticsStandard getDefaultEmlVersion() const
Definition: DataObjectRepository.h:241
resqml2::FluidBoundaryInterpretation * createFluidBoundaryInterpretation(resqml2::BoundaryFeature *boundary, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__FluidContact fluidContact)
Creates a fluid Boundary interpretation into this repository.
witsml2_0::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
Creates a wellbore log into this repository.
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::resqml22__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
witsml2_0::ChannelSet * createChannelSet(const std::string &guid, const std::string &title)
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title)
resqml2::GeobodyInterpretation * createGeobodyInterpretation(resqml2::RockVolumeFeature *geobody, const std::string &guid, const std::string &title)
Creates a geobody interpretation into this repository.
resqml2::EarthModelInterpretation * createEarthModelInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates an earth model interpretation into this repository.
witsml2_0::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, witsml2_0::WellCompletion *wellCompletion, const std::string &guid, const std::string &title, const std::string &wellCompletionName)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2::DeviationSurveyRepresentation * createDeviationSurveyRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, const bool &isFinal, resqml2::MdDatum *mdInfo)
Creates a deviation survey representation into this repository.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series into this repository.
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_1::eml21__QuantityClassKind quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates an EML2.1 property kind into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by age into this repository.
void setDefaultHdfProxy(eml2::AbstractHdfProxy *hdfProxy)
Definition: DataObjectRepository.h:525
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
void setDefaultCrs(resqml2::AbstractLocal3dCrs *crs)
Definition: DataObjectRepository.h:509
std::vector< common::AbstractObject * > getTargetObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
void commitTransactionRepo(DataObjectRepository *transactionRepo)
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
openingMode
Definition: DataObjectRepository.h:185
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature into this repository.
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind)
Creates a polyline set representation into this repository.
resqml2::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
resqml2::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column into this repository.
eml2::AbstractHdfProxy * createHdfProxy(const std::string &guid, const std::string &title, const std::string &packageDirAbsolutePath, const std::string &filePath, DataObjectRepository::openingMode hdfPermissionAccess)
Creates a non parallel access to an HDF5 file for writing to it. Resulting HDF5 file proxy is stored ...
eml2::Activity * createActivity(eml2::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::BoundaryFeature * createFault(const std::string &guid, const std::string &title)
prodml2_1::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_2::eml22__ReferenceCondition referenceCondition, gsoap_eml2_2::prodml21__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_2::eml22__VolumePerVolumeUom gasOilRatioUom)
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, resqml2::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__WellboreDatumReference originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
std::vector< std::string > getUuids() const
resqml2::NonSealedSurfaceFrameworkRepresentation * createNonSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a non sealed surface framework representation into this repository.
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::DeviationSurveyRepresentation *deviationSurvey)
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
void clearWarnings()
Definition: DataObjectRepository.h:3537
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed=false)
Creates a polyline representation into this repository.
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition: AbstractHdfProxy.h:42
Instance of a given activity.
Definition: Activity.h:29
Description of one type of activity.
Definition: ActivityTemplate.h:29
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
Definition: FluidCharacterization.h:110
Definition: FluidSystem.h:103
Definition: TimeSeriesData.h:33
Proxy class for an abstract feature.
Definition: AbstractFeature.h:31
Proxy class for an abstract feature interpretation.
Definition: AbstractFeatureInterpretation.h:29
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition: AbstractIjkGridRepresentation.h:34
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition: AbstractLocal3dCrs.h:27
This class defines the behaviour of all RESQML2 organizations.
Definition: AbstractOrganizationInterpretation.h:29
Proxy class for an abstract representation.
Definition: AbstractRepresentation.h:32
Proxy class for an abstract seismic line feature. Defined by one lateral dimension: trace (lateral)....
Definition: AbstractSeismicLineFeature.h:34
A blocked wellbore representation. This is the information that allows you to locate,...
Definition: BlockedWellboreRepresentation.h:33
A boundary feature. This is an interface between two geological objects, such as horizons and faults....
Definition: BoundaryFeature.h:30
A boundary feature interpretation. This is the main class for data describing an opinion of a surface...
Definition: BoundaryFeatureInterpretation.h:35
Proxy class for a categorical property. It contains discrete integers. This type of property is assoc...
Definition: CategoricalProperty.h:35
Definition: CmpLineFeature.h:27
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. Notice that,...
Definition: IjkGridLatticeRepresentation.h:32
This class is dedicated to IJK grids with undefined IjkGridGeometry. There are two main use cases....
Definition: IjkGridNoGeometryRepresentation.h:33
An IJK Grid parametric representation define the cell corner positions by means of parameters along t...
Definition: IjkGridParametricRepresentation.h:32
Defines a local depth coordinate system. The geometrical origin and location are defined by the eleme...
Definition: LocalDepth3dCrs.h:31
Defines a local time coordinate system. The geometrical origin and location are defined by the elemen...
Definition: LocalTime3dCrs.h:31
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition: MdDatum.h:32
The explicit description of the relationships between geologic features, such as rock features (e....
Definition: Model.h:35
A non sealed surface framework representation is collection of contact representations parts,...
Definition: NonSealedSurfaceFrameworkRepresentation.h:32
Defines a plane representation, which can be made up of multiple patches. Commonly represented featur...
Definition: PlaneSetRepresentation.h:34
A representation that consists of one or more node patches. Each node patch is an array of xyz coordi...
Definition: PointSetRepresentation.h:31
Proxy class for an points property.
Definition: PointsProperty.h:27
A representation made up of a single polyline or "polygonal chain", which may be closed or not....
Definition: PolylineRepresentation.h:38
A representation made up of a set of polylines or a set of polygonal chains (for more information,...
Definition: PolylineSetRepresentation.h:34
Proxy class for a property set. A property set is a set of properties collected together for a specif...
Definition: PropertySet.h:36
Proxy class for a representation set representation. This is the parent class of the framework repres...
Definition: RepresentationSetRepresentation.h:39
This class describes the organization of geological reservoir, i.e., of an interconnected network of ...
Definition: RockFluidOrganizationInterpretation.h:34
A type of rock fluid feature-interpretation , this class identifies a rock fluid feature by its phase...
Definition: RockFluidUnitInterpretation.h:30
A continuous portion of rock material bounded by definite rock boundaries. It is a volume object.
Definition: RockVolumeFeature.h:38
A collection of contact, which are a list of contact patches and their identities....
Definition: SealedSurfaceFrameworkRepresentation.h:31
A strict boundary representation (BREP), which represents the volume region by assembling together sh...
Definition: SealedVolumeFrameworkRepresentation.h:37
Defined by two lateral ordered dimensions: inline (lateral), crossline (lateral and orthogonal to the...
Definition: SeismicLatticeFeature.h:33
Frox class for a seismic line set feature. It is an unordered set of several seismic lines....
Definition: SeismicLineSetFeature.h:30
A seismic wellbore frame representation. This class cannot be inherited.
Definition: SeismicWellboreFrameRepresentation.h:27
Definition: ShotPointLineFeature.h:27
A global interpretation of the stratigraphy, which can be made up of several ranks of stratigraphic u...
Definition: StratigraphicColumn.h:35
A stratigraphic column rank interpretation is a global hierarchy containing an ordered list of strati...
Definition: StratigraphicColumnRankInterpretation.h:39
This class is a container for stratigraphic organizations described along a wellbore.
Definition: StratigraphicOccurrenceInterpretation.h:30
The interpretation of a stratigraphic unit.
Definition: StratigraphicUnitInterpretation.h:27
Specification of the vector field upon which the streamlines are based.
Definition: StreamlinesFeature.h:38
Representation of streamlines associated with a streamline feature and interpretation....
Definition: StreamlinesRepresentation.h:33
Defines an integer (key) to string (value) lookup table, for example, stores facies properties,...
Definition: StringTableLookup.h:32
One of the main types of RESQML organizations, this class gathers boundary interpretations (e....
Definition: StructuralOrganizationInterpretation.h:35
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition: SubRepresentation.h:38
A triangulated representation is a representation (most of time a surface) which is constituted by tr...
Definition: TriangulatedSetRepresentation.h:31
Unstructured grid representation characterized by a cell count, and potentially nothing else....
Definition: UnstructuredGridRepresentation.h:30
May refer to one of these: wellore, borehole or sidetrack.
Definition: WellboreFeature.h:46
Proxy class for a wellbore frame representation. A wellbore frame representation is a representation ...
Definition: WellboreFrameRepresentation.h:35
Contains the data describing an opinion of a borehole.This interpretation is relative to one particul...
Definition: WellboreInterpretation.h:33
A well log frame where each entry represents a well marker.
Definition: WellboreMarkerFrameRepresentation.h:30
Representation of a wellbore marker that is located along a wellbore trajectory, one for each MD valu...
Definition: WellboreMarker.h:41
Representation of a wellbore trajectory.
Definition: WellboreTrajectoryRepresentation.h:29
Definition: CategoricalProperty.h:31
Definition: 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