\doxysection{Bds\+Data\+File\+Bds.\+h}
\hypertarget{BdsDataFileBds_8h_source}{}\label{BdsDataFileBds_8h_source}\index{/src/blacknest/bds/bds/bdsDataLib/BdsDataFileBds.h@{/src/blacknest/bds/bds/bdsDataLib/BdsDataFileBds.h}}
\mbox{\hyperlink{BdsDataFileBds_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*******************************************************************************}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ *\ \ BdsDataFileBds.h\ \ \ \ Bds\ internal\ data\ file\ format}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ T.Barnaby,\ \ BEAM\ Ltd,\ \ \ 2008-\/05-\/06}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *******************************************************************************}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *\ \ Supported\ sub-\/formats:}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ \ \ \ \ \ BDS,\ BDS-\/SM\ BDS\ Sample\ Multiplexed}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ *\ \ \ \ \ \ BDS-\/CM\ \ \ \ \ \ BDS\ Channel\ Multiplexed}}
\DoxyCodeLine{00009\ \textcolor{comment}{\ *\ \ \ \ \ \ BDS-\/SM-\/CC\ \ \ BDS\ Sample\ Multiplexed,\ Canadian\ Compression}}
\DoxyCodeLine{00010\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00011\ \textcolor{comment}{\ *\ A\ BDS\ data\ file\ contains\ multiple\ streams.\ Each\ stream,\ numbered\ from\ 0\ upwards,\ contains\ information\ blocks\ or}}
\DoxyCodeLine{00012\ \textcolor{comment}{\ *\ \ data\ blocks\ for\ a\ specic\ data\ channel\ or\ set\ of\ channels\ if\ the\ channel\ data\ is\ sample\ multiplexed\ into\ a\ block.}}
\DoxyCodeLine{00013\ \textcolor{comment}{\ *\ Data\ streams\ are\ split\ into\ segments\ at\ time\ discontinuities\ when\ using\ the\ getInfo()\ function..}}
\DoxyCodeLine{00014\ \textcolor{comment}{\ *\ Each\ segment\ consists\ of\ a\ set\ of\ data\ blocks\ and\ each\ data\ block\ can\ be\ for\ one\ channel\ or\ a\ number\ of\ sample\ multiplexed\ channels.}}
\DoxyCodeLine{00015\ \textcolor{comment}{\ *\ The\ siesmic\ channel\ to\ stream\ mapping\ is\ stored\ in\ the\ Information\ blocks.\ An\ information\ block\ is\ located\ at\ the\ start\ of\ the}}
\DoxyCodeLine{00016\ \textcolor{comment}{\ *\ \ file\ and\ at\ each\ append\ point.\ You\ can\ only\ append\ data\ channels\ that\ the\ files\ was\ originally\ created\ for\ (ie.\ the\ first\ setInfo()\ API\ call).}}
\DoxyCodeLine{00017\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00018\ \textcolor{comment}{\ *\ If\ the\ ReadOptionReorder\ option\ is\ used\ the\ data\ segments\ and\ blocks\ are\ sorted\ into\ time\ order.}}
\DoxyCodeLine{00019\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00020\ \textcolor{comment}{\ *\ The\ file\ can\ be\ appended\ to.\ When\ opened\ for\ appending}}
\DoxyCodeLine{00021\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#ifndef\ BdsDataFileBds\_H}}
\DoxyCodeLine{00023\ \textcolor{preprocessor}{\#define\ BdsDataFileBds\_H\ \ \ \ 1}}
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ \textcolor{preprocessor}{\#include\ <\mbox{\hyperlink{BdsDataFile_8h}{BdsDataFile.h}}>}}
\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#include\ <BBuffer.h>}}
\DoxyCodeLine{00027\ }
\DoxyCodeLine{00028\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceBds}{Bds}}\ \{}
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00031\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{namespaceBds_a7c436e2825b45e418b58c3a82d838e5f}{BdsDataType}}\ \ \ \ \ \{\ \mbox{\hyperlink{namespaceBds_a7c436e2825b45e418b58c3a82d838e5faee6a162c3ff0e44732b789d90da118af}{BdsDataTypeBlock}}\ =\ 0x42534442,\ \mbox{\hyperlink{namespaceBds_a7c436e2825b45e418b58c3a82d838e5fa88641a3417e3a0b63f86ff13b8a85945}{BdsDataTypeInfo}}\ =\ 0x30534442,\ \mbox{\hyperlink{namespaceBds_a7c436e2825b45e418b58c3a82d838e5faa052bcc229b517c03029eba76c9d6cef}{BdsDataTypeData}}\ =\ 0x31534442,\ \mbox{\hyperlink{namespaceBds_a7c436e2825b45e418b58c3a82d838e5fab2664580a1863f67c70166abedde53c0}{BdsDataTypeInfoExtra}}\ =\ 0x32534442\ \};}
\DoxyCodeLine{00032\ }
\DoxyCodeLine{00034\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structBds_1_1BdsDataBlockHeader}{BdsDataBlockHeader}}\ \{}
\DoxyCodeLine{00035\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlockHeader_a31b1b74954d8161c01c99cd637f3fb43}{type}};\ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00036\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlockHeader_a183ed1242ce2389b2b1c51b96ba6dd6e}{length}};\ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00037\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlockHeader_a020cbfa0e62a0c57d5e2ffe19a2cddc0}{packetOffset}};\ \ \ \ \ \ \ }
\DoxyCodeLine{00038\ \};}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00041\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structBds_1_1BdsDataBlock}{BdsDataBlock}}\ \{}
\DoxyCodeLine{00042\ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlockHeader}{BdsDataBlockHeader}}\ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlock_a957f76c4171038eabb65976ce06d1900}{header}};}
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keywordtype}{char}\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlock_a0082a78857d3d4ccd759f198c01d544f}{data}}[4];\ \ \ \ }
\DoxyCodeLine{00044\ \};}
\DoxyCodeLine{00045\ }
\DoxyCodeLine{00047\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{BdsDataPacketHeader}}\ \{}
\DoxyCodeLine{00048\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_a238b8f05af2f209f3b6184e948754a8f}{type}};\ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00049\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_abd7d98bc159c756e0fc74752abae8f4b}{length}};\ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00050\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_aca705bc76f9fe2032ae89aa6df1dc912}{streamlet}};\ \ \ \ \ }
\DoxyCodeLine{00051\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_afce4be0d0a4e713de600496159db9f92}{sequence}};\ \ \ \ \ \ \ }
\DoxyCodeLine{00052\ \ \ \ \ BUInt32\ \ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_a663654046a58fda756b13e5dec7d6f5b}{checksum}};\ \ \ \ \ \ \ }
\DoxyCodeLine{00053\ \ \ \ \ BTimeStamp\ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_a3d3645ebe48e9644672b96b42825348b}{startTime}};\ \ \ \ \ }
\DoxyCodeLine{00054\ \ \ \ \ BTimeStamp\ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader_afdcb48c8120ab1e37a2c3342c79d84b1}{endTime}};\ \ \ \ \ }
\DoxyCodeLine{00055\ \};}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00058\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\ :\ \textcolor{keyword}{public}\ BBufferStore\ \{}
\DoxyCodeLine{00059\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a651194306f518795a51eec0825f9c54d}{BdsDataPacket}}();}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a6b351bb1ae9abfbc0b7cb204baecb08f}{\string~BdsDataPacket}}();}
\DoxyCodeLine{00062\ }
\DoxyCodeLine{00063\ \ \ \ \ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a7d5f4a6615f610118162081730d95d71}{clear}}();}
\DoxyCodeLine{00064\ \ \ \ \ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a7a603d69a11665bf68163affcbc7ef5a}{reset}}();}
\DoxyCodeLine{00065\ }
\DoxyCodeLine{00066\ \ \ \ \ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a781b1a280746ddd914263891450a4f57}{setChecksumAndLength}}();}
\DoxyCodeLine{00067\ \ \ \ \ BError\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a858a6e356bef6ad43d1806d88c979192}{validateChecksum}}();}
\DoxyCodeLine{00068\ }
\DoxyCodeLine{00069\ \ \ \ \ BError\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a92802567029bdfb2b0a5a6a698ed5397}{setHeader}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{BdsDataPacketHeader}}\&\ header);}
\DoxyCodeLine{00070\ \ \ \ \ BError\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_ab5a16d47b57b539b5bc741ba77da68c7}{getHeader}}(\mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{BdsDataPacketHeader}}\&\ header);}
\DoxyCodeLine{00071\ \ \ \ \ }
\DoxyCodeLine{00072\ \ \ \ \ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket_a96d3f4ae34de75a381e0e5563045dd18}{dump}}();}
\DoxyCodeLine{00073\ \};}
\DoxyCodeLine{00074\ }
\DoxyCodeLine{00076\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classBds_1_1BdsDataBlockPos}{BdsDataBlockPos}}\ \{}
\DoxyCodeLine{00077\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a2c218ec8807331e47d5cf6e9742187c8}{BdsDataBlockPos}}(BTimeStamp\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}}\ =\ 0,\ BTimeStamp\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a63107665241c4ee2c8954586403d04cd}{endTime}}\ =\ 0,\ BUInt32\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a839fc033e1e4e3eb7881a113e7507d66}{channel}}\ =\ 0,\ BUInt32\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a8cb9191c8c4bfa0b1c12d083e6af7220}{numChannels}}\ =\ 0,\ BUInt32\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a7c26164fc286e745f8508233321de19d}{segment}}\ =\ 0,\ BUInt64\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_adad02361c221f5c232f1ee416ba1ceaf}{position}}\ =\ 0,\ BUInt64\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a87e58d1b477ca3e778ae228b3ddc3eec}{numSamples}}\ =\ 0)\ :}
\DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a63107665241c4ee2c8954586403d04cd}{endTime}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a63107665241c4ee2c8954586403d04cd}{endTime}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a839fc033e1e4e3eb7881a113e7507d66}{channel}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a839fc033e1e4e3eb7881a113e7507d66}{channel}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a8cb9191c8c4bfa0b1c12d083e6af7220}{numChannels}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a8cb9191c8c4bfa0b1c12d083e6af7220}{numChannels}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a7c26164fc286e745f8508233321de19d}{segment}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a7c26164fc286e745f8508233321de19d}{segment}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_adad02361c221f5c232f1ee416ba1ceaf}{position}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_adad02361c221f5c232f1ee416ba1ceaf}{position}}),\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a87e58d1b477ca3e778ae228b3ddc3eec}{numSamples}}(\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a87e58d1b477ca3e778ae228b3ddc3eec}{numSamples}})\{\}}
\DoxyCodeLine{00080\ \ \ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_aac88326a1f1e44a393be832b1d99b445}{operator<}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos}{BdsDataBlockPos}}\&\ b)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}}\ <\ b.\mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}};\ \}}
\DoxyCodeLine{00081\ }
\DoxyCodeLine{00082\ \ \ \ \ BTimeStamp\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a144e0ed786aa3bd82b86138d9a069f02}{startTime}};}
\DoxyCodeLine{00083\ \ \ \ \ BTimeStamp\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a63107665241c4ee2c8954586403d04cd}{endTime}};}
\DoxyCodeLine{00084\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a839fc033e1e4e3eb7881a113e7507d66}{channel}};}
\DoxyCodeLine{00085\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a8cb9191c8c4bfa0b1c12d083e6af7220}{numChannels}};}
\DoxyCodeLine{00086\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a7c26164fc286e745f8508233321de19d}{segment}};}
\DoxyCodeLine{00087\ \ \ \ \ BUInt64\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_adad02361c221f5c232f1ee416ba1ceaf}{position}};}
\DoxyCodeLine{00088\ \ \ \ \ BUInt64\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataBlockPos_a87e58d1b477ca3e778ae228b3ddc3eec}{numSamples}};}
\DoxyCodeLine{00089\ \};}
\DoxyCodeLine{00090\ }
\DoxyCodeLine{00092\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classBds_1_1BdsDataSegment}{BdsDataSegment}}\ \{}
\DoxyCodeLine{00093\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00094\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a1f90a1324122ecb2a725ff095dd30f3d}{BdsDataSegment}}()\ :\ \mbox{\hyperlink{classBds_1_1BdsDataSegment_acf1e2e74d93818727f7f64340dc4d3fc}{numBlocks}}(0),\ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a093341d188dae10e88a55e1bb164b552}{numSamples}}(0),\ \mbox{\hyperlink{classBds_1_1BdsDataSegment_ae5b5fc4fe17cadcc34e5219797c4efd0}{sampleRate}}(0.0)\{\};}
\DoxyCodeLine{00095\ \ \ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a419bf3757f0bc3f9085ba183d0465ab9}{operator<}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1BdsDataSegment}{BdsDataSegment}}\&\ b)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classBds_1_1BdsDataSegment_aeae098ab30a339a340afb919f0e2833e}{startTime}}\ <\ b.\mbox{\hyperlink{classBds_1_1BdsDataSegment_aeae098ab30a339a340afb919f0e2833e}{startTime}};\ \}}
\DoxyCodeLine{00096\ }
\DoxyCodeLine{00097\ \ \ \ \ BTimeStamp\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_aeae098ab30a339a340afb919f0e2833e}{startTime}};}
\DoxyCodeLine{00098\ \ \ \ \ BTimeStamp\ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a10ed682d61ee741f519afdc52fccf984}{endTime}};}
\DoxyCodeLine{00099\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_acf1e2e74d93818727f7f64340dc4d3fc}{numBlocks}};}
\DoxyCodeLine{00100\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a093341d188dae10e88a55e1bb164b552}{numSamples}};}
\DoxyCodeLine{00101\ \ \ \ \ \textcolor{keywordtype}{double}\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_ae5b5fc4fe17cadcc34e5219797c4efd0}{sampleRate}};}
\DoxyCodeLine{00102\ \ \ \ \ BArray<BdsDataBlockPos>\ \ \mbox{\hyperlink{classBds_1_1BdsDataSegment_a1aa3fa99f40fb9ccd7397662334f1c5a}{blocks}};\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ The\ list\ of\ blocks\ in\ the\ segment}}
\DoxyCodeLine{00103\ \};}
\DoxyCodeLine{00104\ }
\DoxyCodeLine{00106\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classBds_1_1BdsDataStreamlet}{BdsDataStreamlet}}\ \{}
\DoxyCodeLine{00107\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a23c28e45a19978e18e39fbed5e0716a1}{BdsDataStreamlet}}()\ :\ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a78e2bfa0bd3422c3b3bd1b896e912d5d}{packetNumber}}(0),\ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a138af7afad59e3a15eec1f68b426ba08}{position}}(0),\ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a73c218f3fce9a2fb82baf042e6a83811}{channel}}(0),\ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_acb934787bf13c3b323f9ef24a37f79c3}{numChannels}}(0)\{\}}
\DoxyCodeLine{00109\ }
\DoxyCodeLine{00110\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a78e2bfa0bd3422c3b3bd1b896e912d5d}{packetNumber}};}
\DoxyCodeLine{00111\ \ \ \ \ BUInt64\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a138af7afad59e3a15eec1f68b426ba08}{position}};}
\DoxyCodeLine{00112\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a73c218f3fce9a2fb82baf042e6a83811}{channel}};\ \ \ \ \ \textcolor{comment}{//\ The\ base\ channel\ number\ of\ data\ in\ this\ streamlet}}
\DoxyCodeLine{00113\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_acb934787bf13c3b323f9ef24a37f79c3}{numChannels}};\ \ \ \ \ \textcolor{comment}{//\ The\ number\ of\ channels\ of\ data\ in\ this\ streamlet}}
\DoxyCodeLine{00114\ \ \ \ \ BArray<BdsDataBlockPos>\ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a2409df6a61d05d2abf50ef39a843cef5}{blocks}};\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ All\ blocks\ in\ this\ streamlet}}
\DoxyCodeLine{00115\ \ \ \ \ BArray<BdsDataSegment>\ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet_a0e31b616b176de98d8c8f2daef92b071}{segments}};\ \ \ \ \ \ \ \textcolor{comment}{//\ Segments\ of\ data}}
\DoxyCodeLine{00116\ \};}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00118\ }
\DoxyCodeLine{00120\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classBds_1_1DataFileBds}{DataFileBds}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classBds_1_1DataFile}{DataFile}}\ \{}
\DoxyCodeLine{00121\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00122\ \ \ \ \ \textcolor{keyword}{enum}\ \ \ \ \ \ \ \ \ \ \ \ \{\ \mbox{\hyperlink{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69fa84e0ec59def1907592919289f541acb2}{StreamsMax}}\ =\ 256\ \};}
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keyword}{enum}\ \ \ \ \ \ \ \ \ \ \ \ \{\ \mbox{\hyperlink{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2aad90a9b0ba567ca5764cfcece2954dd3}{DefaultBlockSize}}\ =\ 65536\ \};}
\DoxyCodeLine{00124\ \ \ \ \ \textcolor{keyword}{enum}\ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{PackFormat}}\ \ \ \ \ \ \ \{\ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabd5c70b0442ca2b5efe09407b45fbdd9}{PackFormat\_Unknown}}\ =\ 0,\ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfa2422758b8b9589a0d75d9cc0ea67af7c}{PackFormat\_SM}}\ =\ 1,\ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabad929616c0df8919740b55b9c8e85b7}{PackFormat\_CM}}\ =\ 2,\ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfac23d5618ab038610a14a775497f271c6}{PackFormat\_SM\_CC}}\ =\ 3\ \};}
\DoxyCodeLine{00125\ \ \ \ \ }
\DoxyCodeLine{00126\ \ \ \ \ \textcolor{comment}{//\ Generic\ access}}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a512405fd9747c73d6750f58f7dcd3e54}{DataFileBds}}();}
\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a84246a2f27f02d788fb3f28b8592c5c5}{\string~DataFileBds}}();}
\DoxyCodeLine{00129\ \ \ \ \ }
\DoxyCodeLine{00130\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a31d32aa8a487419beb1c492a44324737}{open}}(BString\ fileName,\ BString\ mode);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00131\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a0c33c30503caacb139e8290b6b98f7b1}{flush}}();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00132\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_ab3a6d88ce6b91c767b2a6dfde0eaa322}{close}}();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00133\ }
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Write\ routines}}
\DoxyCodeLine{00135\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a48a4a325c8d30556f08cfaf003907b01}{setFormat}}(BString\ format);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00136\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a07a4348e56ccd58b5a4dab74a39645a7}{setInfo}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1DataInfo}{DataInfo}}\&\ dataInfo,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1ChannelInfos}{ChannelInfos}}\&\ channelInfos,\ \mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153}{WriteOptionsList}}\ options\ =\ \mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153a420fa6e5eaacb8e210c3ade68bbe64e6}{WriteOptionSensorData}});\ \ \ \ \ \ }
\DoxyCodeLine{00137\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_ae8b8a3f95126d12eae4e765a151d0a93}{writeData}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1DataBlock}{DataBlock}}\&\ data);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Read\ routines}}
\DoxyCodeLine{00140\ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFile_a3db096f327de3b65ced78b32aef07f07}{DataOrder}}\ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_ad5b071de9ddddacd5a229011b2807a5a}{getDataOrder}}();}
\DoxyCodeLine{00141\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a6d4fb7826206a6127695430439bbf119}{getInfo}}(\mbox{\hyperlink{classBds_1_1DataInfo}{DataInfo}}\&\ dataInfo,\ \mbox{\hyperlink{classBds_1_1DataFileOptions}{DataFileOptions}}\ options,\ BList<DataError>\&\ errors);\ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00142\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_abc475489eb35d6045ef83ba95bede4e2}{seekBlock}}(BUInt32\ channel,\ BUInt\ segment,\ BTimeStamp\ time,\ BUInt32\&\ blockNumber,\ BUInt64\&\ sampleNumber,\ \mbox{\hyperlink{classBds_1_1DataBlock}{DataBlock}}\&\ dataBlock);\ \ \ \ }
\DoxyCodeLine{00143\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a159884e047e0912b4478ac83c24ce211}{readData}}(BUInt32\ channel,\ BUInt\ segment,\ BUInt32\ blockNumber,\ \mbox{\hyperlink{classBds_1_1DataBlock}{DataBlock}}\&\ dataBlock);\ \ \ \ \ \ \ \ }
\DoxyCodeLine{00144\ }
\DoxyCodeLine{00145\ \ \ \ \ \textcolor{keyword}{static}\ DataFormats\ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a1f73d944af795059680543b95dd5fe05}{getFormats}}();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00146\ }
\DoxyCodeLine{00147\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a02c62c55b30fb06a8bfc091510125cd8}{setDiskBlockSize}}(BUInt32\ blockSize);\ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00148\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_acce12a05907cdf62bdc344c0c8860eb6}{getDiskBlockSize}}();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00149\ }
\DoxyCodeLine{00150\ \ \ \ \ }
\DoxyCodeLine{00151\ \ \ \ \ \textcolor{comment}{//\ Low\ Level\ Packet\ I/O}}
\DoxyCodeLine{00152\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_ad0ea23d5c1fdc32ab90ef3a5af3268e4}{streamletToChannel}}(BUInt\ streamlet,\ BUInt\&\ channel);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00153\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a1d5681774df07d372a81b4bcba1fb2e6}{setWritePositionForAppend}}();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00154\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a9b5d0b63c677d5747b3fa0fd28268c87}{setReadPositionToStart}}();}
\DoxyCodeLine{00155\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_a470787e84a8b48ec45ebc97feb532fd5}{packetRead}}(\mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\&\ packet);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00156\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_ae96ca2d4ceaacf42cea410ebaec6f7a6}{packetWrite}}(\mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\&\ packet);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00157\ }
\DoxyCodeLine{00158\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00159\ \ \ \ \ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \ \ \ \ clear();}
\DoxyCodeLine{00160\ }
\DoxyCodeLine{00161\ \ \ \ \ \textcolor{comment}{//\ DataBlock\ exists\ checks}}
\DoxyCodeLine{00162\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ dataBlockAdd(BUInt32\ streamlet,\ BTimeStamp\ startTime,\ BTimeStamp\ endTime);}
\DoxyCodeLine{00163\ \ \ \ \ Bool\ \ \ \ \ \ \ \ \ \ \ \ dataBlockCheckIfExists(BUInt32\ streamlet,\ BTimeStamp\ startTime,\ BTimeStamp\ endTime);\ \ \ \ \ }
\DoxyCodeLine{00164\ \ \ \ \ }
\DoxyCodeLine{00165\ \ \ \ \ \textcolor{comment}{//\ Low\ level\ file\ access}}
\DoxyCodeLine{00166\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ setInfoRepeat(BUInt32\ repeat);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00167\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ infoSet(BUInt32\ streamlet,\ BTimeStamp\ startTime,\ BTimeStamp\ endTime,\ BDictString\&\ info);\ \ }
\DoxyCodeLine{00168\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ infoGet(\mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\&\ packet,\ BDictString\&\ info);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00169\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ readInfoPacket();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00170\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ addInfoPacket();}
\DoxyCodeLine{00171\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ addInfoExtraPacket();}
\DoxyCodeLine{00172\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ streamletFromChannel(BUInt\ channel,\ BUInt\&\ streamlet);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00173\ }
\DoxyCodeLine{00174\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ dataAppend(\textcolor{keyword}{const}\ \mbox{\hyperlink{classBds_1_1DataBlock}{DataBlock}}\&\ data);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00175\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ dataGet(BUInt\ channel,\ \mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\&\ packet,\ \mbox{\hyperlink{classBds_1_1DataBlock}{DataBlock}}\&\ data);\ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00176\ }
\DoxyCodeLine{00177\ \ \ \ \ \textcolor{comment}{//\ Low\ level\ Disk\ Block\ access\ functions}}
\DoxyCodeLine{00178\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ diskBlockWrite(\textcolor{keywordtype}{void}*\ data,\ BUInt32\ numBytes,\ \textcolor{keywordtype}{int}\ header\ =\ 0);\ \ \ \ }
\DoxyCodeLine{00179\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ diskBlockWriteFlush();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00180\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ diskBlockRead(\textcolor{keywordtype}{void}*\ data,\ BUInt32\ numBytes,\ \textcolor{keywordtype}{int}\ header\ =\ 0);\ }
\DoxyCodeLine{00181\ \ \ \ \ BError\ \ \ \ \ \ \ \ \ \ \ \ diskBlockSeek(BUInt64\ position);}
\DoxyCodeLine{00182\ }
\DoxyCodeLine{00183\ \ \ \ \ BString\ \ \ \ \ \ \ \ \ \ omode;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00184\ \ \ \ \ BString\ \ \ \ \ \ \ \ \ \ oformat;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00185\ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{PackFormat}}\ \ \ \ \ \ \ \ opackFormat;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00186\ \ \ \ \ \mbox{\hyperlink{classBds_1_1DataInfo}{DataInfo}}\ \ \ \ \ \ \ \ odataInfo;\ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00187\ \ \ \ \ \mbox{\hyperlink{classBds_1_1ChannelInfos}{ChannelInfos}}\ \ \ \ \ \ \ \ ochannelInfos;\ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00188\ \ \ \ \ }
\DoxyCodeLine{00189\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ oinfoRepeat;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00190\ \ \ \ \ BDictString\ \ \ \ \ \ oinfo;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00191\ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{BdsDataPacketHeader}}\ \ oinfoHeader;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00192\ }
\DoxyCodeLine{00193\ \ \ \ \ \textcolor{comment}{//\ Disk\ Block\ access\ data}}
\DoxyCodeLine{00194\ \ \ \ \ BUInt32\ \ \ \ \ \ \ \ \ \ odiskBlockSize;\ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00195\ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlock}{BdsDataBlock}}*\ \ \ \ \ \ \ odiskBlockRead;\ \ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00196\ \ \ \ \ BUInt64\ \ \ \ \ \ \ \ \ \ odiskPositionRead;\ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00197\ \ \ \ \ \mbox{\hyperlink{structBds_1_1BdsDataBlock}{BdsDataBlock}}*\ \ \ \ \ \ \ odiskBlockWrite;\ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00198\ \ \ \ \ BUInt64\ \ \ \ \ \ \ \ \ \ odiskPositionWrite;\ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00199\ }
\DoxyCodeLine{00200\ \ \ \ \ BArray<BdsDataStreamlet>\ \ \ \ ostreamlets;\ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00201\ \ \ \ \ \mbox{\hyperlink{classBds_1_1BdsDataPacket}{BdsDataPacket}}\ \ \ \ \ \ \ \ \ \ opacket;\ \ \ \ \ \ \ \ \ \ \ \ }
\DoxyCodeLine{00202\ \};}
\DoxyCodeLine{00203\ \}}
\DoxyCodeLine{00204\ \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
