OpendTect  6.3
iostrm.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: 2-8-1995
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "generalmod.h"
15 #include "streamconn.h"
16 #include "filemultispec.h"
17 #include "ioobj.h"
18 class StreamProvider;
19 
20 
21 /*\brief is a file entry in the omf. */
22 
23 
24 mExpClass(General) IOStream : public IOObj
25 {
26 public:
27  IOStream(const char* nm=0,DBKey id=DBKey::getInvalid(),
28  bool gendefimpl=false);
29  IOStream(const IOStream&);
30  virtual bool isBad() const;
31 
32  virtual void copyFrom(const IOObj&);
33  virtual const char* fullUserExpr(bool forread=true) const;
34  virtual BufferString mainFileName() const;
35  virtual const char* connType() const;
36  virtual bool isStream() const { return true; }
37  virtual Conn* getConn(bool) const;
38 
39  virtual bool implExists(bool forread) const;
40  virtual bool implReadOnly() const;
41  virtual bool implRemove() const;
42  virtual bool implSetReadOnly(bool) const;
43  virtual bool implRename(const char*,const CallBack* cb=0);
44  virtual bool implManagesObjects() const { return false; }
45 
46  bool isMultiConn() const { return isMulti(); }
47  int curConnIdx() const { return curfidx_; }
48  void resetConnIdx() const { curfidx_ = 0; }
49  int connIdxFor(int nr) const;
50  bool toNextConnIdx() const
51  { curfidx_++; return curfidx_ < nrFiles(); }
52  void setConnIdx( int idx ) const
53  { curfidx_ = idx; }
54 
55  File::MultiSpec& fileSpec() { return fs_; }
56  const File::MultiSpec& fileSpec() const { return fs_; }
57  void setExt( const char* ext ) { extension_ = ext; }
58  void genFileName();
59  bool locateInSharedDir(const char* dirnm);
61 
62  int nrFiles() const { return fs_.nrFiles();}
63  bool isMulti() const { return nrFiles()>1; }
64 
65 protected:
66 
67  virtual bool getFrom(ascistream&);
68  virtual bool putTo(ascostream&) const;
69 
71  mutable int curfidx_;
74 
75  StreamProvider* getStreamProv(bool,bool f=true) const;
76  bool implDoAll(bool,bool yn=true) const;
77 
78 public:
79 
80  virtual void setDirName(const char*);
81  virtual void setAbsDirectory(const char*);
82 
83 };
#define mExpClass(module)
Definition: commondefs.h:157
Definition: ioobj.h:57
Provides I/O stream for file or system command.
Definition: strmprov.h:46
Definition: iostrm.h:24
bool toNextConnIdx() const
Definition: iostrm.h:50
File::MultiSpec fs_
Definition: iostrm.h:70
int curfidx_
Definition: iostrm.h:71
Specification for one or more files.
Definition: filemultispec.h:30
OpendTect standard ascii format file writing.
Definition: ascstream.h:30
bool isMulti() const
Definition: iostrm.h:63
bool isBad() const
Definition: strmprov.h:52
int nrFiles() const
Definition: iostrm.h:62
virtual bool isStream() const
Definition: iostrm.h:36
void setExt(const char *ext)
Definition: iostrm.h:57
const File::MultiSpec & fileSpec() const
Definition: iostrm.h:56
int curConnIdx() const
Definition: iostrm.h:47
BufferString extension_
Definition: iostrm.h:72
static DBKey getInvalid()
Definition: dbkey.h:57
OpendTect standard ascii format file reading.
Definition: ascstream.h:81
Definition: conn.h:31
bool isMultiConn() const
Definition: iostrm.h:46
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
File::MultiSpec & fileSpec()
Definition: iostrm.h:55
virtual bool implManagesObjects() const
Definition: iostrm.h:44
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
void resetConnIdx() const
Definition: iostrm.h:48
CallBacks object-oriented (object + method).
Definition: callback.h:62
BufferString specfname_
Definition: iostrm.h:73
void setConnIdx(int idx) const
Definition: iostrm.h:52

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