Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
WellboreGeometry.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
10http://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 "../witsml2/WellboreObject.h"
22
23#include "../MacroDefinitions.h"
24
25namespace WITSML2_1_NS
26{
33 {
34 public:
35
43 DLL_IMPORT_OR_EXPORT WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : WITSML2_NS::WellboreObject(partialObject) {}
44
56 const std::string & guid,
57 const std::string & title,
58 bool isActive);
59
65 WellboreGeometry(gsoap_eml2_3::witsml21__WellboreGeometry* fromGsoap) : WITSML2_NS::WellboreObject(fromGsoap) {}
66
68 ~WellboreGeometry() = default;
69
70 DLL_IMPORT_OR_EXPORT COMMON_NS::DataObjectReference getWellboreDor() const final;
71 DLL_IMPORT_OR_EXPORT void setWellbore(WITSML2_NS::Wellbore* witsmlWellbore) final;
72
73 //***************************************
74 //************** SECTION ****************
75 //***************************************
76
77 // Mandatory
78 GETTER_AND_SETTER_GENERIC_ATTRIBUTE_IN_VECTOR(std::string, WellboreGeometrySection, uid)
79 GETTER_AND_SETTER_GENERIC_ATTRIBUTE_IN_VECTOR(time_t, WellboreGeometrySection, Creation)
80 GETTER_AND_SETTER_GENERIC_ATTRIBUTE_IN_VECTOR(time_t, WellboreGeometrySection, LastUpdate)
81
82 // Optional bool
83 GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(bool, WellboreGeometrySection, CurveConductor)
84
85 // Optional double
86 GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(double, WellboreGeometrySection, FactFric)
87
88 // Optional string
89 GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(std::string, WellboreGeometrySection, Grade)
90
91 // Optional enum
92 GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_3::witsml21__HoleCasingType, WellboreGeometrySection, TypeHoleCasing)
93
94 // Optional Length Measure
95 GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, IdSection, gsoap_eml2_3::eml23__LengthUom)
96 GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, OdSection, gsoap_eml2_3::eml23__LengthUom)
97 GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, DiaDrift, gsoap_eml2_3::eml23__LengthUom)
98
99 // Optional Mass per Length Measure
100 GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, WtPerLen, gsoap_eml2_3::eml23__MassPerLengthUom)
101
109 DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionMdIntervalTop(uint64_t index) const;
110
118 DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionMdIntervalBase(uint64_t index) const;
119
127 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__LengthUom getWellboreGeometrySectionMdIntervalUom(uint64_t index) const;
128
138 DLL_IMPORT_OR_EXPORT void setWellboreGeometrySectionTvdInterval(uint64_t index, double top, double base, gsoap_eml2_3::eml23__LengthUom uom);
139
147 DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionTvdIntervalTop(uint64_t index) const;
148
156 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__LengthUom getWellboreGeometrySectionTvdIntervalUom(uint64_t index) const;
157
165 DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionTvdIntervalBase(uint64_t index) const;
166
174 DLL_IMPORT_OR_EXPORT bool hasWellboreGeometrySectionTvdInterval(uint64_t index) const;
175
184 DLL_IMPORT_OR_EXPORT void pushBackSection(double top, double base, gsoap_eml2_3::eml23__LengthUom uom, const std::string & uid = "");
185
191 DLL_IMPORT_OR_EXPORT uint64_t getSectionCount() const;
192
198 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "WellboreGeometry";
199
205 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const { return XML_TAG; }
206
210 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_NS = "witsml21";
211
215 DLL_IMPORT_OR_EXPORT std::string getXmlNamespace() const final { return XML_NS; }
216 };
217}
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46
Definition WellboreObject.h:32
Definition WellboreGeometry.h:33
WellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Constructor.
WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition WellboreGeometry.h:43
WellboreGeometry(gsoap_eml2_3::witsml21__WellboreGeometry *fromGsoap)
Definition WellboreGeometry.h:65
std::string getXmlNamespace() const final
Definition WellboreGeometry.h:215
common::DataObjectReference getWellboreDor() const final
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:29