Fesapi  2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
WellboreGeometry.h
1 /*-----------------------------------------------------------------------
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"; you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9 
10 http://www.apache.org/licenses/LICENSE-2.0
11 
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18 -----------------------------------------------------------------------*/
19 #pragma once
20 
21 #include "WellboreObject.h"
22 
23 namespace WITSML2_0_NS
24 {
31  {
32  public:
33 
41  DLL_IMPORT_OR_EXPORT WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : WellboreObject(partialObject) {}
42 
53  WellboreGeometry(class Wellbore* witsmlWellbore,
54  const std::string & guid,
55  const std::string & title,
56  gsoap_eml2_1::witsml20__ChannelStatus channelStatus);
57 
63  WellboreGeometry(gsoap_eml2_1::witsml20__WellboreGeometry* fromGsoap) :WellboreObject(fromGsoap) {}
64 
66  ~WellboreGeometry() = default;
67 
68  DLL_IMPORT_OR_EXPORT COMMON_NS::DataObjectReference getWellboreDor() const;
69  DLL_IMPORT_OR_EXPORT void setWellbore(class Wellbore* witsmlWellbore);
70 
71  GETTER_AND_SETTER_DEPTH_MEASURE_OPTIONAL_ATTRIBUTE(MdBase, gsoap_eml2_1::eml21__LengthUom)
72 
73  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(GapAir, gsoap_eml2_1::eml21__LengthUom)
74  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(DepthWaterMean, gsoap_eml2_1::eml21__LengthUom)
75 
76  //***************************************
77  //************** SECTION ****************
78  //***************************************
79 
80  // Mandatory
81  GETTER_AND_SETTER_GENERIC_ATTRIBUTE_IN_VECTOR(std::string, WellboreGeometrySection, uid)
82 
83  // Optional bool
84  GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(bool, WellboreGeometrySection, CurveConductor)
85 
86  // Optional double
87  GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(double, WellboreGeometrySection, FactFric)
88 
89  // Optional string
90  GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(std::string, WellboreGeometrySection, Grade)
91 
92  // Optional enum
93  GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_1::witsml20__HoleCasingType, WellboreGeometrySection, TypeHoleCasing)
94 
95  // Optional Length Measure
96  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, IdSection, gsoap_eml2_1::eml21__LengthUom)
97  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, OdSection, gsoap_eml2_1::eml21__LengthUom)
98  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, DiaDrift, gsoap_eml2_1::eml21__LengthUom)
99 
100  // Optional Mass per Length Measure
101  GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(WellboreGeometrySection, WtPerLen, gsoap_eml2_1::eml21__MassPerLengthUom)
102 
103 
112  DLL_IMPORT_OR_EXPORT void setWellboreGeometrySectionMdInterval(unsigned int index, double top, double base, const std::string & datum, gsoap_eml2_1::eml21__LengthUom uom);
113 
121  DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionMdIntervalTop(unsigned int index) const;
122 
130  DLL_IMPORT_OR_EXPORT gsoap_eml2_1::eml21__LengthUom getWellboreGeometrySectionMdIntervalTopUom(unsigned int index) const;
131 
139  DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionMdIntervalBase(unsigned int index) const;
140 
148  DLL_IMPORT_OR_EXPORT gsoap_eml2_1::eml21__LengthUom getWellboreGeometrySectionMdIntervalBaseUom(unsigned int index) const;
149 
157  DLL_IMPORT_OR_EXPORT std::string getWellboreGeometrySectionMdIntervaldatum(unsigned int index) const;
158 
166  DLL_IMPORT_OR_EXPORT bool hasWellboreGeometrySectionMdInterval(unsigned int index) const;
167 
177  DLL_IMPORT_OR_EXPORT void setWellboreGeometrySectionTvdInterval(unsigned int index, double top, double base, const std::string & datum, gsoap_eml2_1::eml21__LengthUom uom);
178 
186  DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionTvdIntervalTop(unsigned int index) const;
187 
195  DLL_IMPORT_OR_EXPORT gsoap_eml2_1::eml21__LengthUom getWellboreGeometrySectionTvdIntervalTopUom(unsigned int index) const;
196 
204  DLL_IMPORT_OR_EXPORT double getWellboreGeometrySectionTvdIntervalBase(unsigned int index) const;
205 
213  DLL_IMPORT_OR_EXPORT gsoap_eml2_1::eml21__LengthUom getWellboreGeometrySectionTvdIntervalBaseUom(unsigned int index) const;
214 
222  DLL_IMPORT_OR_EXPORT std::string getWellboreGeometrySectionTvdIntervaldatum(unsigned int index) const;
223 
231  DLL_IMPORT_OR_EXPORT bool hasWellboreGeometrySectionTvdInterval(unsigned int index) const;
232 
238  DLL_IMPORT_OR_EXPORT void pushBackSection(const std::string & uid = "");
239 
245  DLL_IMPORT_OR_EXPORT unsigned int getSectionCount() const;
246 
252  DLL_IMPORT_OR_EXPORT static const char* XML_TAG;
253 
259  DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const { return XML_TAG; }
260  };
261 }
Definition: WellboreGeometry.h:31
WellboreGeometry(class Wellbore *witsmlWellbore, const std::string &guid, const std::string &title, gsoap_eml2_1::witsml20__ChannelStatus channelStatus)
Constructor.
WellboreGeometry(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: WellboreGeometry.h:41
common::DataObjectReference getWellboreDor() const
void setWellbore(class Wellbore *witsmlWellbore)
WellboreGeometry(gsoap_eml2_1::witsml20__WellboreGeometry *fromGsoap)
Definition: WellboreGeometry.h:63
Definition: Wellbore.h:41
Definition: WellboreObject.h:32