BDS Public
BdsApi 4.0.1
This is the Blacknest BDS API.
Loading...
Searching...
No Matches
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
14namespace Bds {
15
18public:
20 int operator<(const DataBlockPos& b) const { return startTime < b.startTime; }
25 int ref;
27};
28
31public:
32 DataFileOptions(int options = 0){ ooptionList = options; }
33 operator int (){ return ooptionList; }
34 DataFileOptions& operator|=(int o){ ooptionList |= o; return *this; }
35
38};
39
41class DataFile {
42public:
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 virtual BString getFixesInfo();
60 void getNotices(BStringList& notices);
61
62 // Write routines
63 virtual BError setInfo(const DataInfo& dataInfo, const ChannelInfos& channelInfos, WriteOptionsList options = WriteOptionNone);
64 virtual BError start(BUInt channel, BUInt segment);
65 virtual BError writeData(const DataBlock& data);
66 virtual BError end();
67 virtual BError flush();
68
69 // Read routines
70 virtual BError fileNameProcess();
71 virtual BError getFormat(BString& format);
72 virtual BError getInfo(DataInfo& dataInfo, DataFileOptions options, BList<DataError>& errors);
73 virtual BError seekBlock(BUInt32 channel, BUInt segment, BTimeStamp time, BUInt32& blockNumber, BUInt64& sampleNumber, DataBlock& data);
74 virtual BError readData(BUInt32 channel, BUInt segment, BUInt32 blockNumber, DataBlock& dataBlock);
75
76 virtual BError getMetaData(ChannelInfos& channelInfos, BUInt32 options, BList<DataError>& errors);
77
78 // Misc functions
79 void dataErrorFixup(const DataInfo& dataInfo, BList<DataError>& errors);
81 int duplicateCheck(const DataBlock& data1, const DataBlock& data2, BUInt channel = 0);
83 static DataFormats getFormats();
84
85protected:
92};
93
94}
95#endif
BUInt32 BUInt
uint32_t BUInt32
int64_t BInt64
uint64_t BUInt64
BOAP data class definitions for: Bds.
General BdsLib API functions.
This class provides Metadata information on a set of channels.
Definition BdsD.h:566
This defines the position of a data block in a file. It is used by the BDS data converters to order b...
Definition BdsDataFile.h:17
int ref
Definition BdsDataFile.h:25
BTimeStamp endTime
Definition BdsDataFile.h:22
BUInt numSamples
Definition BdsDataFile.h:26
int operator<(const DataBlockPos &b) const
Definition BdsDataFile.h:20
BUInt order
Definition BdsDataFile.h:24
BTimeStamp startTime
Definition BdsDataFile.h:21
DataBlockPos(BTimeStamp startTime=0, BTimeStamp endTime=0, BUInt64 position=0, BUInt order=0, int ref=0, BUInt numSamples=0)
Definition BdsDataFile.h:19
BUInt64 position
Definition BdsDataFile.h:23
This class provides the actual Sensor data values contained within a single data block.
Definition BdsD.h:710
This defines a list of BDS data converter options.
Definition BdsDataFile.h:30
int ooptionList
Definition BdsDataFile.h:36
DataFileOptions(int options=0)
Definition BdsDataFile.h:32
BArray< BUInt > oignoreBlockList
Definition BdsDataFile.h:37
DataFileOptions & operator|=(int o)
Definition BdsDataFile.h:34
This class defines the interface for generic data file access that all of the BDS data converters sha...
Definition BdsDataFile.h:41
int duplicateCheck(const DataBlock &data1, const DataBlock &data2, BUInt channel=0)
Check if blocks are duplicates.
Definition BdsDataFile.cpp:207
virtual BError getInfo(DataInfo &dataInfo, DataFileOptions options, BList< DataError > &errors)
Get info on data.
Definition BdsDataFile.cpp:107
virtual BError getFormat(BString &format)
Get sub-format.
Definition BdsDataFile.cpp:99
DataFile()
Definition BdsDataFile.cpp:10
BString ofileName
Definition BdsDataFile.h:86
virtual BError writeData(const DataBlock &data)
Write a block of data.
Definition BdsDataFile.cpp:77
BInt64 timeCompare(BTimeStamp t1, BTimeStamp t2, BUInt diff)
Compare timestamps with a margin.
Definition BdsDataFile.cpp:198
virtual ~DataFile()
Definition BdsDataFile.cpp:13
Features
Definition BdsDataFile.h:44
@ FeatureCanWrite
Definition BdsDataFile.h:44
@ FeatureCanRead
Definition BdsDataFile.h:44
@ FeatureNone
Definition BdsDataFile.h:44
DataOrder
Definition BdsDataFile.h:43
@ DataOrderAll
Definition BdsDataFile.h:43
@ DataOrderChannel
Definition BdsDataFile.h:43
@ DataOrderSample
Definition BdsDataFile.h:43
@ DataOrderUnknown
Definition BdsDataFile.h:43
virtual int getFeatures()
Get bitmask of supported features.
Definition BdsDataFile.cpp:42
void dataErrorFixup(const DataInfo &dataInfo, BList< DataError > &errors)
Fixup data errors, mainly start/end times to be within data.
Definition BdsDataFile.cpp:189
WriteOptionsList
Definition BdsDataFile.h:45
@ WriteOptionSensorData
Definition BdsDataFile.h:45
@ WriteOptionNone
Definition BdsDataFile.h:45
@ WriteOptionNoMetadata
Definition BdsDataFile.h:45
virtual BString getFileName()
Return the file name.
Definition BdsDataFile.cpp:34
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:115
virtual BError open(BString fileName, BString mode)
Open the file for read or write.
Definition BdsDataFile.cpp:20
virtual BError close()
Close the file.
Definition BdsDataFile.cpp:26
virtual BError getMetaData(ChannelInfos &channelInfos, BUInt32 options, BList< DataError > &errors)
Return all known MetaData in the file.
Definition BdsDataFile.cpp:131
virtual BError setInfo(const DataInfo &dataInfo, const ChannelInfos &channelInfos, WriteOptionsList options=WriteOptionNone)
Set information on data for write.
Definition BdsDataFile.cpp:63
virtual BError flush()
Flush data to disk.
Definition BdsDataFile.cpp:91
virtual BError fileNameProcess()
Parse the file name for a date/time.
Definition BdsDataFile.cpp:137
BString oformat
Definition BdsDataFile.h:90
virtual BError start(BUInt channel, BUInt segment)
Start writing next segment of data.
Definition BdsDataFile.cpp:71
void getNotices(BStringList &notices)
Get a list of any notices.
Definition BdsDataFile.cpp:50
virtual BError setFormat(BString format)
Set the sub-format.
Definition BdsDataFile.cpp:55
ReadOptionsList
Definition BdsDataFile.h:46
@ ReadOptionValidate
Definition BdsDataFile.h:46
@ ReadOptionReorder
Definition BdsDataFile.h:46
@ ReadOptionDeleteDuplicates
Definition BdsDataFile.h:46
@ ReadOptionPrintBlocks
Definition BdsDataFile.h:46
@ ReadOptionFileNameProcess
Definition BdsDataFile.h:46
@ ReadOptionFixCorruptions
Definition BdsDataFile.h:46
@ ReadOptionInfoExtra
Definition BdsDataFile.h:46
@ ReadOptionFixSampleRate
Definition BdsDataFile.h:46
@ ReadOptionIgnoreSamplerate
Definition BdsDataFile.h:46
@ ReadOptionNone
Definition BdsDataFile.h:46
BStringList onotices
Definition BdsDataFile.h:91
BFile ofile
Definition BdsDataFile.h:89
virtual BError readData(BUInt32 channel, BUInt segment, BUInt32 blockNumber, DataBlock &dataBlock)
Read a block.
Definition BdsDataFile.cpp:123
BString omode
Definition BdsDataFile.h:87
static DataFormats getFormats()
Get list of supported formats.
Definition BdsDataFile.cpp:251
BTimeStamp ofileNameTime
Definition BdsDataFile.h:88
BUInt64 getFilePosition()
Definition BdsDataFile.cpp:247
virtual DataOrder getDataOrder()
Get the expected order of writing data, by sample or by channel.
Definition BdsDataFile.cpp:38
virtual void init()
Initialise.
Definition BdsDataFile.cpp:17
virtual BString getFixesInfo()
Get readable list of fixes that can be applied to faulty data files.
Definition BdsDataFile.cpp:46
virtual BError end()
End write segment.
Definition BdsDataFile.cpp:85
This class defines information on a set of data.
Definition BdsD.h:643
Definition BdsC.cc:8