OpendTect  6.6
dbkey.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: Nanne Hemstra
8  Date: August 2020
9 ________________________________________________________________________
10 
11 -*/
12 
13 
14 #include "multiid.h"
15 #include "objectset.h"
16 
17 class SurveyDiskLocation;
18 class SurveyInfo;
19 
20 mExpClass(Basic) DBKey : public MultiID
21 {
22 public:
24  { setUdf(); }
25  DBKey( const MultiID& mid )
26  : MultiID(mid)
27  {}
28  DBKey(const MultiID& mid,
29  const SurveyDiskLocation&);
30  DBKey(const DBKey&);
31  ~DBKey();
32 
34  bool operator ==(const DBKey&) const;
35  bool operator !=(const DBKey&) const;
36 
37  bool isValid() const { return !isUdf(); }
38 
40  bool hasSurveyLocation() const { return survloc_; }
43  bool isInCurrentSurvey() const;
44  const SurveyInfo& surveyInfo() const;
45 
46  DBKey getLocal() const;
47 
48  bool fromString(const char*);
49  BufferString toString(bool withsurvloc) const;
50 
51 protected:
52 
53  SurveyDiskLocation* survloc_ = nullptr;
54 };
55 
56 
57 mExpClass(Basic) DBKeySet : public OD::Set
59 public:
60 
61  inline DBKeySet() {}
62  inline DBKeySet( const DBKeySet& oth )
63  { deepAppend( dbkys_, oth.dbkys_ ); }
64  explicit DBKeySet( const DBKey& dbky )
65  { add( dbky ); }
66  ~DBKeySet() { deepErase(dbkys_); }
67  DBKeySet* clone() const override { return new DBKeySet(*this); }
68 
69  inline DBKeySet& operator =( const DBKeySet& oth )
70  { deepCopy( dbkys_, oth.dbkys_ ); return *this; }
72  bool operator ==(const DBKeySet&) const;
73  bool operator !=(const DBKeySet&) const;
74 
75  inline size_type size() const { return dbkys_.size(); }
76  inline bool isEmpty() const { return dbkys_.isEmpty(); }
77  bool validIdx( od_int64 i ) const override
78  { return dbkys_.validIdx(i); }
79  idx_type indexOf(const DBKey&) const;
80  inline bool isPresent( const DBKey& dbky )
81  { return indexOf(dbky) >= 0;}
82  DBKey& get( idx_type idx ) { return *dbkys_.get(idx); }
83  const DBKey& get( idx_type idx ) const { return *dbkys_.get(idx); }
84  DBKey& operator [](idx_type idx) { return *dbkys_[idx]; }
85  const DBKey& operator [](idx_type idx) const { return *dbkys_[idx]; }
86  DBKey& first() { return *dbkys_.first(); }
87  const DBKey& first() const { return *dbkys_.first(); }
88  DBKey& last() { return *dbkys_.last(); }
89  const DBKey& last() const { return *dbkys_.last(); }
90 
91  DBKeySet& add( DBKey* ky ) { dbkys_.add(ky); return *this;}
92  DBKeySet& add( const DBKey& ky ) { return add(new DBKey(ky)); }
93  bool addIfNew(const DBKey&);
94  void append(const DBKeySet&,bool allowduplicates=true);
95  void insert(idx_type,const DBKey&);
96  void useIndexes( const idx_type* idxs )
97  { dbkys_.useIndexes(idxs); }
98 
99  void setEmpty() { deepErase( dbkys_ ); }
100  void erase() override { setEmpty(); }
104 
105  void swap( idx_type i1, idx_type i2 )
106  { dbkys_.swap( i1, i2 ); }
107 
108  inline DBKeySet& operator +=( DBKey* k ) { return add(k); }
109  inline DBKeySet& operator +=( const DBKey& k ) { return add(k); }
110  inline DBKeySet& operator -=( const DBKey& k ) { return remove(k); }
111 
112  void addTo(BufferStringSet&) const;
113 
114  // remainder of OD::Set interface
115 
116  od_int64 nrItems() const override { return size(); }
117  void swapItems( od_int64 i1, od_int64 i2 ) override
118  { swap( (idx_type)i1, (idx_type)i2 ); }
119  void reverse() override { dbkys_.reverse(); }
120 
121 };
122 
DBKey::toString
BufferString toString(bool withsurvloc) const
DBKeySet::get
const DBKey & get(idx_type idx) const
Definition: dbkey.h:83
DBKeySet::remove
DBKeySet & remove(const DBKey &)
DBKeySet::removeRange
DBKeySet & removeRange(idx_type, idx_type)
DBKey::~DBKey
~DBKey()
DBKeySet::last
const DBKey & last() const
Definition: dbkey.h:89
DBKeySet::insert
void insert(idx_type, const DBKey &)
DBKey::surveyInfo
const SurveyInfo & surveyInfo() const
DBKeySet::append
void append(const DBKeySet &, bool allowduplicates=true)
DBKey::hasSurveyLocation
bool hasSurveyLocation() const
Definition: dbkey.h:40
mIsContainer
#define mIsContainer(clss, typ, memb)
Definition: odset.h:83
ObjectSet< DBKey >
deepCopy
void deepCopy(BufferStringSet &, const BufferStringSet &)
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
DBKeySet::addIfNew
bool addIfNew(const DBKey &)
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
DBKeySet::size
size_type size() const
Definition: dbkey.h:75
Values::setUdf
T & setUdf(T &u)
Definition: undefval.h:264
DBKeySet::dbkys_
impl_type dbkys_
Definition: dbkey.h:58
deepAppend
void deepAppend(ObjectSet< T > &to, const ObjectSet< S > &from)
append copies of one set's objects to another ObjectSet.
Definition: objectset.h:173
DBKey::isValid
bool isValid() const
Definition: dbkey.h:37
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
DBKey::surveyDiskLocation
const SurveyDiskLocation & surveyDiskLocation() const
DBKey::clearSurveyDiskLocation
void clearSurveyDiskLocation()
DBKeySet::idx_type
impl_type::idx_type idx_type
Definition: dbkey.h:58
DBKey::setSurveyDiskLocation
void setSurveyDiskLocation(const SurveyDiskLocation &)
DBKeySet::indexOf
idx_type indexOf(const DBKey &) const
DBKeySet::last
DBKey & last()
Definition: dbkey.h:88
DBKeySet::isEmpty
bool isEmpty() const
Definition: dbkey.h:76
multiid.h
DBKeySet::nrItems
int64_t nrItems() const override
Definition: dbkey.h:116
swap
void swap(DBKeySet &o1, DBKeySet &o2)
Definition: dbkey.h:123
DBKeySet::reverse
void reverse() override
Definition: dbkey.h:119
Values::isUdf
bool isUdf(const T &t)
Definition: undefval.h:245
File::remove
bool remove(const char *)
indexOf
BufferStringSet::idx_type indexOf(const BufferStringSet &, const char *)
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
DBKey
Definition: dbkey.h:21
DBKeySet::get
DBKey & get(idx_type idx)
Definition: dbkey.h:82
DBKeySet::swapItems
void swapItems(int64_t i1, int64_t i2) override
Definition: dbkey.h:117
DBKeySet::isPresent
bool isPresent(const DBKey &dbky)
Definition: dbkey.h:80
DBKeySet::erase
void erase() override
Definition: dbkey.h:100
DBKeySet::add
DBKeySet & add(DBKey *ky)
Definition: dbkey.h:91
DBKeySet::addTo
void addTo(BufferStringSet &) const
DBKeySet::first
DBKey & first()
Definition: dbkey.h:86
DBKeySet::DBKeySet
DBKeySet(const DBKeySet &oth)
Definition: dbkey.h:62
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
DBKeySet::clone
DBKeySet * clone() const override
Definition: dbkey.h:67
mDefContainerSwapFunction
#define mDefContainerSwapFunction(mod, clss)
Definition: odset.h:115
DBKey::getLocal
DBKey getLocal() const
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
DBKey::DBKey
DBKey()
Definition: dbkey.h:23
DBKey::DBKey
DBKey(const MultiID &mid)
Definition: dbkey.h:25
DBKeySet::first
const DBKey & first() const
Definition: dbkey.h:87
DBKeySet::removeSingle
DBKeySet & removeSingle(idx_type)
DBKey::DBKey
DBKey(const MultiID &mid, const SurveyDiskLocation &)
DBKeySet::setEmpty
void setEmpty()
Definition: dbkey.h:99
deepErase
void deepErase(BufferStringSet &)
DBKeySet::add
DBKeySet & add(const DBKey &ky)
Definition: dbkey.h:92
DBKeySet
Definition: dbkey.h:58
DBKey::fromString
bool fromString(const char *)
SurveyInfo::operator=
SurveyInfo & operator=(const SurveyInfo &)
DBKeySet::DBKeySet
DBKeySet(const DBKey &dbky)
Definition: dbkey.h:64
DBKeySet::useIndexes
void useIndexes(const idx_type *idxs)
Definition: dbkey.h:96
DBKey::isInCurrentSurvey
bool isInCurrentSurvey() const
DBKeySet::DBKeySet
DBKeySet()
Definition: dbkey.h:61
DBKeySet::swap
void swap(idx_type i1, idx_type i2)
Definition: dbkey.h:105
DBKey::DBKey
DBKey(const DBKey &)
DBKeySet::size_type
impl_type::size_type size_type
Definition: dbkey.h:58
objectset.h
SurveyDiskLocation
Survey location on disk.
Definition: surveydisklocation.h:35
DBKeySet::~DBKeySet
~DBKeySet()
Definition: dbkey.h:66
DBKeySet::validIdx
bool validIdx(int64_t i) const override
Definition: dbkey.h:77
SurveyInfo
Holds survey general information.
Definition: survinfo.h:45
TypeSet< MultiID >
OD::Set
Base class for all sets used in OpendTect.
Definition: odset.h:33

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