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
WellboreCompletion.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
23namespace WITSML2_1_NS
24{
27 {
28 public:
29
33 enum class WellReservoirConnectionType { PERFORATION = 0, GRAVEL_PACK = 1, OPEN_HOLE = 2, SLOTS = 3};
34
40 DLL_IMPORT_OR_EXPORT WellboreCompletion(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : WITSML2_NS::WellboreObject(partialObject) {}
41
50 const std::string & guid,
51 const std::string & title);
52
58 WellboreCompletion(gsoap_eml2_3::witsml21__WellboreCompletion* fromGsoap) :WellboreObject(fromGsoap) {}
59
62
66 COMMON_NS::DataObjectReference getWellboreDor() const final;
67
71 COMMON_NS::DataObjectReference getWellCompletionDor() const;
72
74 DLL_IMPORT_OR_EXPORT class WellCompletion* getWellCompletion() const;
75
81 DLL_IMPORT_OR_EXPORT void setWellbore(WITSML2_NS::Wellbore* witsmlWellbore) final;
82
88 DLL_IMPORT_OR_EXPORT void setWellCompletion(class WellCompletion* wellCompletion);
89
99 DLL_IMPORT_OR_EXPORT void pushBackConnection(WellReservoirConnectionType wellReservoirConnection,
100 gsoap_eml2_3::eml23__LengthUom MdUnit,
101 double TopMd,
102 double BaseMd,
103 const std::string & uid);
104
113 DLL_IMPORT_OR_EXPORT void pushBackConnectionExtraMetadata(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
114 const std::string & key, const std::string & value);
115
123 DLL_IMPORT_OR_EXPORT void pushBackConnectionHistory(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
124 const std::string & historyGuid = "");
125
135 DLL_IMPORT_OR_EXPORT void pushBackConnectionHistory(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
136 gsoap_eml2_3::witsml21__PhysicalStatus staus,
137 time_t startDate,
138 const std::string & historyGuid = "");
139
147 DLL_IMPORT_OR_EXPORT uint64_t getConnectionCount(WellReservoirConnectionType wellReservoirConnection) const;
148
157 DLL_IMPORT_OR_EXPORT std::string getConnectionUid(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
158
168 DLL_IMPORT_OR_EXPORT std::vector<std::string> getConnectionExtraMetadata(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex, const std::string & key) const;
169
178 DLL_IMPORT_OR_EXPORT bool hasConnectionMdDatum(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
179
188 DLL_IMPORT_OR_EXPORT bool hasConnectionMdInterval(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
189
199 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__LengthUom getConnectionMdUnit(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
200
210 DLL_IMPORT_OR_EXPORT std::string getConnectionMdUnitAsString(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
211
220 DLL_IMPORT_OR_EXPORT double getConnectionTopMd(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
221
230 DLL_IMPORT_OR_EXPORT double getConnectionBaseMd(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
231
240 DLL_IMPORT_OR_EXPORT uint64_t getConnectionHistoryCount(WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
241
251 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryStatus(uint64_t historyIndex,
252 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
253
263 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::witsml21__PhysicalStatus getConnectionHistoryStatus(uint64_t historyIndex,
264 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
265
275 DLL_IMPORT_OR_EXPORT std::string getConnectionHistoryStatusToString(uint64_t historyIndex,
276 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
277
286 DLL_IMPORT_OR_EXPORT void setConnectionHistoryStatus(uint64_t historyIndex,
287 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
288 gsoap_eml2_3::witsml21__PhysicalStatus connectionStatus);
289
299 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryStartDate(uint64_t historyIndex,
300 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
301
311 DLL_IMPORT_OR_EXPORT time_t getConnectionHistoryStartDate(uint64_t historyIndex,
312 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
313
322 DLL_IMPORT_OR_EXPORT void setConnectionHistoryStartDate(uint64_t historyIndex,
323 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex, time_t startDate) const;
324
334 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryEndDate(uint64_t historyIndex,
335 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
336
346 DLL_IMPORT_OR_EXPORT time_t getConnectionHistoryEndDate(uint64_t historyIndex,
347 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
348
357 DLL_IMPORT_OR_EXPORT void setConnectionHistoryEndDate(uint64_t historyIndex,
358 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex, time_t endDate) const;
359
369 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryMdDatum(uint64_t historyIndex,
370 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
371
381 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryMdInterval(uint64_t historyIndex,
382 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
383
394 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__LengthUom getConnectionHistoryMdUnit(uint64_t historyIndex,
395 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
396
407 DLL_IMPORT_OR_EXPORT std::string getConnectionHistoryMdUnitAsString(uint64_t historyIndex,
408 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
409
419 DLL_IMPORT_OR_EXPORT double getConnectionHistoryTopMd(uint64_t historyIndex,
420 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
421
433 DLL_IMPORT_OR_EXPORT void setConnectionHistoryMdInterval(uint64_t historyIndex,
434 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
435 gsoap_eml2_3::eml23__LengthUom MdUnit,
436 double TopMd, double baseMd);
437
447 DLL_IMPORT_OR_EXPORT double getConnectionHistoryBaseMd(uint64_t historyIndex,
448 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
449
459 DLL_IMPORT_OR_EXPORT bool hasConnectionHistoryComment(uint64_t historyIndex,
460 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
461
471 DLL_IMPORT_OR_EXPORT std::string getConnectionHistoryComment(uint64_t historyIndex,
472 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex) const;
473
482 DLL_IMPORT_OR_EXPORT void setConnectionHistoryComment(uint64_t historyIndex,
483 WellReservoirConnectionType wellReservoirConnection, uint64_t connectionIndex,
484 const std::string & comment);
485
491 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "WellboreCompletion";
492
498 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const { return XML_TAG; }
499
504
508 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_NS = "witsml21";
509
513 DLL_IMPORT_OR_EXPORT std::string getXmlNamespace() const final { return XML_NS; }
514
515 private:
516
524 gsoap_eml2_3::witsml21__PerforationSetInterval* getPerforation(uint64_t index) const;
525
533 gsoap_eml2_3::witsml21__GravelPackInterval* getGravelPack(uint64_t index) const;
534
542 gsoap_eml2_3::witsml21__OpenHoleInterval* getOpenHole(uint64_t index) const;
543
551 gsoap_eml2_3::witsml21__SlotsInterval* getSlots(uint64_t index) const;
552
561 gsoap_eml2_3::witsml21__PerforationStatusHistory* getPerforationHistoryEntry(uint64_t historyIndex,
562 uint64_t index) const {
563 return getPerforation(index)->PerforationStatusHistory.at(historyIndex);
564 }
565
574 gsoap_eml2_3::witsml21__IntervalStatusHistory* getGravelPackHistoryEntry(uint64_t historyIndex,
575 uint64_t index) const {
576 return getGravelPack(index)->StatusHistory.at(historyIndex);
577 }
578
587 gsoap_eml2_3::witsml21__IntervalStatusHistory* getOpenHoleHistoryEntry(uint64_t historyIndex,
588 uint64_t index) const {
589 return getOpenHole(index)->StatusHistory.at(historyIndex);
590 }
591
600 gsoap_eml2_3::witsml21__IntervalStatusHistory* getSlotsHistoryEntry(uint64_t historyIndex,
601 uint64_t index) const {
602 return getSlots(index)->StatusHistory.at(historyIndex);
603 }
604 };
605}
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46
Definition WellboreObject.h:32
Definition WellCompletion.h:31
Definition WellboreCompletion.h:27
common::DataObjectReference getWellboreDor() const final
WellboreCompletion(WITSML2_NS::Wellbore *witsmlWellbore, const std::string &guid, const std::string &title)
WellReservoirConnectionType
Definition WellboreCompletion.h:33
void loadTargetRelationships() final
WellboreCompletion(gsoap_eml2_3::witsml21__WellboreCompletion *fromGsoap)
Definition WellboreCompletion.h:58
WellboreCompletion(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition WellboreCompletion.h:40
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:29