OpendTect  6.3
welllogset.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Bert Bril
8  Date: Aug 2003
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "welllog.h"
15 #include "propertyref.h"
16 class BufferStringSet;
17 
18 
19 namespace Well
20 {
21 
25 {
26 public:
27 
29  typedef size_type IdxType;
33  mDefIntegerIDType(IdxType, LogID);
34 
35  LogSet();
36  ~LogSet();
39 
40  LogRefMan getLog(LogID);
41  CLogRefMan getLog(LogID) const;
42  LogRefMan getLogByName(const char*);
43  CLogRefMan getLogByName(const char*) const;
44  LogRefMan getLogByIdx(IdxType);
45  CLogRefMan getLogByIdx(IdxType) const;
46  LogRefMan firstLog();
47  CLogRefMan firstLog() const;
48 
49  size_type size() const;
50  LogID getID(IdxType) const;
51  int indexOf(LogID) const;
52  int indexOf(const char*) const;
53  bool validIdx(IdxType) const;
54  bool isEmpty() const { return size() == 0; }
55  void setEmpty();
56 
57  LogID add(Log*);
58  LogRefMan remove(LogID);
59  LogRefMan removeByName(const char*);
60 
61  bool isPresent(const char*) const;
62  void getNames(BufferStringSet&) const;
63  mImplSimpleMonitoredGet(dahInterval,Interval<ZType>,dahintv_)
65 
66  void removeTopBottomUdfs();
67 
69  const PropertyRef* altpr=0,
70  BoolTypeSet* isalt=0) const;
71 
72  static ChangeType cLogAdd() { return 2; }
73  static ChangeType cLogRemove() { return 3; }
74  static ChangeType cOrderChange() { return 4; }
75 
76 protected:
77 
82 
83  IdxType gtIdx(LogID) const;
84  Log* gtLog(LogID) const;
85  LogID gtID(const Log*) const;
86  IdxType gtIdxByName(const char*) const;
87  Log* gtLogByName(const char*) const;
88  Log* gtLogByIdx(IdxType) const;
89  void updateDahIntv(const Well::Log&);
90  void recalcDahIntv();
91  Log* doRemove(IdxType);
92  void doSetEmpty();
93 
94  friend class LogSetIter;
95 
96 public:
97 
98  bool swap(IdxType,IdxType);
99 
100 };
101 
102 
104 {
105 public:
106 
107  typedef LogSet::LogID LogID;
108 
109  LogSetIter(const LogSet&,bool start_at_end=false);
110  LogSetIter(const LogSetIter&);
111  const LogSet& logSet() const;
112 
113  LogID ID() const;
114  const Log& log() const;
115 
116 };
117 
118 
119 } // namespace Well
#define mExpClass(module)
Definition: commondefs.h:157
static ChangeType cLogRemove()
Definition: welllogset.h:73
TypeSet< LogID > logids_
Definition: welllogset.h:79
int ChangeType
Definition: monitorable.h:80
Definition: welllogset.h:103
ObjectSet< Log >::size_type size_type
Definition: welllogset.h:28
Monitorable object with a name. All but name() are MT-safe.
Definition: namedmonitorable.h:20
Interval< ZType > dahintv_
Definition: welllogset.h:80
LogSet::LogID LogID
Definition: welllogset.h:107
short IdxType
Definition: seisblocksdata.h:39
bool isEmpty() const
Definition: welllogset.h:54
Well log.
Definition: welllog.h:40
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:40
Set of Well::Log&#39;s.
Definition: welllogset.h:24
int size_type
Definition: objectset.h:37
#define mImplSimpleMonitoredGet(fnnm, typ, memb)
Defines simple MT-safe copyable member get.
Definition: monitor.h:21
Set of BufferString objects.
Definition: bufstringset.h:25
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:173
base class for const Monitorable iterator.
Definition: monitoriter.h:83
#define mDeclMonitorableAssignment(clss)
like mDeclAbstractMonitorableAssignment but for non-abstract subclasses. Implements the clone() metho...
Definition: monitor.h:111
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:235
RefMan< Log > LogRefMan
Definition: welllogset.h:31
Set of pointers to objects.
Definition: commontypes.h:28
Well::DahObj::ZType ZType
Definition: welllogset.h:30
Definition: wellcommon.h:16
#define mDefIntegerIDType(IntType, classname)
Definition: integerid.h:83
ObjectSet< Log > logs_
Definition: welllogset.h:78
ConstRefMan< Log > CLogRefMan
Definition: welllogset.h:32
float ZType
Definition: welldahobj.h:40
static ChangeType cOrderChange()
Definition: welllogset.h:74
StdType
Definition: propertyref.h:44
Threads::Atomic< IdxType > curlogidnr_
Definition: welllogset.h:81
FixedString ID()
Definition: keystrs.h:71
Definition: ptrman.h:227
static ChangeType cLogAdd()
Definition: welllogset.h:72
size_type IdxType
Definition: welllogset.h:29
Definition: ptrman.h:200

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017