BdsApi  2.2.2
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);
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
Definition: BdsDataFile.h:43
int ooptionList
Definition: BdsDataFile.h:36
WriteOptionsList
Definition: BdsDataFile.h:45
BTimeStamp startTime
Definition: BdsDataFile.h:21
DataOrder
Definition: BdsDataFile.h:43
Definition: BdsDataFile.h:44
int64_t BInt64
BInt64 timeCompare(BTimeStamp t1, BTimeStamp t2, BUInt diff)
Compare timestamps with a margin.
Definition: BdsDataFile.cpp:189
Definition: BdsDataFile.h:46
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
virtual BError getInfo(DataInfo &dataInfo, DataFileOptions options, BList< DataError > &errors)
Get info on data.
Definition: BdsDataFile.cpp:98
virtual BError writeData(const DataBlock &data)
Write a block of data.
Definition: BdsDataFile.cpp:68
DataFile()
Definition: BdsDataFile.cpp:10
DataFileOptions(int options=0)
Definition: BdsDataFile.h:32
Definition: BdsDataFile.h:46
Definition: BdsDataFile.h:46
virtual void init()
Initialise.
Definition: BdsDataFile.cpp:17
Definition: BdsDataFile.h:44
BOAP data class definitions for: Bds.
BString omode
Definition: BdsDataFile.h:85
ReadOptionsList
Definition: BdsDataFile.h:46
virtual BError getMetaData(ChannelInfos &channelInfos)
Return all known MetaData in the file.
Definition: BdsDataFile.cpp:122
virtual BError open(BString fileName, BString mode)
Open the file for read or write.
Definition: BdsDataFile.cpp:20
virtual DataOrder getDataOrder()
Get the expected order of writing data, by sample or by channel.
Definition: BdsDataFile.cpp:38
BUInt64 getFilePosition()
Definition: BdsDataFile.cpp:238
BUInt numSamples
Definition: BdsDataFile.h:26
DataBlockPos(BTimeStamp startTime=0, BTimeStamp endTime=0, BUInt64 position=0, BUInt order=0, int ref=0, BUInt numSamples=0)
Definition: BdsDataFile.h:19
BTimeStamp endTime
Definition: BdsDataFile.h:22
uint64_t BUInt64
BString oformat
Definition: BdsDataFile.h:88
int ref
Definition: BdsDataFile.h:25
This class defines information on a set of data.
Definition: BdsD.h:570
virtual BError close()
Close the file.
Definition: BdsDataFile.cpp:26
virtual BString getFileName()
Return the file name.
Definition: BdsDataFile.cpp:34
This holds information on a seismic data format.
Definition: BdsD.h:826
Definition: BdsDataFile.h:45
virtual BError flush()
Flush data to disk.
Definition: BdsDataFile.cpp:82
This class provides the acual seismic data values contained within a single data block.
Definition: BdsD.h:637
BString ofileName
Definition: BdsDataFile.h:84
int duplicateCheck(const DataBlock &data1, const DataBlock &data2, BUInt channel=0)
Check if blocks are duplicates.
Definition: BdsDataFile.cpp:198
BTimeStamp ofileNameTime
Definition: BdsDataFile.h:86
static DataFormat getFormats()
Get list of supported formats.
Definition: BdsDataFile.cpp:242
Definition: BdsDataFile.h:46
virtual BError setInfo(const DataInfo &dataInfo, const ChannelInfos &channelInfos, WriteOptionsList options=WriteOptionNone)
Set information on data for write.
Definition: BdsDataFile.cpp:54
Definition: BdsC.cc:8
virtual BError getFormat(BString &format)
Get sub-format.
Definition: BdsDataFile.cpp:90
This class provides metadata information on a set of channels.
Definition: BdsD.h:496
Definition: BdsDataFile.h:46
virtual BError end()
End write segment.
Definition: BdsDataFile.cpp:76
This class defines the interface for generic data file access that all of the BDS data conterors shar...
Definition: BdsDataFile.h:41
Definition: BdsDataFile.h:45
Definition: BdsDataFile.h:45
Definition: BdsDataFile.h:43
BUInt32 BUInt
uint32_t BUInt32
Definition: BdsDataFile.h:43
virtual BError setFormat(BString format)
Set the sub-format.
Definition: BdsDataFile.cpp:46
virtual BError fileNameProcess()
Parse the file name for a date/time.
Definition: BdsDataFile.cpp:128
virtual ~DataFile()
Definition: BdsDataFile.cpp:13
DataFileOptions & operator|=(int o)
Definition: BdsDataFile.h:34
int operator<(const DataBlockPos &b) const
Definition: BdsDataFile.h:20
General BdsLib API functions.
BArray< BUInt > oignoreBlockList
Definition: BdsDataFile.h:37
virtual BError readData(BUInt32 channel, BUInt segment, BUInt32 blockNumber, DataBlock &dataBlock)
Read a block.
Definition: BdsDataFile.cpp:114
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
Definition: BdsDataFile.h:46
Features
Definition: BdsDataFile.h:44
BUInt64 position
Definition: BdsDataFile.h:23
virtual BError start(BUInt channel, BUInt segment)
Start writing next segment of data.
Definition: BdsDataFile.cpp:62
virtual int getFeatures()
Get bitmask of supported features.
Definition: BdsDataFile.cpp:42
BFile ofile
Definition: BdsDataFile.h:87
Definition: BdsDataFile.h:44
Definition: BdsDataFile.h:46
Definition: BdsDataFile.h:43
Definition: BdsDataFile.h:46
This defines a list of BDS data convtor options.
Definition: BdsDataFile.h:30
void dataErrorFixup(const DataInfo &dataInfo, BList< DataError > &errors)
Fixup data errors, mainly start/end times to be within data.
Definition: BdsDataFile.cpp:180
BUInt order
Definition: BdsDataFile.h:24