Fesapi 2.13.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
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{
32 class WellboreGeometry : public WITSML2_NS::WellboreObject
33 {
34 public:
35
43 DLL_IMPORT_OR_EXPORT WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : WITSML2_NS::WellboreObject(partialObject) {}
44
55 WellboreGeometry(WITSML2_NS::Wellbore* witsmlWellbore,
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}
WellboreGeometry(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, bool isActive)
Constructor.
double getWellboreGeometrySectionMdIntervalBase(uint64_t index) const
double getWellboreGeometrySectionMdIntervalTop(uint64_t index) const
gsoap_eml2_3::eml23__LengthUom getWellboreGeometrySectionMdIntervalUom(uint64_t index) const
gsoap_eml2_3::eml23__LengthUom getWellboreGeometrySectionTvdIntervalUom(uint64_t index) const
double getWellboreGeometrySectionTvdIntervalBase(uint64_t index) const
WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition WellboreGeometry.h:43
virtual std::string getXmlTag() const
Definition WellboreGeometry.h:205
WellboreGeometry(gsoap_eml2_3::witsml21__WellboreGeometry *fromGsoap)
Definition WellboreGeometry.h:65
void pushBackSection(double top, double base, gsoap_eml2_3::eml23__LengthUom uom, const std::string &uid="")
void setWellbore(WITSML2_NS::Wellbore *witsmlWellbore) final
std::string getXmlNamespace() const final
Definition WellboreGeometry.h:215
static constexpr char const * XML_NS
Definition WellboreGeometry.h:210
common::DataObjectReference getWellboreDor() const final
void setWellboreGeometrySectionTvdInterval(uint64_t index, double top, double base, gsoap_eml2_3::eml23__LengthUom uom)
double getWellboreGeometrySectionTvdIntervalTop(uint64_t index) const
static constexpr char const * XML_TAG
Definition WellboreGeometry.h:198
bool hasWellboreGeometrySectionTvdInterval(uint64_t index) const
uint64_t getSectionCount() const
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:29