Fesapi 2.10.1.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
DataObjectRepository.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include <chrono>
22#include <numeric>
23#include <sstream>
24#include <unordered_map>
25
26#include "DataObjectReference.h"
27#include "../proxies/gsoap_uom1_0H.h"
28
29namespace EML2_NS
30{
31 class AbstractHdfProxy;
33 class Activity;
34 class ActivityTemplate;
36 class PropertyKind;
37 class TimeSeries;
38}
39
40namespace RESQML2_NS
41{
42 class AbstractFeature;
49 class BoundaryFeature;
52 class CmpLineFeature;
53 class CommentProperty;
56 class CulturalFeature;
57 class DiscreteColorMap;
58 class DiscreteProperty;
73 class MdDatum;
74 class Model;
78 class PointsProperty;
102 class WellboreFeature;
105 class WellboreMarker;
108}
109
110namespace RESQML2_0_1_NS
111{
112 class PropertyKindMapper;
114 class CommentProperty;
115 class ContinuousProperty;
117 class DiscreteProperty;
120 class GeobodyFeature;
121 class Horizon;
122 class PointsProperty;
123 class PropertyKind;
124 class PropertySet;
126 class SeismicLineFeature;
129}
130
131namespace WITSML2_NS
132{
133 class Trajectory;
134 class Well;
135 class Wellbore;
136}
137
138namespace WITSML2_1_NS
139{
140 class WellCompletion;
141 class WellboreCompletion;
142 class WellboreGeometry;
143 class WellboreMarker;
144 class Log;
145 class ChannelSet;
146 class Channel;
147}
148
149namespace PRODML2_2_NS
150{
151 class FluidSystem;
152 class FluidCharacterization;
153 class TimeSeriesData;
154}
155
156namespace COMMON_NS
157{
158 class AbstractObject;
159 class DataFeeder;
160 class HdfProxyFactory;
161
171 {
172 public:
173
175 DLL_IMPORT_OR_EXPORT DataObjectRepository();
176
184 DLL_IMPORT_OR_EXPORT explicit DataObjectRepository(const std::string& resourceDirectory);
185
187 DLL_IMPORT_OR_EXPORT virtual ~DataObjectRepository();
188
190 enum class openingMode : std::int8_t {
191 READ_ONLY = 0, // It is meant to open an existing file in read only mode. It throws an exception if the file does not exist.
192 READ_WRITE = 1, // It is meant to open a file in read and write mode. It creates the file if the file does not exist.
193 READ_WRITE_DO_NOT_CREATE = 2, // It is meant to open an existing file in read and write mode. It throws an exception if the file does not exist.
194 OVERWRITE = 3 // It is meant to open an existing file in read and write mode. It deletes the content of the file if the later does already exist.
195 };
196 enum CUD { CREATED = 0, UPDATED = 1, DELETED = 2 };
197
201 enum class EnergisticsStandard : std::int8_t {
202 RESQML2_0_1 = 0,
203 EML2_0 = 1,
204 EML2_3 = 2,
205 PRODML2_2 = 3,
206 RESQML2_2 = 4,
207 WITSML2_1 = 5
208 };
209
215 soap* getGsoapContext() const { return gsoapContext; }
216
220 DLL_IMPORT_OR_EXPORT void setDefaultStandard(EnergisticsStandard version) {
221 switch (version) {
222 case EnergisticsStandard::PRODML2_2:
223 defaultProdmlVersion = version; break;
224 case EnergisticsStandard::RESQML2_0_1:
225 case EnergisticsStandard::RESQML2_2:
226 defaultResqmlVersion = version; break;
227 case EnergisticsStandard::WITSML2_1:
228 defaultWitsmlVersion = version; break;
229 case EnergisticsStandard::EML2_0:
230 case EnergisticsStandard::EML2_3:
231 defaultEmlVersion = version; break;
232 default :
233 throw std::invalid_argument("Unrecognized Energistics standard.");
234 }
235 }
236
242 EnergisticsStandard getDefaultEmlVersion() const { return defaultEmlVersion; }
243
249 EnergisticsStandard getDefaultProdmlVersion() const { return defaultProdmlVersion; }
250
256 EnergisticsStandard getDefaultResqmlVersion() const { return defaultResqmlVersion; }
257
263 EnergisticsStandard getDefaultWitsmlVersion() const { return defaultWitsmlVersion; }
264
266 DLL_IMPORT_OR_EXPORT void clear();
267
279 DLL_IMPORT_OR_EXPORT void addRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
280
285 DLL_IMPORT_OR_EXPORT void registerDataFeeder(COMMON_NS::DataFeeder * dataFeeder);
286
287 /*
288 * Delete a relationship between two objects. Source and target of the relationship are defined
289 * by Energistics data model. Usually, the simplest is to look at Energistics UML diagrams.
290 * Another way is to rely on XSD/XML: explicit relationships are contained by the source objects
291 * and point to target objects.
292 *
293 * @exception std::invalid_argument if the source or target object is null.
294 *
295 * @param [in] source The source object of the relationship.
296 * @param [in] target The target object of the relationship.
297 */
298 DLL_IMPORT_OR_EXPORT void deleteRelationship(COMMON_NS::AbstractObject * source, COMMON_NS::AbstractObject * target);
299
305 DLL_IMPORT_OR_EXPORT void setHdfProxyFactory(COMMON_NS::HdfProxyFactory * factory);
306
310 const std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::DataObjectReference, CUD> >& getJournal() const { return journal; }
311
315 DLL_IMPORT_OR_EXPORT virtual void on_CreateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
316
320 DLL_IMPORT_OR_EXPORT virtual void on_UpdateDataObject(const std::vector<std::pair<std::chrono::time_point<std::chrono::system_clock>, COMMON_NS::AbstractObject*>>&) {}
321
326 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* resolvePartial(COMMON_NS::AbstractObject * partialObj);
327
331 DLL_IMPORT_OR_EXPORT const std::vector<COMMON_NS::AbstractObject*>& getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const { return forwardRels.at(dataObj); }
332
340 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getTargetObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
341 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
342
353 template <class valueType>
354 std::vector<valueType *> getTargetObjects(COMMON_NS::AbstractObject const * dataObj) const
355 {
356 return getObjsFilteredOnDatatype<valueType>(getTargetObjects(dataObj));
357 }
358
368 DLL_IMPORT_OR_EXPORT const std::vector< COMMON_NS::AbstractObject*>& getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const { return backwardRels.at(dataObj); }
369
377 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getSourceObjects(COMMON_NS::AbstractObject const * dataObj, size_t depth,
378 const std::vector<std::string>& filteredDatatypes = std::vector<std::string>()) const;
379
390 template <class valueType>
391 std::vector<valueType *> getSourceObjects(COMMON_NS::AbstractObject const * dataObj) const
392 {
393 const std::vector < COMMON_NS::AbstractObject*> & sourceObjects = getSourceObjects(dataObj);
394
395 return getObjsFilteredOnDatatype<valueType>(sourceObjects);
396 }
397
399 DLL_IMPORT_OR_EXPORT void updateAllRelationships();
400
411 bool addDataObject(COMMON_NS::AbstractObject* proxy);
412
423 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceDataObject(COMMON_NS::AbstractObject* proxy, bool replaceOnlyContent = false);
424
440 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* addOrReplaceGsoapProxy(const std::string & xml, const std::string & contentType, const std::string& uriSource);
441
452 DLL_IMPORT_OR_EXPORT uint64_t cascadeDeleteDataObject(COMMON_NS::AbstractObject* proxy);
453
460 const std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > & getDataObjects() const { return dataObjects; }
461
468 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType() const;
469
475 DLL_IMPORT_OR_EXPORT std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> > getDataObjectsGroupedByDataType(const std::string & filter) const;
476
484 DLL_IMPORT_OR_EXPORT std::vector<COMMON_NS::AbstractObject*> getDataObjectsByContentType(const std::string & contentType) const;
485
493 template <class valueType>
494 std::vector<valueType*> getDataObjects() const
495 {
496 std::vector<valueType*> result;
497
498 for (std::unordered_map< std::string, std::vector<COMMON_NS::AbstractObject*> >::const_iterator it = dataObjects.begin(); it != dataObjects.end(); ++it) {
499 for (size_t i = 0; i < it->second.size(); ++i) {
500 if (dynamic_cast<valueType*>(it->second[i]) != nullptr) {
501 result.push_back(static_cast<valueType*>(it->second[i]));
502 }
503 }
504 }
505
506 return result;
507 }
508
515 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* getDefaultCrs() const { return defaultCrs; }
516
523 DLL_IMPORT_OR_EXPORT void setDefaultCrs(EML2_NS::AbstractLocal3dCrs* crs) { defaultCrs = crs; }
524
531 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractHdfProxy* getDefaultHdfProxy() const { return defaultHdfProxy; }
532
539 DLL_IMPORT_OR_EXPORT void setDefaultHdfProxy(EML2_NS::AbstractHdfProxy* hdfProxy) { defaultHdfProxy = hdfProxy; }
540
544#define GETTER_DATAOBJECTS(returnedDataType, dataObjectName)\
545 DLL_IMPORT_OR_EXPORT std::vector<returnedDataType*> get##dataObjectName##Set() const;\
546 DLL_IMPORT_OR_EXPORT unsigned int get##dataObjectName##Count() const {\
547 const size_t result = get##dataObjectName##Set().size();\
548 if (result > (std::numeric_limits<unsigned int>::max)()) { throw std::range_error("The count is superior to unsigned int max"); }\
549 return static_cast<unsigned int>(result);\
550 }\
551 DLL_IMPORT_OR_EXPORT returnedDataType* get##dataObjectName(unsigned int index) const {\
552 std::vector<returnedDataType*> all = get##dataObjectName##Set();\
553 if (index >= all.size()) { throw std::out_of_range("The index is out of range"); }\
554 return all[index];\
555 }
556
557 GETTER_DATAOBJECTS(EML2_NS::AbstractHdfProxy, HdfProxy)
558 GETTER_DATAOBJECTS(EML2_NS::AbstractLocal3dCrs, Local3dCrs)
559 GETTER_DATAOBJECTS(EML2_NS::Activity, Activity)
560 GETTER_DATAOBJECTS(EML2_NS::ActivityTemplate, ActivityTemplate)
561 GETTER_DATAOBJECTS(EML2_NS::GraphicalInformationSet, GraphicalInformationSet)
562 GETTER_DATAOBJECTS(EML2_NS::PropertyKind, PropertyKind)
563 GETTER_DATAOBJECTS(EML2_NS::TimeSeries, TimeSeries)
564
565 GETTER_DATAOBJECTS(RESQML2_NS::AbstractSeismicLineFeature, SeismicLine)
566 GETTER_DATAOBJECTS(RESQML2_NS::AbstractIjkGridRepresentation, IjkGridRepresentation)
567 GETTER_DATAOBJECTS(RESQML2_NS::BlockedWellboreRepresentation, BlockedWellboreRepresentation)
568 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fault)
569 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Fracture)
570 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, GeobodyBoundary)
571 GETTER_DATAOBJECTS(RESQML2_NS::BoundaryFeature, Horizon)
572 GETTER_DATAOBJECTS(RESQML2_NS::CmpLineFeature, CmpLine)
573 GETTER_DATAOBJECTS(RESQML2_NS::CulturalFeature, Cultural)
574 GETTER_DATAOBJECTS(RESQML2_NS::DoubleTableLookup, DoubleTableLookup)
575 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, AllGrid2dRepresentation)
576 GETTER_DATAOBJECTS(RESQML2_NS::Grid2dRepresentation, HorizonGrid2dRepresentation)
577 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridParametricRepresentation, IjkGridParametricRepresentation)
578 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridExplicitRepresentation, IjkGridExplicitRepresentation)
579 GETTER_DATAOBJECTS(RESQML2_NS::IjkGridLatticeRepresentation, IjkSeismicCubeGridRepresentation)
580 GETTER_DATAOBJECTS(RESQML2_NS::Model, Model)
581 GETTER_DATAOBJECTS(RESQML2_NS::PointSetRepresentation, PointSetRepresentation)
582 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, AllPolylineRepresentation)
583 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, HorizonPolylineRepresentation)
584 GETTER_DATAOBJECTS(RESQML2_NS::PolylineRepresentation, SeismicLinePolylineRepresentation)
585 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, AllPolylineSetRepresentation)
586 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, HorizonPolylineSetRepresentation)
587 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FaultPolylineSetRepresentation)
588 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, FracturePolylineSetRepresentation)
589 GETTER_DATAOBJECTS(RESQML2_NS::PolylineSetRepresentation, CulturalPolylineSetRepresentation)
590 GETTER_DATAOBJECTS(RESQML2_NS::RepresentationSetRepresentation, RepresentationSetRepresentation)
591 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, RockVolume)
592 GETTER_DATAOBJECTS(RESQML2_NS::RockVolumeFeature, Geobody)
593 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLatticeFeature, SeismicLattice)
594 GETTER_DATAOBJECTS(RESQML2_NS::SeismicLineSetFeature, SeismicLineSet)
595 GETTER_DATAOBJECTS(RESQML2_NS::ShotPointLineFeature, ShotPointLine)
596 GETTER_DATAOBJECTS(RESQML2_NS::StratigraphicColumn, StratigraphicColumn)
597 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesFeature, StreamlinesFeature)
598 GETTER_DATAOBJECTS(RESQML2_NS::StreamlinesRepresentation, StreamlinesRepresentation)
599 GETTER_DATAOBJECTS(RESQML2_NS::SubRepresentation, SubRepresentation)
600 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, AllTriangulatedSetRepresentation)
601 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, UnclassifiedTriangulatedSetRepresentation)
602 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FaultTriangulatedSetRepresentation)
603 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, FractureTriangulatedSetRepresentation)
604 GETTER_DATAOBJECTS(RESQML2_NS::TriangulatedSetRepresentation, HorizonTriangulatedSetRepresentation)
605 GETTER_DATAOBJECTS(RESQML2_NS::UnstructuredGridRepresentation, UnstructuredGridRepresentation)
606 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, Wellbore)
607 GETTER_DATAOBJECTS(RESQML2_NS::WellboreTrajectoryRepresentation, WellboreTrajectoryRepresentation)
608 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFrameRepresentation, WellboreFrameRepresentation)
609
610 GETTER_DATAOBJECTS(RESQML2_0_1_NS::DeviationSurveyRepresentation, DeviationSurveyRepresentation)
611 GETTER_DATAOBJECTS(RESQML2_0_1_NS::PropertySet, PropertySet)
612
613 GETTER_DATAOBJECTS(WITSML2_NS::Well, WitsmlWell)
614 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, WitsmlWellbore)
615 GETTER_DATAOBJECTS(WITSML2_NS::Trajectory, WitsmlTrajectory)
616
617 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, WellCompletion)
618 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreCompletion, WellboreCompletion)
619 GETTER_DATAOBJECTS(WITSML2_1_NS::WellboreGeometry, WellboreGeometry)
620 GETTER_DATAOBJECTS(WITSML2_1_NS::Log, Log)
621 GETTER_DATAOBJECTS(WITSML2_1_NS::ChannelSet, ChannelSet)
622 GETTER_DATAOBJECTS(WITSML2_1_NS::Channel, Channel)
623
624 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidSystem, FluidSystem)
625 GETTER_DATAOBJECTS(PRODML2_2_NS::FluidCharacterization, FluidCharacterization)
626
627
637 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuid(const std::string & uuid) const;
638
652 template <class valueType>
653 valueType* getDataObjectByUuid(const std::string & uuid) const
654 {
655 COMMON_NS::AbstractObject* const result = getDataObjectByUuid(uuid);
656
657 if (result == nullptr) {
658 return nullptr;
659 }
660
661 if (dynamic_cast<valueType*>(result) != nullptr) {
662 return static_cast<valueType*>(result);
663 }
664
665 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
666 }
667
677 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const;
678
685 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject* getDataObjectByUuidAndVersion(const std::array<uint8_t, 16> & uuid, const std::string & version) const;
686
701 template <class valueType>
702 valueType* getDataObjectByUuidAndVersion(const std::string & uuid, const std::string & version) const
703 {
704 COMMON_NS::AbstractObject* const result = getDataObjectByUuidAndVersion(uuid, version);
705
706 if (result == nullptr) {
707 return nullptr;
708 }
709
710 if (dynamic_cast<valueType*>(result) != nullptr) {
711 return static_cast<valueType*>(result);
712 }
713
714 throw std::invalid_argument("The uuid " + uuid + " does not resolve to the expected datatype");
715 }
716
722 DLL_IMPORT_OR_EXPORT std::vector<std::string> getUuids() const;
723
727 COMMON_NS::AbstractObject* createPartial(const std::string & uuid, const std::string & title, const std::string & contentType, const std::string & version = "");
728
738 COMMON_NS::AbstractObject* createPartial(const DataObjectReference& dor);
739
754 template <class valueType>
755 valueType* createPartial(const std::string & guid, const std::string & title, const std::string & version = "")
756 {
757 gsoap_resqml2_0_1::eml20__DataObjectReference* dor = createDor(guid, title, version);
758 valueType* result = new valueType(dor);
759 dor->ContentType = result->getContentType();
760 addOrReplaceDataObject(result);
761 return result;
762 }
763
764
765 //************************************
766 //***** DataObject creation **********
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 EML2_NS::AbstractLocal3dCrs* 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, uint64_t projectedEpsgCode,
820 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented);
821
848 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* 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 EML2_NS::AbstractLocal3dCrs* 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, uint64_t projectedEpsgCode,
885 gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string& verticalUnknownReason, bool isUpOriented);
886
914 DLL_IMPORT_OR_EXPORT EML2_NS::AbstractLocal3dCrs* 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 EML2_NS::AbstractLocal3dCrs* 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, uint64_t 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 EML2_NS::AbstractLocal3dCrs* 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 EML2_NS::AbstractLocal3dCrs* 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, uint64_t 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 EML2_NS::AbstractLocal3dCrs* 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 EML2_NS::AbstractLocal3dCrs * locCrs, gsoap_eml2_3::eml23__ReferencePointKind 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, uint64_t rank);
1688
1706 DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInApparentDepth(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t 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_0_1_NS::WellboreTrajectoryRepresentation* createWellboreTrajectoryRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, RESQML2_0_1_NS::DeviationSurveyRepresentation* deviationSurvey);
1993
2013 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DeviationSurveyRepresentation* createDeviationSurveyRepresentation(RESQML2_NS::WellboreInterpretation* interp, const std::string& guid, const std::string& title, bool isFinal, RESQML2_NS::MdDatum* mdInfo);
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 EML2_NS::AbstractLocal3dCrs* 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
2475 DLL_IMPORT_OR_EXPORT RESQML2_NS::UnstructuredGridRepresentation* createUnstructuredGridRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2476 const std::string& guid, const std::string& title, const uint64_t & cellCount);
2477
2490 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(
2491 const std::string & guid, const std::string & title);
2492
2509 DLL_IMPORT_OR_EXPORT RESQML2_NS::SubRepresentation* createSubRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2510 const std::string & guid, const std::string & title);
2511
2524 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(const std::string & guid, const std::string & title);
2525
2542 DLL_IMPORT_OR_EXPORT RESQML2_NS::GridConnectionSetRepresentation* createGridConnectionSetRepresentation(RESQML2_NS::AbstractFeatureInterpretation* interp,
2543 const std::string & guid, const std::string & title);
2544
2559 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesFeature* createStreamlinesFeature(const std::string & guid, const std::string & title, uint64_t timeIndex, EML2_NS::TimeSeries* timeSeries);
2560
2575 DLL_IMPORT_OR_EXPORT RESQML2_NS::StreamlinesRepresentation* createStreamlinesRepresentation(RESQML2_NS::GenericFeatureInterpretation* interp, const std::string & guid, const std::string & title, uint64_t lineCount);
2576
2577 //************* PROPERTIES ***********
2578
2591 DLL_IMPORT_OR_EXPORT EML2_NS::TimeSeries* createTimeSeries(const std::string & guid, const std::string & title);
2592
2605 DLL_IMPORT_OR_EXPORT RESQML2_NS::DoubleTableLookup* createDoubleTableLookup(const std::string & guid, const std::string & title);
2606
2619 DLL_IMPORT_OR_EXPORT RESQML2_NS::StringTableLookup* createStringTableLookup(const std::string & guid, const std::string & title);
2620
2641 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2642 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2643
2664 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2665 const std::string & namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, EML2_NS::PropertyKind * parentPropType);
2666
2686 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2687 const std::string & namingSystem, const std::string & nonStandardUom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind);
2688
2706 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2707 const std::string & namingSystem, const std::string & nonStandardUom, bool isAbstract, EML2_NS::PropertyKind * parentPropType);
2708
2728 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string & guid, const std::string & title,
2729 gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2730
2750 DLL_IMPORT_OR_EXPORT EML2_NS::PropertyKind* createPropertyKind(const std::string& guid, const std::string& title,
2751 const std::string& quantityClass, bool isAbstract = false, EML2_NS::PropertyKind* parentPropertyKind = nullptr);
2752
2773 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertySet* createPropertySet(const std::string & guid, const std::string & title,
2774 bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind);
2775
2798 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2799 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2800
2822 DLL_IMPORT_OR_EXPORT RESQML2_NS::CommentProperty* createCommentProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2823 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2824
2852 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2853 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2854
2881 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2882 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, EML2_NS::PropertyKind * localPropType);
2883
2910 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2911 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2912
2938 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousProperty* createContinuousProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2939 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string & nonStandardUom, EML2_NS::PropertyKind * localPropType);
2940
2963 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2964 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
2965
2987 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteProperty* createDiscreteProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
2988 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind * localPropType);
2989
3014 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3015 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3016 RESQML2_NS::StringTableLookup* strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3017
3041 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3042 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3043 RESQML2_NS::DoubleTableLookup* dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind);
3044
3068 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3069 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3070 RESQML2_NS::StringTableLookup* strLookup, EML2_NS::PropertyKind * localPropType);
3071
3094 DLL_IMPORT_OR_EXPORT RESQML2_NS::CategoricalProperty* createCategoricalProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3095 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind,
3096 RESQML2_NS::DoubleTableLookup* dblLookup, EML2_NS::PropertyKind * localPropType);
3097
3120 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3121 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::AbstractLocal3dCrs* localCrs,
3122 gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind = gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length);
3123
3145 DLL_IMPORT_OR_EXPORT RESQML2_NS::PointsProperty* createPointsProperty(RESQML2_NS::AbstractRepresentation * rep, const std::string & guid, const std::string & title,
3146 unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::AbstractLocal3dCrs* localCrs,
3147 EML2_NS::PropertyKind * localPropType);
3148
3149 //************* ACTIVITIES ***********
3150
3163 DLL_IMPORT_OR_EXPORT EML2_NS::ActivityTemplate* createActivityTemplate(const std::string & guid, const std::string & title);
3164
3179 DLL_IMPORT_OR_EXPORT EML2_NS::Activity* createActivity(EML2_NS::ActivityTemplate* activityTemplate, const std::string & guid, const std::string & title);
3180
3181 //*************** WITSML *************
3182/*
3183 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModel* createToolErrorModel(
3184 const std::string & guid,
3185 const std::string & title,
3186 gsoap_eml2_3::witsml21__MisalignmentMode misalignmentMode);
3187
3188 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ToolErrorModelDictionary* createToolErrorModelDictionary(
3189 const std::string & guid,
3190 const std::string & title);
3191
3192 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTerm* createErrorTerm(
3193 const std::string & guid,
3194 const std::string & title,
3195 gsoap_eml2_3::witsml21__ErrorPropagationMode propagationMode,
3196 WITSML2_1_NS::WeightingFunction* weightingFunction);
3197
3198 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ErrorTermDictionary* createErrorTermDictionary(
3199 const std::string & guid,
3200 const std::string & title);
3201
3202 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunction* createWeightingFunction(
3203 const std::string & guid,
3204 const std::string & title,
3205 const std::string & depthFormula,
3206 const std::string & inclinationFormula,
3207 const std::string & azimuthFormula);
3208
3209 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WeightingFunctionDictionary* createWeightingFunctionDictionary(
3210 const std::string & guid,
3211 const std::string & title);
3212*/
3222 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3223 const std::string & title, bool isActive);
3224
3239 DLL_IMPORT_OR_EXPORT WITSML2_NS::Well* createWell(const std::string & guid,
3240 const std::string & title,
3241 bool isActive,
3242 gsoap_eml2_3::eml23__WellStatus statusWell,
3243 gsoap_eml2_3::witsml21__WellDirection directionWell
3244 );
3245
3260 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3261 const std::string & guid,
3262 const std::string & title,
3263 bool isActive);
3264
3282 DLL_IMPORT_OR_EXPORT WITSML2_NS::Wellbore* createWellbore(WITSML2_NS::Well* witsmlWell,
3283 const std::string & guid,
3284 const std::string & title,
3285 gsoap_eml2_3::eml23__WellStatus statusWellbore,
3286 bool isActive,
3287 bool achievedTD
3288 );
3289
3303 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellCompletion* createWellCompletion(WITSML2_NS::Well* witsmlWell,
3304 const std::string & guid,
3305 const std::string & title);
3306
3319 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreCompletion* createWellboreCompletion(WITSML2_NS::Wellbore* witsmlWellbore,
3320 const std::string & guid,
3321 const std::string & title);
3322
3339 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreGeometry* createWellboreGeometry(WITSML2_NS::Wellbore* witsmlWellbore,
3340 const std::string & guid,
3341 const std::string & title,
3342 bool isActive);
3343
3359 DLL_IMPORT_OR_EXPORT WITSML2_NS::Trajectory* createTrajectory(WITSML2_NS::Wellbore* witsmlWellbore,
3360 const std::string & guid,
3361 const std::string & title,
3362 bool isActive);
3363
3378 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Log* createLog(WITSML2_NS::Wellbore* witsmlWellbore,
3379 const std::string & guid,
3380 const std::string & title,
3381 bool isActive);
3382
3392 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::ChannelSet* createChannelSet(
3393 const std::string & guid,
3394 const std::string & title,
3395 bool isActive);
3396
3415 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::Channel* createChannel(EML2_NS::PropertyKind * propertyKind,
3416 const std::string & guid, const std::string & title,
3417 const std::string & mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind,
3418 bool isActive);
3419
3432 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(
3433 const std::string & guid, const std::string & title,
3434 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3435
3451 DLL_IMPORT_OR_EXPORT WITSML2_1_NS::WellboreMarker* createWellboreMarker(WITSML2_NS::Wellbore* witsmlWellbore,
3452 const std::string & guid, const std::string & title,
3453 double md, gsoap_eml2_3::eml23__LengthUom mdUom);
3454
3455 //*************** PRODML *************
3456
3474 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3475 const std::string & title,
3476 double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom,
3477 double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom,
3478 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3479 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3480
3495 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidSystem* createFluidSystem(const std::string & guid,
3496 const std::string & title,
3497 gsoap_eml2_3::eml23__ReferenceCondition referenceCondition,
3498 gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind,
3499 double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom);
3500
3511 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::FluidCharacterization* createFluidCharacterization(const std::string & guid, const std::string & title);
3512
3523 DLL_IMPORT_OR_EXPORT PRODML2_2_NS::TimeSeriesData* createTimeSeriesData(const std::string & guid, const std::string & title);
3524
3525 //************** EML2.3 ****************
3526
3537 DLL_IMPORT_OR_EXPORT EML2_NS::GraphicalInformationSet* createGraphicalInformationSet(const std::string & guid, const std::string & title);
3538
3549 DLL_IMPORT_OR_EXPORT RESQML2_NS::DiscreteColorMap* createDiscreteColorMap(const std::string& guid, const std::string& title);
3550
3563 DLL_IMPORT_OR_EXPORT RESQML2_NS::ContinuousColorMap* createContinuousColorMap(const std::string& guid, const std::string& title,
3564 gsoap_eml2_3::resqml22__InterpolationDomain interpolationDomain, gsoap_eml2_3::resqml22__InterpolationMethod interpolationMethod);
3565
3566 //***** STANDARD PROP KIND ***********
3567
3574 DLL_IMPORT_OR_EXPORT RESQML2_0_1_NS::PropertyKindMapper* getPropertyKindMapper() const { return propertyKindMapper.get(); }
3575
3576 //*************** WARNINGS *************
3577
3579 DLL_IMPORT_OR_EXPORT void clearWarnings() { warnings.clear(); }
3580
3586 DLL_IMPORT_OR_EXPORT void addWarning(const std::string & warning);
3587
3593 DLL_IMPORT_OR_EXPORT const std::vector<std::string> & getWarnings() const;
3594
3595 //*********** TRANSACTION ***********
3596
3602
3607
3608 gsoap_uom1_0::uom10__uomDictionary const* getUomDictionary() const { return uomDictionary; }
3609
3610 private:
3611
3616 std::unordered_map< std::string, std::vector< COMMON_NS::AbstractObject* > > dataObjects;
3617
3618 // Forward relationships
3619 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > forwardRels;
3620
3621 // Backward relationships. It is redundant with forward relationships but it allows more performance.
3622 std::unordered_map< COMMON_NS::AbstractObject const *, std::vector< COMMON_NS::AbstractObject * > > backwardRels;
3623
3624 soap* gsoapContext = soap_new2(SOAP_XML_STRICT | SOAP_C_UTFSTRING | SOAP_XML_IGNORENS, SOAP_XML_TREE | SOAP_XML_INDENT | SOAP_XML_CANONICAL | SOAP_C_UTFSTRING);
3625 gsoap_uom1_0::uom10__uomDictionary const* const uomDictionary;
3626
3627 std::vector<std::string> warnings;
3628
3629 std::unique_ptr<RESQML2_0_1_NS::PropertyKindMapper> propertyKindMapper;
3630
3631 EML2_NS::AbstractHdfProxy* defaultHdfProxy = nullptr;
3632 EML2_NS::AbstractLocal3dCrs* defaultCrs = nullptr;
3633
3634 std::vector<COMMON_NS::DataFeeder*> dataFeeders;
3635
3636 std::unique_ptr<COMMON_NS::HdfProxyFactory> hdfProxyFactory;
3637
3638 EnergisticsStandard defaultEmlVersion = EnergisticsStandard::EML2_0;
3639 EnergisticsStandard defaultProdmlVersion = EnergisticsStandard::PRODML2_2;
3640 EnergisticsStandard defaultResqmlVersion = EnergisticsStandard::RESQML2_0_1;
3641 EnergisticsStandard defaultWitsmlVersion = EnergisticsStandard::WITSML2_1;
3642
3643 std::vector< std::tuple<std::chrono::time_point<std::chrono::system_clock>, DataObjectReference, CUD> > journal;
3644
3648 void setGsoapStream(std::istream * inputStream) { gsoapContext->is = inputStream; }
3649
3655 COMMON_NS::AbstractObject* getResqml2_0_1WrapperFromGsoapContext(const std::string & resqmlContentType);
3656
3657 COMMON_NS::AbstractObject* getResqml2_2WrapperFromGsoapContext(const std::string& resqmlContentType);
3658 COMMON_NS::AbstractObject* getEml2_3WrapperFromGsoapContext(const std::string & datatype);
3659
3660 COMMON_NS::AbstractObject* getWitsml2_1WrapperFromGsoapContext(const std::string & datatype);
3661 COMMON_NS::AbstractObject* getProdml2_2WrapperFromGsoapContext(const std::string & datatype);
3662
3666 int getGsoapErrorCode() const;
3667
3671 std::string getGsoapErrorMessage() const;
3672
3673 template <class valueType>
3674 std::vector<valueType *> getObjsFilteredOnDatatype(const std::vector< COMMON_NS::AbstractObject * >& objs) const
3675 {
3676 std::vector<valueType *> result;
3677 for (size_t i = 0; i < objs.size(); ++i) {
3678 valueType * castedObj = dynamic_cast<valueType *>(objs[i]);
3679 if (castedObj != nullptr) {
3680 result.push_back(castedObj);
3681 }
3682 }
3683 return result;
3684 }
3685
3686 DLL_IMPORT_OR_EXPORT gsoap_resqml2_0_1::eml20__DataObjectReference* createDor(const std::string & guid, const std::string & title, const std::string & version);
3687
3688 void replaceDataObjectInRels(COMMON_NS::AbstractObject* dataObjToReplace, COMMON_NS::AbstractObject* newDataObj);
3689
3690 gsoap_uom1_0::uom10__uomDictionary* initUomDictionary(const std::string& resourceDirectory);
3691 };
3692}
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:49
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:50
A DataObjectRepository stores in memory all dataObjects. This is the in-memory container which holds ...
Definition DataObjectRepository.h:171
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::Grid2dRepresentation * createGrid2dRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
resqml2::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::MdDatum *mdInfo)
Creates a wellbore trajectory representation into this repository.
resqml2::AbstractIjkGridRepresentation * createPartialIjkGridRepresentation(const std::string &guid, const std::string &title)
resqml2::WellboreFrameRepresentation * createWellboreFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
Creates a wellbore frame representation into this repository.
witsml2_1::Channel * createChannel(eml2::PropertyKind *propertyKind, const std::string &guid, const std::string &title, const std::string &mnemonic, gsoap_eml2_3::eml23__UnitOfMeasure uom, gsoap_eml2_3::witsml21__ChannelDataKind dataKind, bool isActive)
Creates a channel into this repository.
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, const std::string &nonStandardUom, eml2::PropertyKind *localPropType)
const std::unordered_map< std::string, std::vector< common::AbstractObject * > > & getDataObjects() const
Definition DataObjectRepository.h:460
resqml2::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::AbstractLocal3dCrs *localCrs, eml2::PropertyKind *localPropType)
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(resqml2::AbstractOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
std::vector< valueType * > getTargetObjects(common::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:354
resqml2::AbstractIjkGridRepresentation * createPartialTruncatedIjkGridRepresentation(const std::string &guid, const std::string &title)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::array< uint8_t, 16 > &uuid, const std::string &version) const
eml2::AbstractHdfProxy * getDefaultHdfProxy() const
Definition DataObjectRepository.h:531
common::AbstractObject * addOrReplaceDataObject(common::AbstractObject *proxy, bool replaceOnlyContent=false)
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
resqml2_0_1::WellboreTrajectoryRepresentation * createWellboreTrajectoryRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2_0_1::DeviationSurveyRepresentation *deviationSurvey)
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive)
const std::vector< common::AbstractObject * > & getSourceObjects(common::AbstractObject const *dataObj) const
Definition DataObjectRepository.h:368
const std::vector< std::tuple< std::chrono::time_point< std::chrono::system_clock >, common::DataObjectReference, CUD > > & getJournal() const
Definition DataObjectRepository.h:310
resqml2::BlockedWellboreRepresentation * createBlockedWellboreRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
Creates a blocked wellbore representation into this repository.
std::vector< common::AbstractObject * > getDataObjectsByContentType(const std::string &contentType) const
resqml2::Model * createModel(const std::string &guid, const std::string &title)
prodml2_2::FluidCharacterization * createFluidCharacterization(const std::string &guid, const std::string &title)
resqml2::WellboreInterpretation * createWellboreInterpretation(resqml2::WellboreFeature *wellbore, const std::string &guid, const std::string &title, bool isDrilled)
Creates a wellbore interpretation into this repository.
resqml2::BoundaryFeature * createGeobodyBoundaryFeature(const std::string &guid, const std::string &title)
void registerDataFeeder(common::DataFeeder *dataFeeder)
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
resqml2_0_1::RockFluidUnitFeature * createRockFluidUnit(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__Phase phase, resqml2_0_1::FluidBoundaryFeature *fluidBoundaryTop, resqml2_0_1::FluidBoundaryFeature *fluidBoundaryBottom)
common::AbstractObject * createPartial(const std::string &uuid, const std::string &title, const std::string &contentType, const std::string &version="")
common::AbstractObject * resolvePartial(common::AbstractObject *partialObj)
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
WITSML2_NS::Trajectory * createTrajectory(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore trajectory into this repository.
resqml2::BoundaryFeatureInterpretation * createBoundaryFeatureInterpretation(resqml2::BoundaryFeature *feature, const std::string &guid, const std::string &title)
resqml2::SubRepresentation * createSubRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
witsml2_1::Log * createLog(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore log into this repository.
resqml2_0_1::SeismicLineFeature * createSeismicLine(const std::string &guid, const std::string &title, int traceIndexIncrement, unsigned int firstTraceIndex, unsigned int traceCount)
void setHdfProxyFactory(common::HdfProxyFactory *factory)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, bool isAbstract, eml2::PropertyKind *parentPropType)
resqml2::RockFluidOrganizationInterpretation * createRockFluidOrganizationInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a rock fluid organization interpretation into this repository.
void addRelationship(common::AbstractObject *source, common::AbstractObject *target)
void addWarning(const std::string &warning)
eml2::ActivityTemplate * createActivityTemplate(const std::string &guid, const std::string &title)
Creates an activity template into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by apparent depth into this repository.
witsml2_1::WellboreMarker * createWellboreMarker(const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::SealedSurfaceFrameworkRepresentation * createSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a sealed surface framework representation into this repository.
resqml2::IjkGridExplicitRepresentation * createIjkGridExplicitRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid explicit representation into this repository.
resqml2_0_1::FluidBoundaryFeature * createFluidBoundaryFeature(const std::string &guid, const std::string &title, gsoap_resqml2_0_1::resqml20__FluidContact fluidContact)
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, eml2::PropertyKind *localPropType)
std::vector< common::AbstractObject * > getSourceObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
resqml2::StreamlinesRepresentation * createStreamlinesRepresentation(resqml2::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount)
Creates a streamlines representation into this repository.
resqml2::Model * createStratigraphicModel(const std::string &guid, const std::string &title)
uint64_t cascadeDeleteDataObject(common::AbstractObject *proxy)
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, 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::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:331
common::AbstractObject * addOrReplaceGsoapProxy(const std::string &xml, const std::string &contentType, const std::string &uriSource)
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__WellStatus statusWellbore, bool isActive, bool achievedTD)
Creates a wellbore into this repository.
witsml2_1::WellboreCompletion * createWellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
resqml2::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, eml2::PropertyKind *localPropType)
resqml2::IjkGridLatticeRepresentation * createIjkGridLatticeRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount)
Creates an ijk grid lattice representation into this repository.
resqml2::SealedVolumeFrameworkRepresentation * createSealedVolumeFrameworkRepresentation(resqml2::StratigraphicColumnRankInterpretation *interp, const std::string &guid, const std::string &title, resqml2::SealedSurfaceFrameworkRepresentation *ssf)
Creates a sealed volume framework representation into this repository.
DataObjectRepository * newTransactionRepo()
std::vector< valueType * > getDataObjects() const
Definition DataObjectRepository.h:494
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:215
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:320
resqml2_0_1::PropertyKindMapper * getPropertyKindMapper() const
Definition DataObjectRepository.h:3574
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:702
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__ReferenceCondition referenceCondition, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
std::unordered_map< std::string, std::vector< common::AbstractObject * > > getDataObjectsGroupedByDataType(const std::string &filter) const
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:315
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
witsml2_1::WellboreGeometry * createWellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore geometry into this repository. It is used to capture information about the configu...
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is identified by an EPSG code for its projected part and which is ...
resqml2::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, const std::string &nonStandardUom, bool isAbstract, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind parentEnergisticsPropertyKind)
EnergisticsStandard getDefaultResqmlVersion() const
Definition DataObjectRepository.h:256
resqml2::MdDatum * createMdDatum(const std::string &guid, const std::string &title, eml2::AbstractLocal3dCrs *locCrs, gsoap_eml2_3::eml23__ReferencePointKind originKind, double referenceLocationOrdinal1, double referenceLocationOrdinal2, double referenceLocationOrdinal3)
Creates a measured depth (MD) datum into this repository.
prodml2_2::FluidSystem * createFluidSystem(const std::string &guid, const std::string &title, double temperatureValue, gsoap_eml2_3::eml23__ThermodynamicTemperatureUom temperatureUom, double pressureValue, gsoap_eml2_3::eml23__PressureUom pressureUom, gsoap_eml2_3::prodml22__ReservoirFluidKind reservoirFluidKind, double gasOilRatio, gsoap_eml2_3::eml23__VolumePerVolumeUom gasOilRatioUom)
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:220
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.
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &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::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::RockVolumeFeature * createStratigraphicUnitFeature(const std::string &guid, const std::string &title)
const std::vector< std::string > & getWarnings() const
resqml2::BoundaryFeature * createBoundaryFeature(const std::string &guid, const std::string &title)
Creates a boundary feature into this repository.
common::AbstractObject * createPartial(const DataObjectReference &dor)
resqml2::SeismicLatticeFeature * createSeismicLattice(const std::string &guid, const std::string &title, int inlineIncrement, int crosslineIncrement, unsigned int originInline, unsigned int originCrossline, unsigned int inlineCount, unsigned int crosslineCount)
Creates a seismic lattice into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(const std::string &guid, const std::string &title)
Creates a polyline set representation into this repository.
resqml2::WellboreMarkerFrameRepresentation * createWellboreMarkerFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj)
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:391
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
resqml2::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, eml2::PropertyKind *localPropType)
WITSML2_NS::Wellbore * createWellbore(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title, bool isActive)
Creates a wellbore into this repository.
resqml2::TriangulatedSetRepresentation * createTriangulatedSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a triangulated set representation into this repository.
resqml2_0_1::PropertySet * createPropertySet(const std::string &guid, const std::string &title, bool hasMultipleRealizations, bool hasSinglePropertyKind, gsoap_resqml2_0_1::resqml20__TimeSetKind timeSetKind)
Creates a property set into this repository.
EnergisticsStandard
Definition DataObjectRepository.h:201
WITSML2_NS::Well * createWell(const std::string &guid, const std::string &title, bool isActive, gsoap_eml2_3::eml23__WellStatus statusWell, gsoap_eml2_3::witsml21__WellDirection directionWell)
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::DoubleTableLookup *dblLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local time 3d CRS which unknown for its projected part and which is identified by an EPSG c...
resqml2_0_1::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::PointSetRepresentation * createPointSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a point set representation into this repository.
resqml2_0_1::PointsProperty * createPointsProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::AbstractLocal3dCrs *localCrs, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind=gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind::length)
resqml2::PolylineRepresentation * createPolylineRepresentation(const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
witsml2_1::ChannelSet * createChannelSet(const std::string &guid, const std::string &title, bool isActive)
eml2::AbstractLocal3dCrs * createLocalTime3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__TimeUom timeUom, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &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.
eml2::AbstractLocal3dCrs * getDefaultCrs() const
Definition DataObjectRepository.h:515
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by age into this repository.
resqml2::GeobodyBoundaryInterpretation * createGeobodyBoundaryInterpretation(resqml2::BoundaryFeature *geobodyBoundary, const std::string &guid, const std::string &title)
Creates a geobody boundary interpretation into this repository.
resqml2_0_1::CategoricalProperty * createCategoricalProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, resqml2::StringTableLookup *strLookup, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
void setDefaultCrs(eml2::AbstractLocal3dCrs *crs)
Definition DataObjectRepository.h:523
resqml2::FaultInterpretation * createFaultInterpretation(resqml2::BoundaryFeature *fault, const std::string &guid, const std::string &title)
Creates a fault interpretation into this repository.
resqml2::SeismicWellboreFrameRepresentation * createSeismicWellboreFrameRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, resqml2::WellboreTrajectoryRepresentation *traj, double seismicReferenceDatum, double weatheringVelocity, eml2::AbstractLocal3dCrs *crs)
Creates a seismic wellbore frame representation into this repository.
resqml2_0_1::ContinuousProperty * createContinuousProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, std::string nonStandardUom, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::CulturalFeature * createCultural(const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__CulturalFeatureKind kind=gsoap_eml2_3::resqml22__CulturalFeatureKind::project_x0020boundaries)
Creates a cultural into this repository.
resqml2::ShotPointLineFeature * createShotPointLine(const std::string &guid, const std::string &title)
resqml2::Model * createRockFluidModel(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumnRankInterpretation * createStratigraphicColumnRankInterpretationInApparentDepth(resqml2::Model *orgFeat, const std::string &guid, const std::string &title, uint64_t rank)
Creates a stratigraphic column rank interpretation ordered by apparent depth into this repository.
valueType * createPartial(const std::string &guid, const std::string &title, const std::string &version="")
Definition DataObjectRepository.h:755
EnergisticsStandard getDefaultWitsmlVersion() const
Definition DataObjectRepository.h:263
resqml2::WellboreMarker * createWellboreMarker(resqml2::WellboreMarkerFrameRepresentation *wellboreMarkerFrame, const std::string &guid, const std::string &title)
Creates a wellbore marker within a given wellbore marker frame representation.
DataObjectRepository(const std::string &resourceDirectory)
common::AbstractObject * getDataObjectByUuidAndVersion(const std::string &uuid, const std::string &version) const
EnergisticsStandard getDefaultProdmlVersion() const
Definition DataObjectRepository.h:249
resqml2::StreamlinesFeature * createStreamlinesFeature(const std::string &guid, const std::string &title, uint64_t timeIndex, eml2::TimeSeries *timeSeries)
Creates a streamlines feature into this repository.
resqml2::CmpLineFeature * createCmpLine(const std::string &guid, const std::string &title, int nearestShotPointIndicesIncrement, int firstNearestShotPointIndex, unsigned int nearestShotPointCount)
Creates a CMP line into this repository.
resqml2::RepresentationSetRepresentation * createRepresentationSetRepresentation(const std::string &guid, const std::string &title)
Creates a representation set representation into this repository.
resqml2::RockVolumeFeature * createRockVolumeFeature(const std::string &guid, const std::string &title)
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::SeismicLineSetFeature * createSeismicLineSet(const std::string &guid, const std::string &title)
Creates a seismic line set into this repository.
witsml2_1::WellCompletion * createWellCompletion(WITSML2_NS::Well *witsmlWell, const std::string &guid, const std::string &title)
Creates a well completion into this repository.
resqml2::Model * createEarthModel(const std::string &guid, const std::string &title)
resqml2_0_1::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, const std::string &namingSystem, gsoap_resqml2_0_1::resqml20__ResqmlUom uom, bool isAbstract, eml2::PropertyKind *parentPropType)
Creates a property kind into this repository.
resqml2::SubRepresentation * createSubRepresentation(const std::string &guid, const std::string &title)
Creates a sub-representation into this repository.
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, bool isClosed=false)
Creates a polyline representation into this repository.
resqml2::RockVolumeFeature * createGeobodyFeature(const std::string &guid, const std::string &title)
Creates a geobody feature into this repository.
resqml2::DoubleTableLookup * createDoubleTableLookup(const std::string &guid, const std::string &title)
Creates a double table lookup into this repository.
resqml2::UnstructuredGridRepresentation * createUnstructuredGridRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, const uint64_t &cellCount)
Creates an unstructured grid representation into this repository.
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:242
resqml2::FluidBoundaryInterpretation * createFluidBoundaryInterpretation(resqml2::BoundaryFeature *boundary, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__FluidContact fluidContact)
Creates a fluid Boundary interpretation into this repository.
resqml2::GeobodyInterpretation * createGeobodyInterpretation(resqml2::RockVolumeFeature *geobody, const std::string &guid, const std::string &title)
Creates a geobody interpretation into this repository.
resqml2::EarthModelInterpretation * createEarthModelInterpretation(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates an earth model interpretation into this repository.
resqml2::IjkGridParametricRepresentation * createIjkGridParametricRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid parametric representation into this repository.
eml2::TimeSeries * createTimeSeries(const std::string &guid, const std::string &title)
Creates a time series into this repository.
resqml2::DiscreteProperty * createDiscreteProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, eml2::PropertyKind *localPropType)
witsml2_1::WellboreMarker * createWellboreMarker(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, double md, gsoap_eml2_3::eml23__LengthUom mdUom)
Creates a WITSML2.0 Wellbore Marker into this repository.
resqml2::StructuralOrganizationInterpretation * createStructuralOrganizationInterpretationInAge(resqml2::Model *orgFeat, const std::string &guid, const std::string &title)
Creates a structural organization interpretation ordered by age into this repository.
resqml2_0_1::DeviationSurveyRepresentation * createDeviationSurveyRepresentation(resqml2::WellboreInterpretation *interp, const std::string &guid, const std::string &title, bool isFinal, resqml2::MdDatum *mdInfo)
Creates a deviation survey representation into this repository.
void setDefaultHdfProxy(eml2::AbstractHdfProxy *hdfProxy)
Definition DataObjectRepository.h:539
resqml2::GenericFeatureInterpretation * createGenericFeatureInterpretation(resqml2::AbstractFeature *feature, const std::string &guid, const std::string &title)
Creates a generic feature interpretation into this repository.
std::vector< common::AbstractObject * > getTargetObjects(common::AbstractObject const *dataObj, size_t depth, const std::vector< std::string > &filteredDatatypes=std::vector< std::string >()) const
void commitTransactionRepo(DataObjectRepository *transactionRepo)
resqml2::IjkGridNoGeometryRepresentation * createIjkGridNoGeometryRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr)
Creates an ijk grid with no geometry representation into this repository.
openingMode
Definition DataObjectRepository.h:190
resqml2::DiscreteColorMap * createDiscreteColorMap(const std::string &guid, const std::string &title)
resqml2::WellboreFeature * createWellboreFeature(const std::string &guid, const std::string &title)
Creates a wellbore feature into this repository.
resqml2::GridConnectionSetRepresentation * createGridConnectionSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title)
Creates a grid connection set representation into this repository.
resqml2::PolylineSetRepresentation * createPolylineSetRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind)
Creates a polyline set representation into this repository.
resqml2::StringTableLookup * createStringTableLookup(const std::string &guid, const std::string &title)
Creates a string table lookup into this repository.
resqml2_0_1::CommentProperty * createCommentProperty(resqml2::AbstractRepresentation *rep, const std::string &guid, const std::string &title, unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, gsoap_resqml2_0_1::resqml20__ResqmlPropertyKind energisticsPropertyKind)
resqml2::BoundaryFeature * createHorizon(const std::string &guid, const std::string &title)
resqml2::StratigraphicColumn * createStratigraphicColumn(const std::string &guid, const std::string &title)
Creates stratigraphic column into this repository.
prodml2_2::TimeSeriesData * createTimeSeriesData(const std::string &guid, const std::string &title)
eml2::AbstractHdfProxy * createHdfProxy(const std::string &guid, const std::string &title, const std::string &packageDirAbsolutePath, const std::string &filePath, DataObjectRepository::openingMode hdfPermissionAccess)
Creates a non parallel access to an HDF5 file for writing to it. Resulting HDF5 file proxy is stored ...
eml2::PropertyKind * createPropertyKind(const std::string &guid, const std::string &title, gsoap_eml2_3::eml23__QuantityClassKind quantityClass, bool isAbstract=false, eml2::PropertyKind *parentPropertyKind=nullptr)
Creates a property kind starting with EML2.1 version into this repository. Don't use it at all if you...
eml2::Activity * createActivity(eml2::ActivityTemplate *activityTemplate, const std::string &guid, const std::string &title)
Creates an activity into this repository.
resqml2::BoundaryFeature * createFault(const std::string &guid, const std::string &title)
std::vector< std::string > getUuids() const
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &projectedUnknownReason, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, const std::string &verticalUnknownReason, bool isUpOriented)
Creates a local depth 3d CRS which is fully unknown. Resulting local depth 3d CRS is stored into this...
resqml2::NonSealedSurfaceFrameworkRepresentation * createNonSealedSurfaceFrameworkRepresentation(resqml2::StructuralOrganizationInterpretation *interp, const std::string &guid, const std::string &title)
Creates a non sealed surface framework representation into this repository.
resqml2::BoundaryFeature * createFracture(const std::string &guid, const std::string &title)
void clearWarnings()
Definition DataObjectRepository.h:3579
resqml2::PolylineRepresentation * createPolylineRepresentation(resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, gsoap_eml2_3::resqml22__LineRole roleKind, bool isClosed=false)
Creates a polyline representation into this repository.
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, uint64_t projectedEpsgCode, gsoap_resqml2_0_1::eml20__LengthUom verticalUom, unsigned int verticalEpsgCode, bool isUpOriented)
Creates a local depth 3d CRS which is fully identified by means of an EPSG code. Resulting local dept...
eml2::AbstractLocal3dCrs * createLocalDepth3dCrs(const std::string &guid, const std::string &title, double originOrdinal1, double originOrdinal2, double originOrdinal3, double arealRotation, gsoap_resqml2_0_1::eml20__LengthUom projectedUom, const std::string &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...
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition AbstractHdfProxy.h:37
Proxy class for an abstract local 3D coordinate reference system (CRS).
Definition AbstractLocal3dCrs.h:27
Instance of a given activity.
Definition Activity.h:29
Description of one type of activity.
Definition ActivityTemplate.h:29
Proxy class for handling the graphical information of data objects.
Definition GraphicalInformationSet.h:27
Property kinds carry the semantics of property values. They are used to identify if the values are,...
Definition PropertyKind.h:32
Proxy class for time series. Stores an ordered list of times, for example, for time- dependent proper...
Definition TimeSeries.h:36
Proxy class for an abstract feature.
Definition AbstractFeature.h:31
Proxy class for an abstract feature interpretation.
Definition AbstractFeatureInterpretation.h:29
Proxy class for an abstract IJK grid representation. This class is semantically abstract....
Definition AbstractIjkGridRepresentation.h:34
This class defines the behaviour of all RESQML2 organizations.
Definition AbstractOrganizationInterpretation.h:29
Proxy class for an abstract representation.
Definition AbstractRepresentation.h:38
Proxy class for an abstract seismic line feature. Defined by one lateral dimension: trace (lateral)....
Definition AbstractSeismicLineFeature.h:34
A blocked wellbore representation. This is the information that allows you to locate,...
Definition BlockedWellboreRepresentation.h:33
A boundary feature. This is an interface between two geological objects, such as horizons and faults....
Definition BoundaryFeature.h:30
A boundary feature interpretation. This is the main class for data describing an opinion of a surface...
Definition BoundaryFeatureInterpretation.h:35
Proxy class for a categorical property. It contains discrete integers. This type of property is assoc...
Definition CategoricalProperty.h:35
Definition CmpLineFeature.h:27
Proxy class for a comment property. It is used to capture comments or annotations associated with a g...
Definition CommentProperty.h:33
Map of continuous colors. This class cannot be inherited.
Definition ContinuousColorMap.h:27
Proxy class for a continuous property. Most common type of property used for storing rock or fluid at...
Definition ContinuousProperty.h:38
A cultural feature. It identifies a frontier or boundary in the earth model that is not a geological ...
Definition CulturalFeature.h:31
Map of discrete colors. This class cannot be inherited.
Definition DiscreteColorMap.h:27
Proxy class for a discrete property. Such property contains discrete integer values; typically used t...
Definition DiscreteProperty.h:34
Defines a function for table lookups. For example, used for linear interpolation, such as PVT.
Definition DoubleTableLookup.h:33
This class is a container for stratigraphic, structural and rock fluid organization interpretations t...
Definition EarthModelInterpretation.h:37
A fault interpretation. This type of boundary feature contains the data describing an opinion about t...
Definition FaultInterpretation.h:30
Definition FluidBoundaryInterpretation.h:26
An interpretation of a feature that is not specialized. For example, use it when the specialized type...
Definition GenericFeatureInterpretation.h:30
A type of boundary feature, this class identifies if the boundary is a geobody and the type of the bo...
Definition GeobodyBoundaryInterpretation.h:30
A type of rock feature, this class identifies if a rock feature is a geobody with any qualifications ...
Definition GeobodyInterpretation.h:32
A 2d grid representation.
Definition Grid2dRepresentation.h:27
Proxy class for a grid connection set representation. This representation consists of a list of conne...
Definition GridConnectionSetRepresentation.h:51
An interpretation of a horizon, which optionally provides stratigraphic information.
Definition HorizonInterpretation.h:27
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates....
Definition IjkGridExplicitRepresentation.h:31
The main use case for this class is the representation of a seismic cubes. I is the fastest axis and ...
Definition IjkGridLatticeRepresentation.h:32
This class is dedicated to IJK grids with undefined IjkGridGeometry. There are two main use cases....
Definition IjkGridNoGeometryRepresentation.h:33
An IJK Grid parametric representation define the cell corner positions by means of parameters along t...
Definition IjkGridParametricRepresentation.h:32
Proxy class for a MD datum. An MD datum specifies the location of the measured depth = 0 reference po...
Definition MdDatum.h:37
The explicit description of the relationships between geologic features, such as rock features (e....
Definition Model.h:35
A non sealed surface framework representation is collection of contact representations parts,...
Definition NonSealedSurfaceFrameworkRepresentation.h:32
Defines a plane representation, which can be made up of multiple patches. Commonly represented featur...
Definition PlaneSetRepresentation.h:34
A representation that consists of one or more node patches. Each node patch is an array of xyz coordi...
Definition PointSetRepresentation.h:31
Proxy class for an points property.
Definition PointsProperty.h:27
A representation made up of a single polyline or "polygonal chain", which may be closed or not....
Definition PolylineRepresentation.h:38
A representation made up of a set of polylines or a set of polygonal chains (for more information,...
Definition PolylineSetRepresentation.h:34
Proxy class for a representation set representation. This is the parent class of the framework repres...
Definition RepresentationSetRepresentation.h:39
This class describes the organization of geological reservoir, i.e., of an interconnected network of ...
Definition RockFluidOrganizationInterpretation.h:34
A type of rock fluid feature-interpretation , this class identifies a rock fluid feature by its phase...
Definition RockFluidUnitInterpretation.h:30
A continuous portion of rock material bounded by definite rock boundaries. It is a volume object.
Definition RockVolumeFeature.h:38
A collection of contact, which are a list of contact patches and their identities....
Definition SealedSurfaceFrameworkRepresentation.h:31
A strict boundary representation (BREP), which represents the volume region by assembling together sh...
Definition SealedVolumeFrameworkRepresentation.h:37
Defined by two lateral ordered dimensions: inline (lateral), crossline (lateral and orthogonal to the...
Definition SeismicLatticeFeature.h:33
Frox class for a seismic line set feature. It is an unordered set of several seismic lines....
Definition SeismicLineSetFeature.h:30
A seismic wellbore frame representation. This class cannot be inherited.
Definition SeismicWellboreFrameRepresentation.h:27
Definition ShotPointLineFeature.h:27
A global interpretation of the stratigraphy, which can be made up of several ranks of stratigraphic u...
Definition StratigraphicColumn.h:35
A stratigraphic column rank interpretation is a global hierarchy containing an ordered list of strati...
Definition StratigraphicColumnRankInterpretation.h:39
This class is a container for stratigraphic organizations described along a wellbore.
Definition StratigraphicOccurrenceInterpretation.h:30
The interpretation of a stratigraphic unit.
Definition StratigraphicUnitInterpretation.h:27
Specification of the vector field upon which the streamlines are based.
Definition StreamlinesFeature.h:38
Representation of streamlines associated with a streamline feature and interpretation....
Definition StreamlinesRepresentation.h:33
Defines an integer (key) to string (value) lookup table, for example, stores facies properties,...
Definition StringTableLookup.h:32
One of the main types of RESQML organizations, this class gathers boundary interpretations (e....
Definition StructuralOrganizationInterpretation.h:35
Proxy class for a sub-representation. A sub representation is an ordered list of indexable elements a...
Definition SubRepresentation.h:38
A triangulated representation is a representation (most of time a surface) which is constituted by tr...
Definition TriangulatedSetRepresentation.h:31
Unstructured grid representation characterized by a cell count, and potentially nothing else....
Definition UnstructuredGridRepresentation.h:30
May refer to one of these: wellbore, borehole or sidetrack.
Definition WellboreFeature.h:46
Proxy class for a wellbore frame representation. A wellbore frame representation is a representation ...
Definition WellboreFrameRepresentation.h:35
Contains the data describing an opinion of a borehole.This interpretation is relative to one particul...
Definition WellboreInterpretation.h:34
A well log frame where each entry represents a well marker.
Definition WellboreMarkerFrameRepresentation.h:30
Representation of a wellbore marker that is located along a wellbore trajectory, one for each MD valu...
Definition WellboreMarker.h:41
Representation of a wellbore trajectory.
Definition WellboreTrajectoryRepresentation.h:29
Definition CategoricalProperty.h:31
Definition CommentProperty.h:29
Definition ContinuousProperty.h:37
A deviation survey representation. It Specifies the station data from a deviation survey.
Definition DeviationSurveyRepresentation.h:41
Definition DiscreteProperty.h:31
Definition FluidBoundaryFeature.h:27
Definition GeneticBoundaryFeature.h:27
Definition GeobodyFeature.h:27
Definition Horizon.h:27
Proxy class for an points property.
Definition PointsProperty.h:27
Definition PropertyKind.h:28
Definition PropertyKindMapper.h:29
Proxy class for a property set. A property set is a set of properties collected together for a specif...
Definition PropertySet.h:39
Definition RockFluidUnitFeature.h:32
Definition SeismicLineFeature.h:27
Definition TectonicBoundaryFeature.h:27
Definition WellboreTrajectoryRepresentation.h:27
Definition Channel.h:29
Definition ChannelSet.h:30
Definition Log.h:27
Definition WellCompletion.h:31
Definition WellboreCompletion.h:27
Definition WellboreGeometry.h:33
Definition WellboreMarker.h:29