OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 #include "uistring.h"
16 #include "manobjectset.h"
17 #include "transl.h"
18 #include "bufstring.h"
19 #include "seispsread.h"
20 #include "seispswrite.h"
21 
22 
23 class IOObj;
24 
25 
64 public:
65 
66  virtual ~SeisPSIOProvider() {}
67 
68  virtual bool canHandle( bool forread, bool for2d ) const
69  { return false; }
70 
71  // IOObj-based interface. Implementation
72  // defaults to the string-based using
73  // IOObj's fullUsrExpr.
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 
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  SeisPS3DReader* get3DReader(const IOObj&,int i=mUdf(int)) const;
140 
143  SeisPS2DReader* get2DReader(const IOObj&,const char* lnm) const;
145  SeisPSWriter* get2DWriter(const IOObj&,const char* lnm) const;
146  bool getGeomIDs(const IOObj&,
147  TypeSet<Pos::GeomID>&) const;
148  bool getLineNames(const IOObj&,
149  BufferStringSet&) const;
150 
151 protected:
152 
154 
155 };
156 
158 
159 
160 //------
162 
164 { isTranslatorGroup(SeisPS3D)
165 public:
167 };
168 
169 
172 public:
174 
175  virtual bool implRemove(const IOObj*) const;
176  virtual bool implRename(const IOObj*,const char*,
177  const CallBack* cb=0) const;
178 };
179 
180 
182 { isTranslator(CBVS,SeisPS3D)
183 public:
184  mDefEmptyTranslatorConstructor(CBVS,SeisPS3D)
185 
186  bool implRemove(const IOObj*) const;
187 };
188 
189 
191 { isTranslatorGroup(SeisPS2D)
192 public:
194 };
195 
196 
199 public:
201 };
202 
203 
205 { isTranslator(CBVS,SeisPS2D)
206 public:
207  mDefEmptyTranslatorConstructor(CBVS,SeisPS2D)
208 
209  bool implRemove(const IOObj*) const;
210 };
211 
212 
SeisPSIOProvider::get2DReader
virtual SeisPS2DReader * get2DReader(const IOObj &, Pos::GeomID) const
seispswrite.h
SeisPSIOProvider::get2DWriter
virtual SeisPSWriter * get2DWriter(const IOObj &, const char *) const
SeisPSIOProvider::get3DReader
virtual SeisPS3DReader * get3DReader(const IOObj &, int i=mUdf(int)) const
SeisPSIOProvider::make2DReader
virtual SeisPS2DReader * make2DReader(const char *, const char *lnm) const
Definition: seispsioprov.h:95
uistring.h
SeisPSIOProviderFactory::get2DReader
SeisPS2DReader * get2DReader(const IOObj &, Pos::GeomID) const
For 2D.
SeisPSIOProvider::type
FixedString type() const
Definition: seispsioprov.h:83
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
SeisPSIOProviderFactory::providers
const ObjectSet< SeisPSIOProvider > & providers() const
Definition: seispsioprov.h:131
ObjectSet< SeisPSIOProvider >
SeisPSIOProviderFactory::getGeomIDs
bool getGeomIDs(const IOObj &, TypeSet< Pos::GeomID > &) const
SeisPSIOProvider::make3DWriter
virtual SeisPSWriter * make3DWriter(const char *) const
Definition: seispsioprov.h:98
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
CBVSSeisPS2DTranslator
Definition: seispsioprov.h:205
SeisPSIOProvider::fetchGeomIDs
virtual bool fetchGeomIDs(const IOObj &, TypeSet< Pos::GeomID > &) const
SeisPSIOProviderFactory::provs_
ManagedObjectSet< SeisPSIOProvider > provs_
Definition: seispsioprov.h:153
isTranslator
#define isTranslator(spec, clss)
Definition: transl.h:244
SeisPSIOProviderFactory::get2DReader
SeisPS2DReader * get2DReader(const IOObj &, const char *lnm) const
mDefEmptyTranslatorConstructor
#define mDefEmptyTranslatorConstructor(spec, clss)
Definition: transl.h:281
SeisPSIOProviderFactory::get3DReader
SeisPS3DReader * get3DReader(const IOObj &, int i=mUdf(int)) const
SeisPSIOProvider::getLineNames
virtual bool getLineNames(const char *, BufferStringSet &) const
Definition: seispsioprov.h:108
SeisPS3DTranslator::mODTextTranslationClass
mODTextTranslationClass(SeisPS3DTranslator)
SeisPS2DReader
reads from a 2D prestack seismic data store.
Definition: seispsread.h:69
SeisPSIOProvider::get2DWriter
virtual SeisPSWriter * get2DWriter(const IOObj &, Pos::GeomID) const
bufstring.h
SeisPS3DTranslator::mDefEmptyTranslatorBaseConstructor
mDefEmptyTranslatorBaseConstructor(SeisPS3D) virtual bool implRemove(const IOObj *) const
SeisPS2DTranslator::mODTextTranslationClass
mODTextTranslationClass(SeisPS2DTranslator)
SeisPSIOProvider::~SeisPSIOProvider
virtual ~SeisPSIOProvider()
Definition: seispsioprov.h:66
ManagedObjectSet< SeisPSIOProvider >
isTranslatorGroup
#define isTranslatorGroup(clss)
Definition: transl.h:220
SeisPSIOProvider::type_
BufferString type_
Definition: seispsioprov.h:120
SeisPSIOProviderFactory::getLineNames
bool getLineNames(const IOObj &, BufferStringSet &) const
CallBack
CallBacks object-oriented (object + method).
Definition: callback.h:62
SeisPSIOProvider
Prestack Seismics objects provider.
Definition: seispsioprov.h:63
SeisPS2DTranslator
Definition: seispsioprov.h:198
SPSIOPF
SeisPSIOProviderFactory & SPSIOPF()
SeisPS3DTranslator::implRename
virtual bool implRename(const IOObj *, const char *, const CallBack *cb=0) const
SeisPSIOProvider::make3DReader
virtual SeisPS3DReader * make3DReader(const char *, int i=mUdf(int)) const
Definition: seispsioprov.h:91
SeisPSIOProvider::sKeyCubeID
static const char * sKeyCubeID
Definition: seispsioprov.h:112
SeisPSIOProvider::make2DReader
virtual SeisPS2DReader * make2DReader(const char *, Pos::GeomID) const
Definition: seispsioprov.h:93
SeisPSIOProviderFactory::add
int add(SeisPSIOProvider *prov)
Definition: seispsioprov.h:129
seispsread.h
mDefEmptyTranslatorGroupConstructor
#define mDefEmptyTranslatorGroupConstructor(clss)
Definition: transl.h:269
SeisPSIOProvider::get2DReader
virtual SeisPS2DReader * get2DReader(const IOObj &, const char *) const
OD::String::buf
const char * buf() const
Definition: odstring.h:46
SeisPSIOProvider::get3DWriter
virtual SeisPSWriter * get3DWriter(const IOObj &) const
SeisPSIOProviderFactory::provider
const SeisPSIOProvider * provider(const char *typ) const
IOObj
Definition: ioobj.h:58
SeisPSIOProvider::getGeomIDs
virtual bool getGeomIDs(const char *, TypeSet< Pos::GeomID > &) const
Definition: seispsioprov.h:105
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
TranslatorGroup
Group of Translators. Has a static factory.
Definition: transl.h:56
SeisPSIOProviderFactory
Definition: seispsioprov.h:126
SeisPSIOProvider::make2DWriter
virtual SeisPSWriter * make2DWriter(const char *, const char *lnm) const
Definition: seispsioprov.h:102
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
mDefEmptyTranslatorBaseConstructor
#define mDefEmptyTranslatorBaseConstructor(clss)
Definition: transl.h:275
SeisPSIOProviderFactory::get2DWriter
SeisPSWriter * get2DWriter(const IOObj &, const char *lnm) const
SeisPSIOProvider::mODTextTranslationClass
mODTextTranslationClass(SeisPSIOProvider)
IOObj::implRemove
virtual bool implRemove() const
Definition: ioobj.h:83
SeisPS3DTranslatorGroup
Translator mechanism is only used for selection etc.
Definition: seispsioprov.h:164
Translator
I/O Interpreter class for a certain object type.
Definition: transl.h:123
SeisPSIOProvider::SeisPSIOProvider
SeisPSIOProvider(const char *t)
Definition: seispsioprov.h:117
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
SeisPS3DTranslator
Definition: seispsioprov.h:171
manobjectset.h
transl.h
SeisPSIOProviderFactory::get3DWriter
SeisPSWriter * get3DWriter(const IOObj &) const
SeisPSWriter
writes to a prestack seismic data store.
Definition: seispswrite.h:35
CBVSSeisPS3DTranslator
Definition: seispsioprov.h:182
SeisPSIOProviderFactory::mODTextTranslationClass
mODTextTranslationClass(SeisPSIOProviderFactory)
SeisPS3DReader
reads from a 3D prestack seismic data store.
Definition: seispsread.h:56
SeisPSIOProvider::fetchLineNames
virtual bool fetchLineNames(const IOObj &, BufferStringSet &) const
SeisPSIOProvider::make2DWriter
virtual SeisPSWriter * make2DWriter(const char *, Pos::GeomID) const
Definition: seispsioprov.h:100
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
SeisPSIOProviderFactory::mk3DPostStackProxy
void mk3DPostStackProxy(IOObj &)
Adds entry to omf for post-stack access.
SeisPSIOProviderFactory::get2DWriter
SeisPSWriter * get2DWriter(const IOObj &, Pos::GeomID) const
TypeSet< Pos::GeomID >
SeisPSIOProvider::canHandle
virtual bool canHandle(bool forread, bool for2d) const
Definition: seispsioprov.h:68
SeisPS2DTranslatorGroup
Definition: seispsioprov.h:191

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