BdsApi  2.2.7
This is the Blacknest BDS API.
BdsDataFile.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * BdsDataFile.h Data File Access
3  * T.Barnaby, BEAM Ltd, 2008-06-24
4  *******************************************************************************
5  */
6 #ifndef BdsDataFile_H
7 #define BdsDataFile_H
8 
9 #include <BString.h>
10 #include <BFile.h>
11 #include <BdsLib.h>
12 #include <BdsD.h>
13 
14 namespace Bds {
15 
17 class DataBlockPos {
18 public:
20  int operator<(const DataBlockPos& b) const { return startTime < b.startTime; }
25  int ref;
27 };
28 
31 public:
32  DataFileOptions(int options = 0){ ooptionList = options; }
33  operator int (){ return ooptionList; }
34  DataFileOptions& operator|=(int o){ ooptionList |= o; return *this; }
35 
38 };
39 
41 class DataFile {
42 public:
44  enum Features { FeatureNone = 0x00, FeatureCanWrite = 0x01, FeatureCanRead = 0x02 };
47 
48  DataFile();
49  virtual ~DataFile();
50 
51  virtual void init();
52  virtual BError open(BString fileName, BString mode);
53  virtual BError close();
54 
55  virtual BError setFormat(BString format);
56  virtual BString getFileName();
57  virtual DataOrder getDataOrder();
58  virtual int getFeatures();
59 
60  // Write routines
61  virtual BError setInfo(const DataInfo& dataInfo, const ChannelInfos& channelInfos, WriteOptionsList options = WriteOptionNone);
62  virtual BError start(BUInt channel, BUInt segment);
63  virtual BError writeData(const DataBlock& data);
64  virtual BError end();
65  virtual BError flush();
66 
67  // Read routines
68  virtual BError fileNameProcess();
69  virtual BError getFormat(BString& format);
70  virtual BError getInfo(DataInfo& dataInfo, DataFileOptions options, BList<DataError>& errors);
71  virtual BError seekBlock(BUInt32 channel, BUInt segment, BTimeStamp time, BUInt32& blockNumber, BUInt64& sampleNumber, DataBlock& data);
72  virtual BError readData(BUInt32 channel, BUInt segment, BUInt32 blockNumber, DataBlock& dataBlock);
73 
74  virtual BError getMetaData(ChannelInfos& channelInfos, BUInt32 options, BList<DataError>& errors);
75 
76  // Misc functions
77  void dataErrorFixup(const DataInfo& dataInfo, BList<DataError>& errors);
79  int duplicateCheck(const DataBlock& data1, const DataBlock& data2, BUInt channel = 0);
81  static DataFormat getFormats();
82 
83 protected:
89 };
90 
91 }
92 #endif
BError
BdsLib.h
General BdsLib API functions.
Bds::DataBlockPos
This defines the position of a data block in a file. It is used by the BDS data convertors to order b...
Definition: BdsDataFile.h:17
Bds::DataFile::ReadOptionInfoExtra
@ ReadOptionInfoExtra
Definition: BdsDataFile.h:46
Bds::DataFile::DataOrderSample
@ DataOrderSample
Definition: BdsDataFile.h:43
Bds::DataFileOptions
This defines a list of BDS data convtor options.
Definition: BdsDataFile.h:30
Bds::DataFile::close
virtual BError close()
Close the file.
Definition: BdsDataFile.cpp:26
Bds::DataFile::dataErrorFixup
void dataErrorFixup(const DataInfo &dataInfo, BList< DataError > &errors)
Fixup data errors, mainly start/end times to be within data.
Definition: BdsDataFile.cpp:180
Bds::DataFile::duplicateCheck
int duplicateCheck(const DataBlock &data1, const DataBlock &data2, BUInt channel=0)
Check if blocks are duplicates.
Definition: BdsDataFile.cpp:198
Bds::DataFile::getDataOrder
virtual DataOrder getDataOrder()
Get the expected order of writing data, by sample or by channel.
Definition: BdsDataFile.cpp:38
Bds::DataFile::getFilePosition
BUInt64 getFilePosition()
Definition: BdsDataFile.cpp:238
Bds::DataFile::setInfo
virtual BError setInfo(const DataInfo &dataInfo, const ChannelInfos &channelInfos, WriteOptionsList options=WriteOptionNone)
Set information on data for write.
Definition: BdsDataFile.cpp:54
Bds::DataFile::WriteOptionsList
WriteOptionsList
Definition: BdsDataFile.h:45
Bds::DataBlockPos::numSamples
BUInt numSamples
Definition: BdsDataFile.h:26
Bds::DataFile::DataOrderChannel
@ DataOrderChannel
Definition: BdsDataFile.h:43
BUInt
BUInt32 BUInt
Bds::DataFile::oformat
BString oformat
Definition: BdsDataFile.h:88
BArray< BUInt >
Bds::DataFileOptions::operator|=
DataFileOptions & operator|=(int o)
Definition: BdsDataFile.h:34
Bds::DataFileOptions::oignoreBlockList
BArray< BUInt > oignoreBlockList
Definition: BdsDataFile.h:37
Bds::DataBlockPos::position
BUInt64 position
Definition: BdsDataFile.h:23
Bds::DataFile::init
virtual void init()
Initialise.
Definition: BdsDataFile.cpp:17
BUInt64
uint64_t BUInt64
Bds::DataBlock
This class provides the acual seismic data values contained within a single data block.
Definition: BdsD.h:640
Bds::DataBlockPos::order
BUInt order
Definition: BdsDataFile.h:24
BUInt32
uint32_t BUInt32
Bds::DataFile::WriteOptionSensorData
@ WriteOptionSensorData
Definition: BdsDataFile.h:45
Bds::DataFile::ReadOptionReorder
@ ReadOptionReorder
Definition: BdsDataFile.h:46
Bds::DataFile::DataOrder
DataOrder
Definition: BdsDataFile.h:43
Bds::DataFile::ReadOptionValidateCorruptions
@ ReadOptionValidateCorruptions
Definition: BdsDataFile.h:46
Bds::DataFile::DataOrderUnknown
@ DataOrderUnknown
Definition: BdsDataFile.h:43
Bds::DataFile::FeatureCanRead
@ FeatureCanRead
Definition: BdsDataFile.h:44
Bds::DataBlockPos::endTime
BTimeStamp endTime
Definition: BdsDataFile.h:22
Bds
Definition: BdsC.cc:8
Bds::DataFile::getInfo
virtual BError getInfo(DataInfo &dataInfo, DataFileOptions options, BList< DataError > &errors)
Get info on data.
Definition: BdsDataFile.cpp:98
BInt64
int64_t BInt64
BString
Bds::DataFile::Features
Features
Definition: BdsDataFile.h:44
BFile.h
Bds::DataFileOptions::ooptionList
int ooptionList
Definition: BdsDataFile.h:36
Bds::DataFile::fileNameProcess
virtual BError fileNameProcess()
Parse the file name for a date/time.
Definition: BdsDataFile.cpp:128
Bds::DataInfo
This class defines information on a set of data.
Definition: BdsD.h:573
Bds::DataFile::getFileName
virtual BString getFileName()
Return the file name.
Definition: BdsDataFile.cpp:34
Bds::DataFile::omode
BString omode
Definition: BdsDataFile.h:85
Bds::DataFile::ofile
BFile ofile
Definition: BdsDataFile.h:87
Bds::DataFormat
This holds information on a seismic data format.
Definition: BdsD.h:829
Bds::DataFile::open
virtual BError open(BString fileName, BString mode)
Open the file for read or write.
Definition: BdsDataFile.cpp:20
BFile
Bds::DataFile
This class defines the interface for generic data file access that all of the BDS data conterors shar...
Definition: BdsDataFile.h:41
Bds::DataFile::WriteOptionNoMetadata
@ WriteOptionNoMetadata
Definition: BdsDataFile.h:45
Bds::DataFileOptions::DataFileOptions
DataFileOptions(int options=0)
Definition: BdsDataFile.h:32
Bds::DataFile::ReadOptionValidate
@ ReadOptionValidate
Definition: BdsDataFile.h:46
Bds::DataFile::ReadOptionDeleteDuplicates
@ ReadOptionDeleteDuplicates
Definition: BdsDataFile.h:46
BString.h
Bds::DataFile::ReadOptionFileNameProcess
@ ReadOptionFileNameProcess
Definition: BdsDataFile.h:46
Bds::DataFile::getFeatures
virtual int getFeatures()
Get bitmask of supported features.
Definition: BdsDataFile.cpp:42
BTimeStamp
Bds::DataFile::FeatureCanWrite
@ FeatureCanWrite
Definition: BdsDataFile.h:44
Bds::DataFile::WriteOptionNone
@ WriteOptionNone
Definition: BdsDataFile.h:45
Bds::DataFile::flush
virtual BError flush()
Flush data to disk.
Definition: BdsDataFile.cpp:82
Bds::DataFile::DataOrderAll
@ DataOrderAll
Definition: BdsDataFile.h:43
Bds::DataFile::ofileName
BString ofileName
Definition: BdsDataFile.h:84
BdsD.h
BOAP data class definitions for: Bds.
Bds::DataFile::ofileNameTime
BTimeStamp ofileNameTime
Definition: BdsDataFile.h:86
Bds::DataFile::getFormats
static DataFormat getFormats()
Get list of supported formats.
Definition: BdsDataFile.cpp:242
Bds::DataFile::ReadOptionIgnoreSamplerate
@ ReadOptionIgnoreSamplerate
Definition: BdsDataFile.h:46
Bds::DataFile::timeCompare
BInt64 timeCompare(BTimeStamp t1, BTimeStamp t2, BUInt diff)
Compare timestamps with a margin.
Definition: BdsDataFile.cpp:189
Bds::DataFile::getFormat
virtual BError getFormat(BString &format)
Get sub-format.
Definition: BdsDataFile.cpp:90
Bds::DataBlockPos::DataBlockPos
DataBlockPos(BTimeStamp startTime=0, BTimeStamp endTime=0, BUInt64 position=0, BUInt order=0, int ref=0, BUInt numSamples=0)
Definition: BdsDataFile.h:19
Bds::DataFile::writeData
virtual BError writeData(const DataBlock &data)
Write a block of data.
Definition: BdsDataFile.cpp:68
Bds::DataBlockPos::operator<
int operator<(const DataBlockPos &b) const
Definition: BdsDataFile.h:20
Bds::DataFile::end
virtual BError end()
End write segment.
Definition: BdsDataFile.cpp:76
Bds::DataFile::readData
virtual BError readData(BUInt32 channel, BUInt segment, BUInt32 blockNumber, DataBlock &dataBlock)
Read a block.
Definition: BdsDataFile.cpp:114
Bds::DataBlockPos::ref
int ref
Definition: BdsDataFile.h:25
BList
Bds::DataFile::ReadOptionPrintBlocks
@ ReadOptionPrintBlocks
Definition: BdsDataFile.h:46
Bds::DataFile::FeatureNone
@ FeatureNone
Definition: BdsDataFile.h:44
Bds::DataFile::start
virtual BError start(BUInt channel, BUInt segment)
Start writing next segment of data.
Definition: BdsDataFile.cpp:62
Bds::DataFile::ReadOptionsList
ReadOptionsList
Definition: BdsDataFile.h:46
Bds::DataFile::setFormat
virtual BError setFormat(BString format)
Set the sub-format.
Definition: BdsDataFile.cpp:46
Bds::DataBlockPos::startTime
BTimeStamp startTime
Definition: BdsDataFile.h:21
Bds::DataFile::ReadOptionNone
@ ReadOptionNone
Definition: BdsDataFile.h:46
Bds::DataFile::~DataFile
virtual ~DataFile()
Definition: BdsDataFile.cpp:13
Bds::DataFile::seekBlock
virtual BError seekBlock(BUInt32 channel, BUInt segment, BTimeStamp time, BUInt32 &blockNumber, BUInt64 &sampleNumber, DataBlock &data)
Find requested block on given channel given a time.
Definition: BdsDataFile.cpp:106
Bds::DataFile::getMetaData
virtual BError getMetaData(ChannelInfos &channelInfos, BUInt32 options, BList< DataError > &errors)
Return all known MetaData in the file.
Definition: BdsDataFile.cpp:122
Bds::DataFile::DataFile
DataFile()
Definition: BdsDataFile.cpp:10
Bds::ChannelInfos
This class provides metadata information on a set of channels.
Definition: BdsD.h:499