OpendTect  6.3
dbman.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
8  Date: Sep 2016
9 ________________________________________________________________________
10 
11 -*/
12 
13 
14 #include "generalmod.h"
15 #include "dbkey.h"
16 #include "monitor.h"
17 #include "ptrman.h"
18 #include "uistring.h"
19 #include "ioobjctxt.h"
20 class DBDir;
22 
23 
32 mExpClass(General) DBMan : public Monitorable
34 public:
35 
37  typedef DBKey::ObjID ObjID;
38 
39  bool isPresent(DBKey) const;
40  bool isPresent(const char*,const char* tgname) const;
41  BufferString nameOf(DBKey) const;
42  BufferString nameFor(const char* keystr) const;
44 
45  IOObj* get(DBKey) const;
46  IOObj* getFirst(const IOObjContext&,int* nrpresent=0) const;
47  IOObj* getFromPar(const IOPar&,const char* basekey,
48  const IOObjContext&,bool mknew,
49  uiString& errmsg) const;
50  IOObj* getByName(IOObjContext::StdSelType,const char* objname,
51  const char* tgname=0) const;
52  IOObj* getByName(const IOObjContext&,const char* objnm) const;
53  IOObj* getByName(const char* objname,const char* tgname) const;
54 
55  void getEntry(CtxtIOObj&,bool ifnewmakeittemp=false,
56  int translidxingroup=-1);
58  bool setEntry(const IOObj&);
59  bool removeEntry(DBKey);
60 
61  ConstRefMan<DBDir> fetchDir(DirID) const;
63  ConstRefMan<DBDir> fetchDir(const IOObjContext&) const;
64  ConstRefMan<DBDir> fetchRootDir() const { return rootdbdir_; }
65 
66  BufferString survDir() const { return survdir_; }
67  BufferString surveyName() const;
68  BufferString surveyDirectoryName() const;
69  bool isKeyString(const char*) const;
70 
75 
79 
81  {
82  public:
83 
85 
86  CustomDirData( DirNrType dnr, const char* dirnm,
87  const char* desc )
88  : dirnr_(dnr)
89  , dirname_(dirnm)
90  , desc_(desc) {}
91 
92  DirNrType dirnr_;
93  BufferString dirname_;
97 
99  bool operator ==( const CustomDirData& cdd ) const
100  { return dirnr_ == cdd.dirnr_; }
101  };
102 
103  static uiRetVal addCustomDataDir(const CustomDirData&);
106 
107 private:
108 
112  mutable uiString errmsg_;
115 
116  DBMan();
117  ~DBMan();
118  DBMan* getClone() const { return 0; }
119 
120  uiRetVal handleNewSurvDir();
121  void leaveSurvey();
122  void readDirs();
123  RefMan<DBDir> getDBDir(DirID);
124  DBDir* gtDir(DirID) const;
125  uiRetVal setupCustomDataDirs(int);
126  void setupCustomDataDir(const CustomDirData&,uiRetVal&);
127  IOObj* crWriteIOObj(const CtxtIOObj&,DBKey,int trlidx) const;
128  void dbdirChgCB(CallBacker*);
129 
130  friend mGlobal(General) DBMan& DBM();
131  friend class GeneralModuleIniter;
132 
133  uiRetVal setDataSource(const char*,const char*,bool);
134 
135  void initFirst();
136  uiRetVal doReRead();
137 
138 public:
139 
140  bool isBad() const;
141  uiString errMsg() const { return errmsg_; }
142  static uiRetVal isValidDataRoot(const char* dirnm);
143  static uiRetVal isValidSurveyDir(const char* dirnm);
144  static uiRetVal checkSurveySetupValid();
145  BufferString getDirectoryNameOf(DirID,bool fullpath) const;
146  void findTempObjs(ObjectSet<IOObj>&,
147  const IOObjSelConstraints* cnstrts=0) const;
150  void setSurveyChangeUserAbort();
151  void setSurveyChangeAbortReason(uiRetVal);
152  void applClosing() { applicationClosing.trigger();}
153 
154  mDeprecated bool permRemove( const DBKey& ky )
155  { return removeEntry(ky); }
156  mDeprecated bool commitChanges( const IOObj& ioobj )
157  { return setEntry(ioobj); }
159  { return survDir(); }
160 
161  // To change to another survey, probably not your thing:
162  uiRetVal setDataSource(const char* fullpath_of_survey_dir,
163  bool forcerefresh=false);
165  uiRetVal setDataSource(const IOPar&,bool forcerefresh=false);
168  uiRetVal reRead();
170 
171 };
172 
173 
174 mGlobal(General) DBMan& DBM();
#define mExpClass(module)
Definition: commondefs.h:157
Object that can be MT-safely monitored from cradle to grave.
Definition: monitorable.h:76
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
DBKey::DirID DirID
Definition: dbman.h:36
Definition: ioobj.h:57
Definition: dbdir.h:36
Definition: dbman.h:80
CNotifier< DBMan, DBKey > entryAdded
Definition: dbman.h:76
bool surveychangeuserabort_
Definition: dbman.h:113
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:51
DBKey::ObjID ObjID
Definition: dbman.h:37
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mGlobal(module)
Definition: commondefs.h:160
BufferString survDir() const
Definition: dbman.h:66
BufferString desc_
Definition: dbman.h:96
Notifier< DBMan > surveyChangeOK
Definition: dbman.h:149
Notifier< DBMan > surveyChanged
To restore OD to normal state.
Definition: dbman.h:72
GroupID DirID
Definition: dbkey.h:40
void trigger()
Definition: notify.h:128
Definition: uistring.h:88
Holds an IOObjCtxt plus a pointer to an IOObj and/or an IOPar.
Definition: ctxtioobj.h:24
Holds constraints on IOObj selection.
Definition: ioobjctxt.h:27
uiString errmsg_
Definition: dbman.h:112
mDeprecated bool commitChanges(const IOObj &ioobj)
Definition: dbman.h:156
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
StdSelType
Definition: ioobjctxt.h:66
DBMan & DBM()
manages the &#39;Meta-&#39;data store for the IOObj&#39;s. This info is read from the .omf files. The &#39;workhorse is the DBDir object.
Definition: dbman.h:32
ObjectSet< DBDir > dbdirs_
Definition: dbman.h:111
BufferString survdir_
Definition: dbman.h:109
DBKey::DirNrType DirNrType
Definition: dbman.h:84
mDeprecated BufferString rootDir() const
Definition: dbman.h:158
GroupNrType DirNrType
Definition: dbkey.h:41
ConstRefMan< DBDir > fetchRootDir() const
Definition: dbman.h:64
Notifier< DBMan > surveyToBeChanged
Before the change.
Definition: dbman.h:71
Notifier< DBMan > applicationClosing
&#39;Final&#39; call ...
Definition: dbman.h:74
void applClosing()
Definition: dbman.h:152
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
DBDir * rootdbdir_
Definition: dbman.h:110
BufferString errmsg_
Definition: horizontracker.h:117
CNotifier< DBMan, DBKey > entryToBeRemoved
Definition: dbman.h:78
Definition: uistring.h:299
uiString errMsg() const
Definition: dbman.h:141
DBMan * getClone() const
Definition: dbman.h:118
DirNrType dirnr_
Definition: dbman.h:92
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
const char * nameOf(ButtonState)
uiRetVal surveychangeabortreason_
Definition: dbman.h:114
CustomDirData(DirNrType dnr, const char *dirnm, const char *desc)
Definition: dbman.h:86
Notifier< DBMan > afterSurveyChange
When operating in normal state.
Definition: dbman.h:73
CNotifier< DBMan, DBKey > entryRemoved
Definition: dbman.h:77
mDeprecated bool permRemove(const DBKey &ky)
Definition: dbman.h:154
Definition: ptrman.h:227
bool getFromPar(const IOPar &, GeomType &)
Definition: ptrman.h:200
Holds the context for selecting and/or creating IOObjs.
Definition: ioobjctxt.h:59

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