output stream to write seismic data (abstract base)
The concept is based on SFF data contents and we will make use of SFF structures.
- Note
- Design considerations: For most data types it would be convenient to flush data traces to file upon a call to odatstream::writeseries(). For this reason trace data fill be collected by setwid2, setfree, and setinfo and will be flushed to file upon a call to writeseries. Prior to writing the first trace functions odatstream::setsrce() and odatstream::setfree() can be used to write file specific data. This file header will be flushed to file upon calling odatstream::flushfileheader() or upon the first call to odatstream::setwid2(). No file header fields can be written after the first call to odatstream::setwid2(). odatstream::setwid2() must be called for each trace. The other fields are optional.
-
Design considerations: Functions handlesfilefree(), handlessrce(), handlestracefree(), handlesinfo(), seriestype() contain constant and static functionality only. They could replaced by a static const member, like is done with openmode in derived classes. However, since it is useful to have these functions inherintance transparent, such that we cann call them from oanystream, they are implemented as ordinary members and provide data through a mechanism like is used for idatream::providesd().
-
All derived classes have to provide an openmode field. This cannot be provided through the function interface, since the field is requested prior to creating an instance of the class.
-
Due to the design descision just made, a copy of the series will be kept until the next trace will be written, since trace data is flushed in libsffxx upon writing the wid2 data for the next trace.
Definition at line 107 of file datwrite.h.