OpendTect  6.6
ioobj.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: A.H. Bril
8  Date: 31-7-1995
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 
15 #include "generalmod.h"
16 #include "multiid.h"
17 #include "namedobj.h"
18 #include "uistring.h"
19 
20 class Conn;
21 class IOObj;
22 class CallBack;
23 class ascistream;
24 class ascostream;
25 class Translator;
26 
27 
28 /*\brief factory entry for IOObjs. Should deliver IOObj of certain type. */
29 
31 {
32 public:
33 virtual ~IOObjProducer() {}
34  virtual bool canMake(const char*) const = 0;
35  virtual IOObj* make(const char*,const MultiID&,
36  bool fill_defs) const = 0;
37 
38 };
39 
40 /*\brief object describing how to do I/O for objects
41 
42 The IOMan object manager manages IODir directories of IOObj objects. These
43 objects contain the information needed to do the I/O needed for the storage
44 that is accessed in OpendTect software.
45 
46 Every IOObj has a unique key in the form of a MultiID. This key
47 holds (a) the position of the IOObj in the IOMan/IODir tree (b) a unique
48 integer as an index in the IOObj's own IODir.
49 
50 If you know an IOObj is actually pointing to a simple file (i.e. if it's an
51 IOStream), then you can get the full filename (i.e. with path) using
52 fullUserExpr().
53 
54 */
55 
56 
57 mExpClass(General) IOObj : public NamedObject
58 {
59 public:
60  uiString uiName() const { return toUiString(name()); }
61 
62  IOObj* clone() const;
63  virtual const MultiID& key() const { return key_; }
64 
65  virtual ~IOObj();
66  virtual bool isBad() const = 0;
67  virtual void copyFrom(const IOObj*) = 0;
68  virtual bool hasConnType( const char* s ) const
69  { return connType() == s; }
70 
71  virtual const char* connType() const = 0;
72  virtual Conn* getConn(bool forread) const = 0;
73 
74  virtual const OD::String& translator() const {return transl_;}
75  virtual void setTranslator( const char* s ) {transl_ = s; }
76  virtual const OD::String& group() const {return group_;}
77  virtual void setGroup( const char* s ) {group_ = s; }
78  virtual const char* fullUserExpr(bool forread=true) const = 0;
79  virtual BufferString mainFileName() const { return fullUserExpr(); }
80 
81  virtual bool implExists(bool forread) const = 0;
82  virtual bool implReadOnly() const { return true; }
83  virtual bool implRemove() const { return false;}
84  virtual bool implManagesObjects() const { return false;}
85  virtual bool implRename(const char*,const CallBack* cb=0)
86  { return false; }
87  virtual bool implSetReadOnly(bool) const { return false;}
88 
89  virtual const char* dirName() const { return dirnm_; }
91  virtual IOPar& pars() const { return pars_;}
94  void updateCreationPars() const;
95 
96  static bool isKey(const char*);
99  static bool isSurveyDefault(const MultiID&);
101  void setSurveyDefault(const char* subsel = 0) const;
109  void acquireNewKeyIn(const MultiID&);
111 
112  static int tmpID() { return 999999; }
113  inline bool isTmp() const {return key_.leafID()>=tmpID();}
114  bool isProcTmp() const;
115  bool isUserSelectable(bool forread=true) const;
116  bool isInCurrentSurvey() const;
117 
123 
124 protected:
125 
130 
131  IOObj(const char* nm=0,const char* ky=0);
132  IOObj(const IOObj&);
133  static IOObj* get(ascistream&,const char*,const char*);
134  bool put(ascostream&) const;
135  virtual bool getFrom(ascistream&) = 0;
136  virtual bool putTo(ascostream&) const = 0;
137  int myKey() const;
138 
139 private:
140 
141  friend class IODir;
142 
143  static IOObj* produce(const char*,const char* nm=0,const char* ky=0,
144  bool initdefaults=true);
145  void copyStuffFrom(const IOObj&);
146 
148 
149 public:
150 
151  void setKey( const char* nm ) { key_ = nm; }
152  virtual void setDirName( const char* s ) { dirnm_ = s; }
153  virtual bool isSubdir() const { return false; }
156 
157 };
158 
159 mGlobal(General) bool equalIOObj(const MultiID&,const MultiID&);
160 mGlobal(General) bool areEqual(const IOObj*,const IOObj*);
161 
162 mDeprecated("Use IOMam::implRemove instead")
163 mGlobal(General) bool fullImplRemove(const IOObj&);
164 
IOObj::phrCannotReadObj
uiString phrCannotReadObj() const
NamedObject
object with a name.
Definition: namedobj.h:42
IOObj::IOObj
IOObj(const char *nm=0, const char *ky=0)
IOObj::uiName
uiString uiName() const
Definition: ioobj.h:60
IOObj::isBad
virtual bool isBad() const =0
IODir::key_
MultiID key_
Definition: iodir.h:84
IOObjProducer::canMake
virtual bool canMake(const char *) const =0
IOObj::isUserSelectable
bool isUserSelectable(bool forread=true) const
IOObj::transl_
BufferString transl_
Definition: ioobj.h:128
Conn
Data connection.
Definition: conn.h:30
IOObj::IOObj
IOObj(const IOObj &)
IOObj::put
bool put(ascostream &) const
uistring.h
IOObj::tmpID
static int tmpID()
Definition: ioobj.h:112
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
IOObj::isInCurrentSurvey
bool isInCurrentSurvey() const
File::toUiString
Export_Basic uiString toUiString(ViewStyle)
IOObj::~IOObj
virtual ~IOObj()
IOObj::dirnm_
BufferString dirnm_
Definition: ioobj.h:126
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
IOObj::setKey
void setKey(const char *nm)
Definition: ioobj.h:151
IOObj::updateCreationPars
void updateCreationPars() const
namedobj.h
IOObj::mainFileName
virtual BufferString mainFileName() const
Definition: ioobj.h:79
IOObjProducer::make
virtual IOObj * make(const char *, const MultiID &, bool fill_defs) const =0
IOObjProducer::~IOObjProducer
virtual ~IOObjProducer()
Definition: ioobj.h:33
IOObj::setDirName
virtual void setDirName(const char *s)
Definition: ioobj.h:152
IOObj::get
static IOObj * get(ascistream &, const char *, const char *)
IOObj::group
virtual const OD::String & group() const
Definition: ioobj.h:76
IODir
Definition: iodir.h:38
IOObj::phrCannotWriteObj
uiString phrCannotWriteObj() const
IOObj::copyFrom
virtual void copyFrom(const IOObj *)=0
IOObj::key
virtual const MultiID & key() const
Definition: ioobj.h:63
IOObj::connType
virtual const char * connType() const =0
IOObj::isSubdir
virtual bool isSubdir() const
Definition: ioobj.h:153
IOObj::putTo
virtual bool putTo(ascostream &) const =0
ascostream
OpendTect standard ascii format file writing.
Definition: ascstream.h:32
multiid.h
IOObjProducer
Definition: ioobj.h:31
IOObj::isSurveyDefault
static bool isSurveyDefault(const MultiID &)
Checks the 'Default.' entries in SI().pars()
IOObj::implExists
virtual bool implExists(bool forread) const =0
CallBack
CallBacks object-oriented (object + method).
Definition: callback.h:62
IOObj::implManagesObjects
virtual bool implManagesObjects() const
Definition: ioobj.h:84
IOObj::setSurveyDefault
void setSurveyDefault(const char *subsel=0) const
IOObj::produce
static IOObj * produce(const char *, const char *nm=0, const char *ky=0, bool initdefaults=true)
IOObj::phrCannotWriteToDB
uiString phrCannotWriteToDB() const
IOObj::copyStuffFrom
void copyStuffFrom(const IOObj &)
IOObj
Definition: ioobj.h:58
IOObj::isTmp
bool isTmp() const
Definition: ioobj.h:113
IOObj::createTranslator
Translator * createTranslator() const
IOObj::isProcTmp
bool isProcTmp() const
IOObj::setTranslator
virtual void setTranslator(const char *s)
Definition: ioobj.h:75
IOObj::implReadOnly
virtual bool implReadOnly() const
Definition: ioobj.h:82
IOObj::getConn
virtual Conn * getConn(bool forread) const =0
equalIOObj
bool equalIOObj(const MultiID &, const MultiID &)
IOObj::dirName
virtual const char * dirName() const
The directory ame within the tree.
Definition: ioobj.h:89
IOObj::pars_
IOPar & pars_
Definition: ioobj.h:147
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
IOObj::hasConnType
virtual bool hasConnType(const char *s) const
Definition: ioobj.h:68
IOObj::implRename
virtual bool implRename(const char *, const CallBack *cb=0)
Definition: ioobj.h:85
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
IOObj::setGroup
virtual void setGroup(const char *s)
Definition: ioobj.h:77
IOObj::getFrom
virtual bool getFrom(ascistream &)=0
IOObj::clone
IOObj * clone() const
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
IOObj::implSetReadOnly
virtual bool implSetReadOnly(bool) const
Definition: ioobj.h:87
IOObj::phrCannotOpenObj
uiString phrCannotOpenObj() const
IOObj::key_
MultiID key_
Definition: ioobj.h:127
IOObj::fullUserExpr
virtual const char * fullUserExpr(bool forread=true) const =0
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
IOObj::acquireNewKeyIn
void acquireNewKeyIn(const MultiID &)
This will give the IOObj a new (free) ID.
IOObj::implRemove
virtual bool implRemove() const
Definition: ioobj.h:83
Translator::group_
TranslatorGroup * group_
Definition: transl.h:161
IOObj::addProducer
static int addProducer(IOObjProducer *)
Factory for IOObj types. Not for casual use.
Translator
I/O Interpreter class for a certain object type.
Definition: transl.h:123
IOObj::pars
virtual IOPar & pars() const
Definition: ioobj.h:91
ascistream
OpendTect standard ascii format file reading.
Definition: ascstream.h:83
mDeprecated
mDeprecated("Use IOMam::implRemove instead") bool fullImplRemove(const IOObj &)
IOObj::isKey
static bool isKey(const char *)
areEqual
bool areEqual(const IOObj *, const IOObj *)
IOObj::translator
virtual const OD::String & translator() const
Definition: ioobj.h:74
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
IOObj::group_
BufferString group_
Definition: ioobj.h:129
IOObj::phrCannotLoadObj
uiString phrCannotLoadObj() const
Translator::connType
virtual const char * connType() const
IOObj::myKey
int myKey() const

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