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
Well.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 "../common/AbstractObject.h"
22
23#include "../MacroDefinitions.h"
24
25namespace RESQML2_NS
26{
27 class WellboreFeature;
28}
29
30namespace WITSML2_1_NS
31{
32 class WellCompletion;
33}
34
35namespace EML2_3_NS
36{
37 class LocalEngineering2dCrs;
38 class VerticalCrs;
39}
40
41namespace WITSML2_NS
42{
43 class Wellbore;
44
48 class Well : public COMMON_NS::AbstractObject
49 {
50 public:
51
57 DLL_IMPORT_OR_EXPORT Well(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
58
60 virtual ~Well() = default;
61
62 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NameLegal)
63 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumLicense)
64 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumGovt)
65 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Field)
66 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Country)
67 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, State)
68 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, County)
69 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Region)
70 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, District)
71 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Block)
72 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, OperatorDiv)
73 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumAPI)
74
75 // Optional enum
76 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::eml23__WellStatus, StatusWell)
77 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellPurpose, PurposeWell)
78 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellFluid, FluidWell)
79 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellDirection, DirectionWell)
80
81 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(WaterDepth, gsoap_eml2_3::eml23__LengthUom)
82 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(GroundElevation)
83 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(WellheadElevation)
84
85 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(PcInterest, gsoap_eml2_3::eml23__DimensionlessUom)
86
87 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimLicense)
88 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimSpud)
89 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimPa)
90
91
100 DLL_IMPORT_OR_EXPORT virtual void setGroundElevation(double value, gsoap_eml2_3::eml23__LengthUom uom, EML2_3_NS::VerticalCrs* verticalCrs) = 0;
101
109 DLL_IMPORT_OR_EXPORT virtual double getGroundElevationValue() const = 0;
110
118 DLL_IMPORT_OR_EXPORT virtual gsoap_eml2_3::eml23__LengthUom getGroundElevationUom() const = 0;
119
125 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getGroundElevationDatumDor() const = 0;
126
132 DLL_IMPORT_OR_EXPORT EML2_3_NS::VerticalCrs* getGroundElevationDatum() const;
133
143 DLL_IMPORT_OR_EXPORT virtual void setWellheadElevation(double value, gsoap_eml2_3::eml23__LengthUom uom, EML2_3_NS::VerticalCrs* verticalCrs) = 0;
144
152 DLL_IMPORT_OR_EXPORT virtual double getWellheadElevationValue() const = 0;
153
161 DLL_IMPORT_OR_EXPORT virtual gsoap_eml2_3::eml23__LengthUom getWellheadElevationUom() const = 0;
162
168 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::DataObjectReference getWellheadElevationDatumDor() const = 0;
169
175 DLL_IMPORT_OR_EXPORT EML2_3_NS::VerticalCrs* getWellheadElevationDatum() const;
176
187 DLL_IMPORT_OR_EXPORT virtual void setTimeZone(bool direction, unsigned short hours, unsigned short minutes) = 0;
188 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(TimeZone)
189
196 DLL_IMPORT_OR_EXPORT virtual bool getTimeZoneDirection() const = 0;
197
204 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneHours() const = 0;
205
212 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneMinutes() const = 0;
213
221 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedX(uint64_t locationIndex) = 0;
222
230 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedY(uint64_t locationIndex) = 0;
231
239 DLL_IMPORT_OR_EXPORT virtual void pushBackLocation(double projectedX, double projectedY, EML2_3_NS::LocalEngineering2dCrs* crs) = 0;
240
246 DLL_IMPORT_OR_EXPORT virtual uint64_t geLocationCount() const = 0;
247
248 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, ResqmlWellboreFeature)
249 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, Wellbore)
250 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, Wellcompletion)
251
257 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "Well";
258
264 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
265
266 protected:
267
269 Well() = default;
270
276 Well(gsoap_eml2_3::witsml21__Well* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
277
279 void loadTargetRelationships();
280 };
281}
Contains all information that is the same for all wellbores (sidetracks).
Definition Well.h:49
Well(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition Well.h:57
static constexpr char const * XML_TAG
Definition Well.h:257
virtual ~Well()=default
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46