OpendTect  6.6
seiswrite.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: 27-1-98
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 
28 #include "seismod.h"
29 #include "seisstor.h"
30 #include "fixedstring.h"
31 #include "linekey.h"
32 #include "uistring.h"
33 class SeisTrc;
34 class SeisPSWriter;
35 class Seis2DLinePutter;
36 namespace Threads { class ConditionVar; }
37 namespace PosInfo { class Line2DData; }
38 
39 
42 public:
43 
44  SeisTrcWriter(const IOObj*,
45  const GeomIDProvider* r=0);
48  SeisTrcWriter(const char*,bool is_2d,bool is_ps);
52  virtual bool close();
53 
54  bool prepareWork(const SeisTrc&);
55  virtual bool put(const SeisTrc&);
56  int nrWritten() const { return nrwritten_; }
57 
58  bool isMultiComp() const;
59  bool isMultiConn() const;
60  IOPar& auxPars() { return auxpars_; }
61 
62  Seis2DLinePutter* linePutter() { return putter_; }
63  const Seis2DLinePutter* linePutter() const { return putter_; }
64 
65  SeisPSWriter* psWriter() { return pswriter_; }
66  const SeisPSWriter* psWriter() const { return pswriter_; }
67 
68  // 2D only
69  const GeomIDProvider* geomIDProvider() const { return gidp_; }
74  void setAttrib( const char* a ) { attribnm_ = a; }
76  void setDataType( const char* dt ) { datatype_ = dt; }
77 
78  void setCrFrom( const char* str ) { crfrom_ = str; }
79  void setCrUserInfo( const char* str ) { crusrinfo_ = str; }
81 
82 protected:
83 
84  bool prepared_;
85  int nrtrcs_;
88  int firstns_;
91 
92  void init();
93  void startWork();
94 
95  // PS only
97 
98  // 3D only
99  Conn* crConn(int,bool);
100  bool ensureRightConn(const SeisTrc&,bool);
101  bool start3DWrite(Conn*,const SeisTrc&);
102 
103  // 2D only
111  bool next2DLine();
112  bool put2D(const SeisTrc&);
113 
117 
118 };
119 
120 
127 public:
128  SeisSequentialWriter( SeisTrcWriter*, int buffsize=-1 );
132  bool announceTrace(const BinID&);
136  bool submitTrace( SeisTrc*, bool waitforbuffer=true );
141  bool waitforbuffer=true );
148  bool finishWrite();
152  uiString errMsg() const { return errmsg_; }
153 
154 protected:
155 
156  bool iterateBuffer(bool waitforbuffer);
157  void reportWrite(const char*);
158  friend class SeisSequentialWriterTask;
159 
164  const int maxbuffersize_;
165 
167 
168  int queueid_;
170 
171 };
172 
173 
SeisSequentialWriter::iterateBuffer
bool iterateBuffer(bool waitforbuffer)
SeisTrcWriter::put
virtual bool put(const SeisTrc &)
SeisSequentialWriter::reportWrite
void reportWrite(const char *)
SeisSequentialWriter::~SeisSequentialWriter
~SeisSequentialWriter()
SeisTrcWriter::setGeomIDProvider
void setGeomIDProvider(const GeomIDProvider *)
SeisSequentialWriter::finishWrite
bool finishWrite()
SeisTrcWriter::auxpars_
IOPar & auxpars_
Definition: seiswrite.h:90
SeisTrcWriter::crConn
Conn * crConn(int, bool)
Conn
Data connection.
Definition: conn.h:30
SeisTrcWriter::isMultiConn
bool isMultiConn() const
SeisTrcWriter::nrwritten_
int nrwritten_
Definition: seiswrite.h:86
uistring.h
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
SeisTrcWriter::close
virtual bool close()
ObjectSet< SeisTrc >
SeisTrcWriter::linedata_
PosInfo::Line2DData * linedata_
Definition: seiswrite.h:106
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
SeisSequentialWriter::latestbid_
BinID latestbid_
Definition: seiswrite.h:166
SeisSequentialWriter::submitGather
bool submitGather(ObjectSet< SeisTrc > &, bool waitforbuffer=true)
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisSequentialWriter::maxbuffersize_
const int maxbuffersize_
Definition: seiswrite.h:164
SeisSequentialWriter::announceTrace
bool announceTrace(const BinID &)
fixedstring.h
SeisTrcWriter::firstsampling_
SamplingData< float > firstsampling_
Definition: seiswrite.h:89
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisTrc
Seismic trace.
Definition: seistrc.h:34
seisstor.h
SeisTrcWriter::startWork
void startWork()
SeisSequentialWriter::submitTrace
bool submitTrace(SeisTrc *, bool waitforbuffer=true)
SeisSequentialWriter::lock_
Threads::ConditionVar & lock_
Definition: seiswrite.h:162
SeisTrcWriter::pswriter_
SeisPSWriter * pswriter_
Definition: seiswrite.h:96
SeisTrcWriter::prepareWork
bool prepareWork(const SeisTrc &)
SeisSequentialWriter
Definition: seiswrite.h:126
SeisTrcWriter::~SeisTrcWriter
~SeisTrcWriter()
SeisTrcWriter::datatype_
BufferString datatype_
Definition: seiswrite.h:110
SeisTrcWriter::crusrinfo_
BufferString crusrinfo_
Definition: seiswrite.h:115
Seis2DLinePutter
interface for object that writes 2D seismic data
Definition: seis2dlineio.h:41
SeisTrcWriter::firstns_
int firstns_
Definition: seiswrite.h:88
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
SeisTrcWriter::crfrom_
BufferString crfrom_
Definition: seiswrite.h:114
SeisTrcWriter::geomIDProvider
const GeomIDProvider * geomIDProvider() const
Definition: seiswrite.h:69
SeisTrcWriter::setSelData
void setSelData(Seis::SelData *)
SeisTrcWriter::setCrUserInfo
void setCrUserInfo(const char *str)
Definition: seiswrite.h:79
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
SeisTrcWriter::nrWritten
int nrWritten() const
Definition: seiswrite.h:56
SeisSequentialWriter::errmsg_
uiString errmsg_
Definition: seiswrite.h:169
SeisTrcWriter::start3DWrite
bool start3DWrite(Conn *, const SeisTrc &)
Seis::SelData
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
SeisTrcWriter::isMultiComp
bool isMultiComp() const
SeisSequentialWriter::SeisSequentialWriter
SeisSequentialWriter(SeisTrcWriter *, int buffsize=-1)
SeisTrcWriter::worktrc_
SeisTrc & worktrc_
Definition: seiswrite.h:87
SamplingData< float >
Threads::ConditionVar
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:110
SeisTrcWriter::linePutter
const Seis2DLinePutter * linePutter() const
Definition: seiswrite.h:63
SeisTrcWriter::setComponentNames
void setComponentNames(const BufferStringSet &)
IOObj
Definition: ioobj.h:58
SeisTrcWriter::psWriter
const SeisPSWriter * psWriter() const
Definition: seiswrite.h:66
SeisTrcWriter::attribnm_
BufferString attribnm_
Definition: seiswrite.h:104
SeisSequentialWriter::queueid_
int queueid_
Definition: seiswrite.h:168
SeisSequentialWriter::errMsg
uiString errMsg() const
Definition: seiswrite.h:152
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
SeisTrcWriter::psWriter
SeisPSWriter * psWriter()
Definition: seiswrite.h:65
SeisTrcWriter::next2DLine
bool next2DLine()
SeisTrcWriter::auxPars
IOPar & auxPars()
Definition: seiswrite.h:60
SeisSequentialWriter::announcedtraces_
TypeSet< BinID > announcedtraces_
Definition: seiswrite.h:161
SeisTrcWriter::compnames_
BufferStringSet compnames_
Definition: seiswrite.h:116
SeisTrcWriter::SeisTrcWriter
mODTextTranslationClass(SeisTrcWriter) public SeisTrcWriter(const char *, bool is_2d, bool is_ps)
SeisSequentialWriter::outputs_
ObjectSet< SeisTrc > outputs_
Definition: seiswrite.h:163
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
SeisTrcWriter::put2D
bool put2D(const SeisTrc &)
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
SeisTrcWriter::linePutter
Seis2DLinePutter * linePutter()
Definition: seiswrite.h:62
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
linekey.h
SeisTrcWriter::init
void init()
SeisTrcWriter::prepared_
bool prepared_
Definition: seiswrite.h:84
SeisTrcWriter::setCrFrom
void setCrFrom(const char *str)
Definition: seiswrite.h:78
SeisPSWriter
writes to a prestack seismic data store.
Definition: seispswrite.h:35
SeisSequentialWriter::writer_
SeisTrcWriter * writer_
Definition: seiswrite.h:160
SeisTrcWriter::putter_
Seis2DLinePutter * putter_
Definition: seiswrite.h:105
SeisTrcWriter::spnrs_
TypeSet< float > spnrs_
Definition: seiswrite.h:107
SeisStoreAccess
base class for seis reader and writer.
Definition: seisstor.h:33
SeisTrcWriter::nrtrcs_
int nrtrcs_
Definition: seiswrite.h:85
SeisTrcWriter
Definition: seiswrite.h:41
Threads
interface to threads that should be portable.
Definition: atomic.h:23
SeisTrcWriter::setDataType
void setDataType(const char *dt)
Definition: seiswrite.h:76
SeisTrcWriter::prevgeomid_
Pos::GeomID prevgeomid_
Definition: seiswrite.h:108
SeisSequentialWriter::mODTextTranslationClass
mODTextTranslationClass(SeisSequentialWriter)
SeisTrcWriter::ensureRightConn
bool ensureRightConn(const SeisTrc &, bool)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
GeomIDProvider
Class providing a current line key.
Definition: linekey.h:53
SeisTrcWriter::gidp_
const GeomIDProvider * gidp_
Definition: seiswrite.h:109
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
SeisTrcWriter::setAttrib
void setAttrib(const char *a)
if set, overrules attrib in linekey
Definition: seiswrite.h:74
TypeSet< float >

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