OpendTect  6.3
seispsioprov.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: Dec 2004
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seispsread.h"
14 #include "seispswrite.h"
15 #include "uistring.h"
16 #include "manobjectset.h"
17 #include "transl.h"
18 #include "bufstring.h"
19 
20 
21 class IOObj;
22 
23 
61 { mODTextTranslationClass(SeisPSIOProvider);
62 public:
63 
64  virtual ~SeisPSIOProvider() {}
65 
66  virtual bool canHandle( bool forread, bool for2d ) const
67  { return false; }
68 
69  // IOObj-based interface. Implementation
70  // defaults to the string-based using
71  // IOObj's fullUsrExpr.
72  virtual SeisPSReader* getReader(const IOObj&,const TrcKey& tk) const;
73 
74  virtual SeisPS3DReader* get3DReader(const IOObj&,
75  int i=mUdf(int)) const;
76  virtual SeisPS2DReader* get2DReader(const IOObj&,Pos::GeomID) const;
77  virtual SeisPS2DReader* get2DReader(const IOObj&,const char*) const;
78 
79  virtual SeisPSWriter* get3DWriter(const IOObj&) const;
80  virtual SeisPSWriter* get2DWriter(const IOObj&,Pos::GeomID) const;
81  virtual SeisPSWriter* get2DWriter(const IOObj&,const char*) const;
82 
83  FixedString type() const { return type_.buf(); }
84  virtual bool fetchGeomIDs(const IOObj&,
85  TypeSet<Pos::GeomID>&) const;
86  virtual bool fetchLineNames(const IOObj&,
87  BufferStringSet&) const;
88 
89  // string-based interface, The key passed must
90  // be what IOObj::fullUsrExpr would return.
91  virtual SeisPS3DReader* make3DReader(const char*,int i=mUdf(int)) const
92  { return 0; }
93  virtual SeisPS2DReader* make2DReader(const char*,Pos::GeomID) const
94  { return 0; }
95  virtual SeisPS2DReader* make2DReader(const char*,const char* lnm) const
96  { return 0; }
97 
98  virtual SeisPSWriter* make3DWriter(const char*) const
99  { return 0; }
100  virtual SeisPSWriter* make2DWriter(const char*,Pos::GeomID) const
101  { return 0; }
102  virtual SeisPSWriter* make2DWriter(const char*,const char* lnm) const
103  { return 0; }
104 
105  virtual bool getGeomIDs(const char*,
106  TypeSet<Pos::GeomID>&) const
107  { return false; }
108  virtual bool getLineNames(const char*,
109  BufferStringSet&) const
110  { return false; }
111 
112  static const char* sKeyCubeID;
113 
114 
115 protected:
116 
117  SeisPSIOProvider( const char* t )
118  : type_(t) {}
119 
121 
122 };
123 
124 
126 { mODTextTranslationClass(SeisPSIOProviderFactory);
127 public:
128 
129  int add( SeisPSIOProvider* prov )
130  { return (provs_ += prov).size(); }
132  { return provs_; }
133 
134  // Convenience functions
135  const SeisPSIOProvider* provider(const char* typ) const;
136 
137  SeisPSReader* getReader(const IOObj&,const TrcKey& tk) const;
138 
139  SeisPS3DReader* get3DReader(const IOObj&,int i=mUdf(int)) const;
140  SeisPSWriter* get3DWriter(const IOObj&) const;
141  void mk3DPostStackProxy(IOObj&);
143 
145  SeisPS2DReader* get2DReader(const IOObj&,Pos::GeomID) const;
146  SeisPS2DReader* get2DReader(const IOObj&,const char* lnm) const;
147  SeisPSWriter* get2DWriter(const IOObj&,Pos::GeomID) const;
148  SeisPSWriter* get2DWriter(const IOObj&,const char* lnm) const;
149  bool getGeomIDs(const IOObj&,
150  TypeSet<Pos::GeomID>&) const;
151  bool getLineNames(const IOObj&,
152  BufferStringSet&) const;
153 
154 protected:
155 
157 
158 };
159 
161 
162 
163 //------
165 
167 { isTranslatorGroup(SeisPS3D);
169 public:
171 };
172 
173 
176 public:
178 
179  virtual bool implRemove(const IOObj*) const;
180 };
181 
182 
184 { isTranslator(CBVS,SeisPS3D)
185 public:
186  mDefEmptyTranslatorConstructor(CBVS,SeisPS3D)
187 
188  bool implRemove(const IOObj*) const;
189 };
190 
191 
193 { isTranslatorGroup(SeisPS2D);
195 public:
197 };
198 
199 
202 public:
204 };
205 
206 
208 { isTranslator(CBVS,SeisPS2D)
209 public:
210  mDefEmptyTranslatorConstructor(CBVS,SeisPS2D)
211 
212  bool implRemove(const IOObj*) const;
213 };
#define mExpClass(module)
Definition: commondefs.h:157
Definition: seispsioprov.h:174
Seismics.
Definition: segydirectdef.h:20
Definition: ioobj.h:57
virtual ~SeisPSIOProvider()
Definition: seispsioprov.h:64
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mGlobal(module)
Definition: commondefs.h:160
OD::String that holds an existing text string.
Definition: fixedstring.h:27
SeisPSIOProviderFactory & SPSIOPF()
virtual SeisPSWriter * make3DWriter(const char *) const
Definition: seispsioprov.h:98
Set of BufferString objects.
Definition: bufstringset.h:25
Definition: seispsioprov.h:125
#define mDefEmptyTranslatorConstructor(spec, clss)
Definition: transl.h:261
reads from a 3D prestack seismic data store.
Definition: seispsread.h:58
ManagedObjectSet< SeisPSIOProvider > provs_
Definition: seispsioprov.h:156
Definition: seispsioprov.h:183
Definition: seispsioprov.h:200
Prestack Seismics objects provider.
Definition: seispsioprov.h:60
#define mDefEmptyTranslatorGroupConstructor(clss)
Definition: transl.h:249
Group of Translators. Has a static factory.
Definition: transl.h:54
BufferString type_
Definition: seispsioprov.h:120
Definition: seispsioprov.h:192
int add(SeisPSIOProvider *prov)
Definition: seispsioprov.h:129
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
SeisPSIOProvider(const char *t)
Definition: seispsioprov.h:117
static const char * sKeyCubeID
Definition: seispsioprov.h:112
#define mDefEmptyTranslatorBaseConstructor(clss)
Definition: transl.h:255
const ObjectSet< SeisPSIOProvider > & providers() const
Definition: seispsioprov.h:131
virtual bool canHandle(bool forread, bool for2d) const
Definition: seispsioprov.h:66
const char * buf() const
Definition: odstring.h:45
virtual bool implRemove() const
Definition: ioobj.h:90
Index_Type GeomID
Definition: commontypes.h:48
I/O Interpreter class for a certain object type.
Definition: transl.h:122
FixedString type() const
Definition: seispsioprov.h:83
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Translator mechanism is only used for selection etc.
Definition: seispsioprov.h:166
Definition: seispsioprov.h:207
virtual SeisPSWriter * make2DWriter(const char *, Pos::GeomID) const
Definition: seispsioprov.h:100
virtual bool getGeomIDs(const char *, TypeSet< Pos::GeomID > &) const
Definition: seispsioprov.h:105
virtual bool getLineNames(const char *, BufferStringSet &) const
Definition: seispsioprov.h:108
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
#define isTranslatorGroup(clss)
In the class definition of a TranslatorGroup class.
Definition: transl.h:188
reads from a prestack seismic data store.
Definition: seispsread.h:33
reads from a 2D prestack seismic data store.
Definition: seispsread.h:71
virtual SeisPSWriter * make2DWriter(const char *, const char *lnm) const
Definition: seispsioprov.h:102
virtual SeisPS2DReader * make2DReader(const char *, const char *lnm) const
Definition: seispsioprov.h:95
virtual SeisPS2DReader * make2DReader(const char *, Pos::GeomID) const
Definition: seispsioprov.h:93
virtual SeisPS3DReader * make3DReader(const char *, int i=mUdf(int)) const
Definition: seispsioprov.h:91
#define isTranslator(spec, clss)
Definition: transl.h:224
writes to a prestack seismic data store.
Definition: seispswrite.h:33

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