\hypertarget{classBds_1_1DataFileBds}{}\section{Bds\+::Data\+File\+Bds Class Reference}
\label{classBds_1_1DataFileBds}\index{Bds::DataFileBds@{Bds::DataFileBds}}


This class implements the B\+DS Data File/\+Stream access system.  




{\ttfamily \#include $<$Bds\+Data\+File\+Bds.\+h$>$}

Inheritance diagram for Bds\+::Data\+File\+Bds\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classBds_1_1DataFileBds}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ \mbox{\hyperlink{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69fa84e0ec59def1907592919289f541acb2}{Streams\+Max}} = 256
 \}
\item 
enum \{ \mbox{\hyperlink{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2aad90a9b0ba567ca5764cfcece2954dd3}{Default\+Block\+Size}} = 65536
 \}
\item 
enum \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{Pack\+Format}} \{ \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabd5c70b0442ca2b5efe09407b45fbdd9}{Pack\+Format\+\_\+\+Unknown}} = 0, 
\mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfa2422758b8b9589a0d75d9cc0ea67af7c}{Pack\+Format\+\_\+\+SM}} = 1, 
\mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabad929616c0df8919740b55b9c8e85b7}{Pack\+Format\+\_\+\+CM}} = 2, 
\mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfac23d5618ab038610a14a775497f271c6}{Pack\+Format\+\_\+\+S\+M\+\_\+\+CC}} = 3
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classBds_1_1DataFileBds_a512405fd9747c73d6750f58f7dcd3e54}{Data\+File\+Bds}} ()
\item 
\mbox{\hyperlink{classBds_1_1DataFileBds_a84246a2f27f02d788fb3f28b8592c5c5}{$\sim$\+Data\+File\+Bds}} ()
\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a31d32aa8a487419beb1c492a44324737}{open}} (\textbf{ B\+String} file\+Name, \textbf{ B\+String} mode)
\begin{DoxyCompactList}\small\item\em Open the file for reading or writing. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a0c33c30503caacb139e8290b6b98f7b1}{flush}} ()
\begin{DoxyCompactList}\small\item\em Flush any data to disk even if blocks are not full. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ab3a6d88ce6b91c767b2a6dfde0eaa322}{close}} ()
\begin{DoxyCompactList}\small\item\em Close file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a48a4a325c8d30556f08cfaf003907b01}{set\+Format}} (\textbf{ B\+String} format)
\begin{DoxyCompactList}\small\item\em Sets the sub-\/format. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a07a4348e56ccd58b5a4dab74a39645a7}{set\+Info}} (const \mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} \&data\+Info, const \mbox{\hyperlink{classBds_1_1ChannelInfos}{Channel\+Infos}} \&channel\+Infos, \mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153}{Write\+Options\+List}} options=\mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153a420fa6e5eaacb8e210c3ade68bbe64e6}{Write\+Option\+Sensor\+Data}})
\begin{DoxyCompactList}\small\item\em Sets the information. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ae8b8a3f95126d12eae4e765a151d0a93}{write\+Data}} (const \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&\textbf{ data})
\begin{DoxyCompactList}\small\item\em Writes a data block to the file. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classBds_1_1DataFile_a3db096f327de3b65ced78b32aef07f07}{Data\+Order}} \mbox{\hyperlink{classBds_1_1DataFileBds_ad5b071de9ddddacd5a229011b2807a5a}{get\+Data\+Order}} ()
\begin{DoxyCompactList}\small\item\em Get the expected order of writing data, by sample or by channel. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a6d4fb7826206a6127695430439bbf119}{get\+Info}} (\mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} \&data\+Info, \mbox{\hyperlink{classBds_1_1DataFileOptions}{Data\+File\+Options}} options, \textbf{ B\+List}$<$ \mbox{\hyperlink{classBds_1_1DataError}{Data\+Error}} $>$ \&errors)
\begin{DoxyCompactList}\small\item\em Get information on open file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_abc475489eb35d6045ef83ba95bede4e2}{seek\+Block}} (\textbf{ B\+U\+Int32} channel, \textbf{ B\+U\+Int} segment, \textbf{ B\+Time\+Stamp} time, \textbf{ B\+U\+Int32} \&block\+Number, \textbf{ B\+U\+Int64} \&sample\+Number, \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&data\+Block)
\begin{DoxyCompactList}\small\item\em Find the block that contains the samples for the time requested. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a159884e047e0912b4478ac83c24ce211}{read\+Data}} (\textbf{ B\+U\+Int32} channel, \textbf{ B\+U\+Int} segment, \textbf{ B\+U\+Int32} block\+Number, \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&data\+Block)
\begin{DoxyCompactList}\small\item\em Read the data block for the given channel or all channels if block\+Number is 0. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a02c62c55b30fb06a8bfc091510125cd8}{set\+Disk\+Block\+Size}} (\textbf{ B\+U\+Int32} block\+Size)
\begin{DoxyCompactList}\small\item\em Sets up file/stream block size. \end{DoxyCompactList}\item 
\textbf{ B\+U\+Int32} \mbox{\hyperlink{classBds_1_1DataFileBds_acce12a05907cdf62bdc344c0c8860eb6}{get\+Disk\+Block\+Size}} ()
\begin{DoxyCompactList}\small\item\em Returns the data block size in bytes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{classBds_1_1DataFormat}{Data\+Format}} \mbox{\hyperlink{classBds_1_1DataFileBds_a45e3802279a578d21d9d1993993a2576}{get\+Formats}} ()
\begin{DoxyCompactList}\small\item\em Get the names of the supported formats. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classBds_1_1DataFileBds_a2deda227b7ee9f6ca6e0cce7d8d9013c}{clear}} ()
\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_aa38f3b1f933abc990597aa71af5097d1}{data\+Block\+Add}} (\textbf{ B\+U\+Int32} streamlet, \textbf{ B\+Time\+Stamp} start\+Time, \textbf{ B\+Time\+Stamp} end\+Time)
\item 
\textbf{ Bool} \mbox{\hyperlink{classBds_1_1DataFileBds_abd1ac7c3cee544a8f7a347a6649fe7b4}{data\+Block\+Check\+If\+Exists}} (\textbf{ B\+U\+Int32} streamlet, \textbf{ B\+Time\+Stamp} start\+Time, \textbf{ B\+Time\+Stamp} end\+Time)
\begin{DoxyCompactList}\small\item\em Checks if this data block already exists. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ac8d81fb0680976e07a12fe58fbd73bb3}{set\+Info\+Repeat}} (\textbf{ B\+U\+Int32} repeat)
\begin{DoxyCompactList}\small\item\em Sets the reapeat period for the information packets. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ac5c4df2c1ec1263facf01c998cb73156}{info\+Set}} (\textbf{ B\+U\+Int32} streamlet, \textbf{ B\+Time\+Stamp} start\+Time, \textbf{ B\+Time\+Stamp} end\+Time, \textbf{ B\+Dict\+String} \&info)
\begin{DoxyCompactList}\small\item\em Sets the information packet and writes this to the file/stream. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a2de59d53891581c050e59fcf5521ecea}{info\+Get}} (\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&packet, \textbf{ B\+Dict\+String} \&info)
\begin{DoxyCompactList}\small\item\em Gets the information from an information packet. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a29af2cfe1baa804886b56553228dd616}{read\+Info\+Packet}} ()
\begin{DoxyCompactList}\small\item\em Read the info packet from the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ae3e5bc56e345a94e66d4e3292a49c26d}{add\+Info\+Packet}} ()
\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_aaeacd69de5145686d4a5adc3780ba5e9}{add\+Info\+Extra\+Packet}} ()
\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a96cfb20be433e4df56303edf1e6632f1}{streamlet\+From\+Channel}} (\textbf{ B\+U\+Int} channel, \textbf{ B\+U\+Int} \&streamlet)
\begin{DoxyCompactList}\small\item\em Find streamlet given channel. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a1cd93583846fe563db36b58995c3e2d7}{data\+Append}} (const \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&\textbf{ data})
\begin{DoxyCompactList}\small\item\em Appends a data block to the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_aa36c27f4ec568435559327c46ed092ab}{data\+Get}} (\textbf{ B\+U\+Int} channel, \mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&packet, \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&\textbf{ data})
\begin{DoxyCompactList}\small\item\em Gets the data from a data packet. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a1d5681774df07d372a81b4bcba1fb2e6}{set\+Write\+Position\+For\+Append}} ()
\begin{DoxyCompactList}\small\item\em Sets the next packet write position. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a470787e84a8b48ec45ebc97feb532fd5}{packet\+Read}} (\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&packet)
\begin{DoxyCompactList}\small\item\em Reads a packet from the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_ae96ca2d4ceaacf42cea410ebaec6f7a6}{packet\+Write}} (\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&packet)
\begin{DoxyCompactList}\small\item\em Writes a packet to the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_acde71f086c781525edc0fabb72e52f84}{disk\+Block\+Write}} (void $\ast$\textbf{ data}, \textbf{ B\+U\+Int32} num\+Bytes, int header=0)
\begin{DoxyCompactList}\small\item\em Writes data to a block in the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a0809bd99474dc4cdd93aa278ce8611dc}{disk\+Block\+Write\+Flush}} ()
\begin{DoxyCompactList}\small\item\em Flushes a semi-\/filled block to the file. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_a4d98b89a9ba8f45060db8cb7dcf13626}{disk\+Block\+Read}} (void $\ast$\textbf{ data}, \textbf{ B\+U\+Int32} num\+Bytes, int header=0)
\begin{DoxyCompactList}\small\item\em Reads data from a block. \end{DoxyCompactList}\item 
\textbf{ B\+Error} \mbox{\hyperlink{classBds_1_1DataFileBds_af3ac27a0f5097d777eae2c462872fd7a}{disk\+Block\+Seek}} (\textbf{ B\+U\+Int64} position)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\textbf{ B\+String} \mbox{\hyperlink{classBds_1_1DataFileBds_a476b133d7a0d363d046ce86ad456bcd1}{omode}}
\begin{DoxyCompactList}\small\item\em The mode (local) \end{DoxyCompactList}\item 
\textbf{ B\+String} \mbox{\hyperlink{classBds_1_1DataFileBds_a048f5224d48bb599e182290c2bfa1d4a}{oformat}}
\begin{DoxyCompactList}\small\item\em The format. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{Pack\+Format}} \mbox{\hyperlink{classBds_1_1DataFileBds_aa0d488c2328a507c4a365647ef2e555d}{opack\+Format}}
\begin{DoxyCompactList}\small\item\em The data packet format. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} \mbox{\hyperlink{classBds_1_1DataFileBds_aba2e327a5c589775f3cc8aec4196f0da}{odata\+Info}}
\begin{DoxyCompactList}\small\item\em Information on the channel data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classBds_1_1ChannelInfos}{Channel\+Infos}} \mbox{\hyperlink{classBds_1_1DataFileBds_a3624821045248e0d0cdba5de42dd9528}{ochannel\+Infos}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classBds_1_1Channel}{Channel}} meta data information. \end{DoxyCompactList}\item 
\textbf{ B\+U\+Int32} \mbox{\hyperlink{classBds_1_1DataFileBds_a23ee710bae09404994fc8523b657483b}{oinfo\+Repeat}}
\begin{DoxyCompactList}\small\item\em How often to output info packet. \end{DoxyCompactList}\item 
\textbf{ B\+Dict\+String} \mbox{\hyperlink{classBds_1_1DataFileBds_a3f5d71e20fcfed4e83a3feec37cce623}{oinfo}}
\begin{DoxyCompactList}\small\item\em Info packet output. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{Bds\+Data\+Packet\+Header}} \mbox{\hyperlink{classBds_1_1DataFileBds_a9f0ba0b66bfe62ff641a2e83993b7b9a}{oinfo\+Header}}
\begin{DoxyCompactList}\small\item\em Info packet header. \end{DoxyCompactList}\item 
\textbf{ B\+U\+Int32} \mbox{\hyperlink{classBds_1_1DataFileBds_a6a67e922af45a446ce06d0689c5e3aab}{odisk\+Block\+Size}}
\begin{DoxyCompactList}\small\item\em The block size. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structBds_1_1BdsDataBlock}{Bds\+Data\+Block}} $\ast$ \mbox{\hyperlink{classBds_1_1DataFileBds_a3e1ba24bee80e5f1a469d7700a1df59e}{odisk\+Block\+Read}}
\begin{DoxyCompactList}\small\item\em Data block buffer for reads. \end{DoxyCompactList}\item 
\textbf{ B\+U\+Int64} \mbox{\hyperlink{classBds_1_1DataFileBds_af14b819bd0240b92f738b1fe7a01aafb}{odisk\+Position\+Read}}
\begin{DoxyCompactList}\small\item\em The disk block position. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structBds_1_1BdsDataBlock}{Bds\+Data\+Block}} $\ast$ \mbox{\hyperlink{classBds_1_1DataFileBds_a6e04bd4676056ccff3c195ed23a85a37}{odisk\+Block\+Write}}
\begin{DoxyCompactList}\small\item\em Data block buffer for writes. \end{DoxyCompactList}\item 
\textbf{ B\+U\+Int64} \mbox{\hyperlink{classBds_1_1DataFileBds_aae94394bc60ce6581e3aa0576281e284}{odisk\+Position\+Write}}
\begin{DoxyCompactList}\small\item\em The disk block position for writing. \end{DoxyCompactList}\item 
\textbf{ B\+Array}$<$ \mbox{\hyperlink{classBds_1_1BdsDataStreamlet}{Bds\+Data\+Streamlet}} $>$ \mbox{\hyperlink{classBds_1_1DataFileBds_ac6e1b966c2e700ee9ce5cd18779c5de2}{ostreamlets}}
\begin{DoxyCompactList}\small\item\em Streamlet sequence numbers, position and segments. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \mbox{\hyperlink{classBds_1_1DataFileBds_aa66d86846698a974351f3035567a08cb}{opacket}}
\begin{DoxyCompactList}\small\item\em Temporary packet for header/data packet generation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
This class implements the B\+DS Data File/\+Stream access system. 

\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69f}\label{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69f}} 
\subsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{StreamsMax@{StreamsMax}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!StreamsMax@{StreamsMax}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69fa84e0ec59def1907592919289f541acb2}\label{classBds_1_1DataFileBds_a3f6d5c994068dfcc983a765dd2d5b69fa84e0ec59def1907592919289f541acb2}} 
Streams\+Max&\\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2}\label{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2}} 
\subsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{DefaultBlockSize@{DefaultBlockSize}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!DefaultBlockSize@{DefaultBlockSize}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2aad90a9b0ba567ca5764cfcece2954dd3}\label{classBds_1_1DataFileBds_af8cc5c9f70eee7c47b08cb1ea6ec69c2aad90a9b0ba567ca5764cfcece2954dd3}} 
Default\+Block\+Size&\\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}\label{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!PackFormat@{PackFormat}}
\index{PackFormat@{PackFormat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{PackFormat}{PackFormat}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{Bds\+::\+Data\+File\+Bds\+::\+Pack\+Format}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PackFormat\_Unknown@{PackFormat\_Unknown}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!PackFormat\_Unknown@{PackFormat\_Unknown}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabd5c70b0442ca2b5efe09407b45fbdd9}\label{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabd5c70b0442ca2b5efe09407b45fbdd9}} 
Pack\+Format\+\_\+\+Unknown&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PackFormat\_SM@{PackFormat\_SM}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!PackFormat\_SM@{PackFormat\_SM}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfa2422758b8b9589a0d75d9cc0ea67af7c}\label{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfa2422758b8b9589a0d75d9cc0ea67af7c}} 
Pack\+Format\+\_\+\+SM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PackFormat\_CM@{PackFormat\_CM}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!PackFormat\_CM@{PackFormat\_CM}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabad929616c0df8919740b55b9c8e85b7}\label{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfabad929616c0df8919740b55b9c8e85b7}} 
Pack\+Format\+\_\+\+CM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PackFormat\_SM\_CC@{PackFormat\_SM\_CC}!Bds::DataFileBds@{Bds::DataFileBds}}\index{Bds::DataFileBds@{Bds::DataFileBds}!PackFormat\_SM\_CC@{PackFormat\_SM\_CC}}}\mbox{\Hypertarget{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfac23d5618ab038610a14a775497f271c6}\label{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bfac23d5618ab038610a14a775497f271c6}} 
Pack\+Format\+\_\+\+S\+M\+\_\+\+CC&\\
\hline

\end{DoxyEnumFields}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classBds_1_1DataFileBds_a512405fd9747c73d6750f58f7dcd3e54}\label{classBds_1_1DataFileBds_a512405fd9747c73d6750f58f7dcd3e54}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!DataFileBds@{DataFileBds}}
\index{DataFileBds@{DataFileBds}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{DataFileBds()}{DataFileBds()}}
{\footnotesize\ttfamily Bds\+::\+Data\+File\+Bds\+::\+Data\+File\+Bds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{classBds_1_1DataFileBds_a84246a2f27f02d788fb3f28b8592c5c5}\label{classBds_1_1DataFileBds_a84246a2f27f02d788fb3f28b8592c5c5}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!````~DataFileBds@{$\sim$DataFileBds}}
\index{````~DataFileBds@{$\sim$DataFileBds}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{$\sim$DataFileBds()}{~DataFileBds()}}
{\footnotesize\ttfamily Bds\+::\+Data\+File\+Bds\+::$\sim$\+Data\+File\+Bds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classBds_1_1DataFileBds_aaeacd69de5145686d4a5adc3780ba5e9}\label{classBds_1_1DataFileBds_aaeacd69de5145686d4a5adc3780ba5e9}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!addInfoExtraPacket@{addInfoExtraPacket}}
\index{addInfoExtraPacket@{addInfoExtraPacket}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{addInfoExtraPacket()}{addInfoExtraPacket()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::add\+Info\+Extra\+Packet (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

\mbox{\Hypertarget{classBds_1_1DataFileBds_ae3e5bc56e345a94e66d4e3292a49c26d}\label{classBds_1_1DataFileBds_ae3e5bc56e345a94e66d4e3292a49c26d}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!addInfoPacket@{addInfoPacket}}
\index{addInfoPacket@{addInfoPacket}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{addInfoPacket()}{addInfoPacket()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::add\+Info\+Packet (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

\mbox{\Hypertarget{classBds_1_1DataFileBds_a2deda227b7ee9f6ca6e0cce7d8d9013c}\label{classBds_1_1DataFileBds_a2deda227b7ee9f6ca6e0cce7d8d9013c}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!clear@{clear}}
\index{clear@{clear}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{clear()}{clear()}}
{\footnotesize\ttfamily void Bds\+::\+Data\+File\+Bds\+::clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

\mbox{\Hypertarget{classBds_1_1DataFileBds_ab3a6d88ce6b91c767b2a6dfde0eaa322}\label{classBds_1_1DataFileBds_ab3a6d88ce6b91c767b2a6dfde0eaa322}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!close@{close}}
\index{close@{close}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{close()}{close()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::close (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Close file. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a6b092b444ba4a8b1c2b24587e06a054d}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a1cd93583846fe563db36b58995c3e2d7}\label{classBds_1_1DataFileBds_a1cd93583846fe563db36b58995c3e2d7}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!dataAppend@{dataAppend}}
\index{dataAppend@{dataAppend}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{dataAppend()}{dataAppend()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::data\+Append (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Appends a data block to the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aa38f3b1f933abc990597aa71af5097d1}\label{classBds_1_1DataFileBds_aa38f3b1f933abc990597aa71af5097d1}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!dataBlockAdd@{dataBlockAdd}}
\index{dataBlockAdd@{dataBlockAdd}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{dataBlockAdd()}{dataBlockAdd()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::data\+Block\+Add (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{streamlet,  }\item[{\textbf{ B\+Time\+Stamp}}]{start\+Time,  }\item[{\textbf{ B\+Time\+Stamp}}]{end\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

\mbox{\Hypertarget{classBds_1_1DataFileBds_abd1ac7c3cee544a8f7a347a6649fe7b4}\label{classBds_1_1DataFileBds_abd1ac7c3cee544a8f7a347a6649fe7b4}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!dataBlockCheckIfExists@{dataBlockCheckIfExists}}
\index{dataBlockCheckIfExists@{dataBlockCheckIfExists}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{dataBlockCheckIfExists()}{dataBlockCheckIfExists()}}
{\footnotesize\ttfamily \textbf{ Bool} Bds\+::\+Data\+File\+Bds\+::data\+Block\+Check\+If\+Exists (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{streamlet,  }\item[{\textbf{ B\+Time\+Stamp}}]{start\+Time,  }\item[{\textbf{ B\+Time\+Stamp}}]{end\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Checks if this data block already exists. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aa36c27f4ec568435559327c46ed092ab}\label{classBds_1_1DataFileBds_aa36c27f4ec568435559327c46ed092ab}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!dataGet@{dataGet}}
\index{dataGet@{dataGet}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{dataGet()}{dataGet()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::data\+Get (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int}}]{channel,  }\item[{\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&}]{packet,  }\item[{\mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Gets the data from a data packet. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a4d98b89a9ba8f45060db8cb7dcf13626}\label{classBds_1_1DataFileBds_a4d98b89a9ba8f45060db8cb7dcf13626}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!diskBlockRead@{diskBlockRead}}
\index{diskBlockRead@{diskBlockRead}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{diskBlockRead()}{diskBlockRead()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::disk\+Block\+Read (\begin{DoxyParamCaption}\item[{void $\ast$}]{data,  }\item[{\textbf{ B\+U\+Int32}}]{num\+Bytes,  }\item[{int}]{header = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Reads data from a block. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_af3ac27a0f5097d777eae2c462872fd7a}\label{classBds_1_1DataFileBds_af3ac27a0f5097d777eae2c462872fd7a}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!diskBlockSeek@{diskBlockSeek}}
\index{diskBlockSeek@{diskBlockSeek}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{diskBlockSeek()}{diskBlockSeek()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::disk\+Block\+Seek (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int64}}]{position }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

\mbox{\Hypertarget{classBds_1_1DataFileBds_acde71f086c781525edc0fabb72e52f84}\label{classBds_1_1DataFileBds_acde71f086c781525edc0fabb72e52f84}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!diskBlockWrite@{diskBlockWrite}}
\index{diskBlockWrite@{diskBlockWrite}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{diskBlockWrite()}{diskBlockWrite()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::disk\+Block\+Write (\begin{DoxyParamCaption}\item[{void $\ast$}]{data,  }\item[{\textbf{ B\+U\+Int32}}]{num\+Bytes,  }\item[{int}]{header = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Writes data to a block in the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a0809bd99474dc4cdd93aa278ce8611dc}\label{classBds_1_1DataFileBds_a0809bd99474dc4cdd93aa278ce8611dc}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!diskBlockWriteFlush@{diskBlockWriteFlush}}
\index{diskBlockWriteFlush@{diskBlockWriteFlush}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{diskBlockWriteFlush()}{diskBlockWriteFlush()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::disk\+Block\+Write\+Flush (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Flushes a semi-\/filled block to the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a0c33c30503caacb139e8290b6b98f7b1}\label{classBds_1_1DataFileBds_a0c33c30503caacb139e8290b6b98f7b1}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!flush@{flush}}
\index{flush@{flush}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{flush()}{flush()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::flush (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Flush any data to disk even if blocks are not full. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a96dc50c6852eaee8416c48bafa2c9780}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_ad5b071de9ddddacd5a229011b2807a5a}\label{classBds_1_1DataFileBds_ad5b071de9ddddacd5a229011b2807a5a}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!getDataOrder@{getDataOrder}}
\index{getDataOrder@{getDataOrder}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{getDataOrder()}{getDataOrder()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1DataFile_a3db096f327de3b65ced78b32aef07f07}{Data\+File\+::\+Data\+Order}} Bds\+::\+Data\+File\+Bds\+::get\+Data\+Order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Get the expected order of writing data, by sample or by channel. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_ae014b357c1b718954946bfa343aa30c2}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_acce12a05907cdf62bdc344c0c8860eb6}\label{classBds_1_1DataFileBds_acce12a05907cdf62bdc344c0c8860eb6}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!getDiskBlockSize@{getDiskBlockSize}}
\index{getDiskBlockSize@{getDiskBlockSize}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{getDiskBlockSize()}{getDiskBlockSize()}}
{\footnotesize\ttfamily uint32\+\_\+t Bds\+::\+Data\+File\+Bds\+::get\+Disk\+Block\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the data block size in bytes. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a45e3802279a578d21d9d1993993a2576}\label{classBds_1_1DataFileBds_a45e3802279a578d21d9d1993993a2576}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!getFormats@{getFormats}}
\index{getFormats@{getFormats}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{getFormats()}{getFormats()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1DataFormat}{Data\+Format}} Bds\+::\+Data\+File\+Bds\+::get\+Formats (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the names of the supported formats. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a6d4fb7826206a6127695430439bbf119}\label{classBds_1_1DataFileBds_a6d4fb7826206a6127695430439bbf119}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!getInfo@{getInfo}}
\index{getInfo@{getInfo}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{getInfo()}{getInfo()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::get\+Info (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} \&}]{data\+Info,  }\item[{\mbox{\hyperlink{classBds_1_1DataFileOptions}{Data\+File\+Options}}}]{options,  }\item[{\textbf{ B\+List}$<$ \mbox{\hyperlink{classBds_1_1DataError}{Data\+Error}} $>$ \&}]{errors }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Get information on open file. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a041d380065710c74fd509a28d63bf667}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a2de59d53891581c050e59fcf5521ecea}\label{classBds_1_1DataFileBds_a2de59d53891581c050e59fcf5521ecea}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!infoGet@{infoGet}}
\index{infoGet@{infoGet}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{infoGet()}{infoGet()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::info\+Get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&}]{packet,  }\item[{\textbf{ B\+Dict\+String} \&}]{info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Gets the information from an information packet. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_ac5c4df2c1ec1263facf01c998cb73156}\label{classBds_1_1DataFileBds_ac5c4df2c1ec1263facf01c998cb73156}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!infoSet@{infoSet}}
\index{infoSet@{infoSet}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{infoSet()}{infoSet()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::info\+Set (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{streamlet,  }\item[{\textbf{ B\+Time\+Stamp}}]{start\+Time,  }\item[{\textbf{ B\+Time\+Stamp}}]{end\+Time,  }\item[{\textbf{ B\+Dict\+String} \&}]{info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Sets the information packet and writes this to the file/stream. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a31d32aa8a487419beb1c492a44324737}\label{classBds_1_1DataFileBds_a31d32aa8a487419beb1c492a44324737}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!open@{open}}
\index{open@{open}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{open()}{open()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::open (\begin{DoxyParamCaption}\item[{\textbf{ B\+String}}]{file\+Name,  }\item[{\textbf{ B\+String}}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Open the file for reading or writing. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a5e5185a9cef9ea911c477d1bc2c74274}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a470787e84a8b48ec45ebc97feb532fd5}\label{classBds_1_1DataFileBds_a470787e84a8b48ec45ebc97feb532fd5}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!packetRead@{packetRead}}
\index{packetRead@{packetRead}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{packetRead()}{packetRead()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::packet\+Read (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&}]{packet }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Reads a packet from the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_ae96ca2d4ceaacf42cea410ebaec6f7a6}\label{classBds_1_1DataFileBds_ae96ca2d4ceaacf42cea410ebaec6f7a6}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!packetWrite@{packetWrite}}
\index{packetWrite@{packetWrite}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{packetWrite()}{packetWrite()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::packet\+Write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} \&}]{packet }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Writes a packet to the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a159884e047e0912b4478ac83c24ce211}\label{classBds_1_1DataFileBds_a159884e047e0912b4478ac83c24ce211}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!readData@{readData}}
\index{readData@{readData}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{readData()}{readData()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::read\+Data (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{channel,  }\item[{\textbf{ B\+U\+Int}}]{segment,  }\item[{\textbf{ B\+U\+Int32}}]{block\+Number,  }\item[{\mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&}]{data\+Block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Read the data block for the given channel or all channels if block\+Number is 0. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_ac01f30408cfdfc4f14a36ca1f5cf2e4c}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a29af2cfe1baa804886b56553228dd616}\label{classBds_1_1DataFileBds_a29af2cfe1baa804886b56553228dd616}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!readInfoPacket@{readInfoPacket}}
\index{readInfoPacket@{readInfoPacket}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{readInfoPacket()}{readInfoPacket()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::read\+Info\+Packet (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Read the info packet from the file. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_abc475489eb35d6045ef83ba95bede4e2}\label{classBds_1_1DataFileBds_abc475489eb35d6045ef83ba95bede4e2}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!seekBlock@{seekBlock}}
\index{seekBlock@{seekBlock}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{seekBlock()}{seekBlock()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::seek\+Block (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{channel,  }\item[{\textbf{ B\+U\+Int}}]{segment,  }\item[{\textbf{ B\+Time\+Stamp}}]{time,  }\item[{\textbf{ B\+U\+Int32} \&}]{block\+Number,  }\item[{\textbf{ B\+U\+Int64} \&}]{sample\+Number,  }\item[{\mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&}]{data\+Block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Find the block that contains the samples for the time requested. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a58cb4c088df2d8d0349a3ffbd7523a02}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a02c62c55b30fb06a8bfc091510125cd8}\label{classBds_1_1DataFileBds_a02c62c55b30fb06a8bfc091510125cd8}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!setDiskBlockSize@{setDiskBlockSize}}
\index{setDiskBlockSize@{setDiskBlockSize}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{setDiskBlockSize()}{setDiskBlockSize()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::set\+Disk\+Block\+Size (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{block\+Size }\end{DoxyParamCaption})}



Sets up file/stream block size. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a48a4a325c8d30556f08cfaf003907b01}\label{classBds_1_1DataFileBds_a48a4a325c8d30556f08cfaf003907b01}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!setFormat@{setFormat}}
\index{setFormat@{setFormat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{setFormat()}{setFormat()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::set\+Format (\begin{DoxyParamCaption}\item[{\textbf{ B\+String}}]{format }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the sub-\/format. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_aae72993c3c6453edc45621745c3e79a5}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_a07a4348e56ccd58b5a4dab74a39645a7}\label{classBds_1_1DataFileBds_a07a4348e56ccd58b5a4dab74a39645a7}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!setInfo@{setInfo}}
\index{setInfo@{setInfo}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{setInfo()}{setInfo()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::set\+Info (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} \&}]{data\+Info,  }\item[{const \mbox{\hyperlink{classBds_1_1ChannelInfos}{Channel\+Infos}} \&}]{channel\+Infos,  }\item[{\mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153}{Write\+Options\+List}}}]{options = {\ttfamily \mbox{\hyperlink{classBds_1_1DataFile_a470ee46f21caaaf26365b9503b428153a420fa6e5eaacb8e210c3ade68bbe64e6}{Write\+Option\+Sensor\+Data}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the information. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a8fbb4e7ed82855bbcb0bde4afdc61e51}{Bds\+::\+Data\+File}}.

\mbox{\Hypertarget{classBds_1_1DataFileBds_ac8d81fb0680976e07a12fe58fbd73bb3}\label{classBds_1_1DataFileBds_ac8d81fb0680976e07a12fe58fbd73bb3}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!setInfoRepeat@{setInfoRepeat}}
\index{setInfoRepeat@{setInfoRepeat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{setInfoRepeat()}{setInfoRepeat()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::set\+Info\+Repeat (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int32}}]{repeat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Sets the reapeat period for the information packets. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a1d5681774df07d372a81b4bcba1fb2e6}\label{classBds_1_1DataFileBds_a1d5681774df07d372a81b4bcba1fb2e6}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!setWritePositionForAppend@{setWritePositionForAppend}}
\index{setWritePositionForAppend@{setWritePositionForAppend}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{setWritePositionForAppend()}{setWritePositionForAppend()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::set\+Write\+Position\+For\+Append (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Sets the next packet write position. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a96cfb20be433e4df56303edf1e6632f1}\label{classBds_1_1DataFileBds_a96cfb20be433e4df56303edf1e6632f1}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!streamletFromChannel@{streamletFromChannel}}
\index{streamletFromChannel@{streamletFromChannel}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{streamletFromChannel()}{streamletFromChannel()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::streamlet\+From\+Channel (\begin{DoxyParamCaption}\item[{\textbf{ B\+U\+Int}}]{channel,  }\item[{\textbf{ B\+U\+Int} \&}]{streamlet }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Find streamlet given channel. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_ae8b8a3f95126d12eae4e765a151d0a93}\label{classBds_1_1DataFileBds_ae8b8a3f95126d12eae4e765a151d0a93}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!writeData@{writeData}}
\index{writeData@{writeData}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{writeData()}{writeData()}}
{\footnotesize\ttfamily \textbf{ B\+Error} Bds\+::\+Data\+File\+Bds\+::write\+Data (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classBds_1_1DataBlock}{Data\+Block}} \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Writes a data block to the file. 



Reimplemented from \mbox{\hyperlink{classBds_1_1DataFile_a161e7f9481b0a75c886049facff60aaf}{Bds\+::\+Data\+File}}.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classBds_1_1DataFileBds_a3624821045248e0d0cdba5de42dd9528}\label{classBds_1_1DataFileBds_a3624821045248e0d0cdba5de42dd9528}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!ochannelInfos@{ochannelInfos}}
\index{ochannelInfos@{ochannelInfos}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{ochannelInfos}{ochannelInfos}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1ChannelInfos}{Channel\+Infos}} Bds\+::\+Data\+File\+Bds\+::ochannel\+Infos\hspace{0.3cm}{\ttfamily [private]}}



\mbox{\hyperlink{classBds_1_1Channel}{Channel}} meta data information. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aba2e327a5c589775f3cc8aec4196f0da}\label{classBds_1_1DataFileBds_aba2e327a5c589775f3cc8aec4196f0da}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odataInfo@{odataInfo}}
\index{odataInfo@{odataInfo}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odataInfo}{odataInfo}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1DataInfo}{Data\+Info}} Bds\+::\+Data\+File\+Bds\+::odata\+Info\hspace{0.3cm}{\ttfamily [private]}}



Information on the channel data. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a3e1ba24bee80e5f1a469d7700a1df59e}\label{classBds_1_1DataFileBds_a3e1ba24bee80e5f1a469d7700a1df59e}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odiskBlockRead@{odiskBlockRead}}
\index{odiskBlockRead@{odiskBlockRead}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odiskBlockRead}{odiskBlockRead}}
{\footnotesize\ttfamily \mbox{\hyperlink{structBds_1_1BdsDataBlock}{Bds\+Data\+Block}}$\ast$ Bds\+::\+Data\+File\+Bds\+::odisk\+Block\+Read\hspace{0.3cm}{\ttfamily [private]}}



Data block buffer for reads. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a6a67e922af45a446ce06d0689c5e3aab}\label{classBds_1_1DataFileBds_a6a67e922af45a446ce06d0689c5e3aab}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odiskBlockSize@{odiskBlockSize}}
\index{odiskBlockSize@{odiskBlockSize}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odiskBlockSize}{odiskBlockSize}}
{\footnotesize\ttfamily \textbf{ B\+U\+Int32} Bds\+::\+Data\+File\+Bds\+::odisk\+Block\+Size\hspace{0.3cm}{\ttfamily [private]}}



The block size. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a6e04bd4676056ccff3c195ed23a85a37}\label{classBds_1_1DataFileBds_a6e04bd4676056ccff3c195ed23a85a37}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odiskBlockWrite@{odiskBlockWrite}}
\index{odiskBlockWrite@{odiskBlockWrite}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odiskBlockWrite}{odiskBlockWrite}}
{\footnotesize\ttfamily \mbox{\hyperlink{structBds_1_1BdsDataBlock}{Bds\+Data\+Block}}$\ast$ Bds\+::\+Data\+File\+Bds\+::odisk\+Block\+Write\hspace{0.3cm}{\ttfamily [private]}}



Data block buffer for writes. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_af14b819bd0240b92f738b1fe7a01aafb}\label{classBds_1_1DataFileBds_af14b819bd0240b92f738b1fe7a01aafb}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odiskPositionRead@{odiskPositionRead}}
\index{odiskPositionRead@{odiskPositionRead}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odiskPositionRead}{odiskPositionRead}}
{\footnotesize\ttfamily \textbf{ B\+U\+Int64} Bds\+::\+Data\+File\+Bds\+::odisk\+Position\+Read\hspace{0.3cm}{\ttfamily [private]}}



The disk block position. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aae94394bc60ce6581e3aa0576281e284}\label{classBds_1_1DataFileBds_aae94394bc60ce6581e3aa0576281e284}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!odiskPositionWrite@{odiskPositionWrite}}
\index{odiskPositionWrite@{odiskPositionWrite}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{odiskPositionWrite}{odiskPositionWrite}}
{\footnotesize\ttfamily \textbf{ B\+U\+Int64} Bds\+::\+Data\+File\+Bds\+::odisk\+Position\+Write\hspace{0.3cm}{\ttfamily [private]}}



The disk block position for writing. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a048f5224d48bb599e182290c2bfa1d4a}\label{classBds_1_1DataFileBds_a048f5224d48bb599e182290c2bfa1d4a}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!oformat@{oformat}}
\index{oformat@{oformat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{oformat}{oformat}}
{\footnotesize\ttfamily \textbf{ B\+String} Bds\+::\+Data\+File\+Bds\+::oformat\hspace{0.3cm}{\ttfamily [private]}}



The format. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a3f5d71e20fcfed4e83a3feec37cce623}\label{classBds_1_1DataFileBds_a3f5d71e20fcfed4e83a3feec37cce623}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!oinfo@{oinfo}}
\index{oinfo@{oinfo}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{oinfo}{oinfo}}
{\footnotesize\ttfamily \textbf{ B\+Dict\+String} Bds\+::\+Data\+File\+Bds\+::oinfo\hspace{0.3cm}{\ttfamily [private]}}



Info packet output. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a9f0ba0b66bfe62ff641a2e83993b7b9a}\label{classBds_1_1DataFileBds_a9f0ba0b66bfe62ff641a2e83993b7b9a}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!oinfoHeader@{oinfoHeader}}
\index{oinfoHeader@{oinfoHeader}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{oinfoHeader}{oinfoHeader}}
{\footnotesize\ttfamily \mbox{\hyperlink{structBds_1_1BdsDataPacketHeader}{Bds\+Data\+Packet\+Header}} Bds\+::\+Data\+File\+Bds\+::oinfo\+Header\hspace{0.3cm}{\ttfamily [private]}}



Info packet header. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a23ee710bae09404994fc8523b657483b}\label{classBds_1_1DataFileBds_a23ee710bae09404994fc8523b657483b}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!oinfoRepeat@{oinfoRepeat}}
\index{oinfoRepeat@{oinfoRepeat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{oinfoRepeat}{oinfoRepeat}}
{\footnotesize\ttfamily \textbf{ B\+U\+Int32} Bds\+::\+Data\+File\+Bds\+::oinfo\+Repeat\hspace{0.3cm}{\ttfamily [private]}}



How often to output info packet. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_a476b133d7a0d363d046ce86ad456bcd1}\label{classBds_1_1DataFileBds_a476b133d7a0d363d046ce86ad456bcd1}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!omode@{omode}}
\index{omode@{omode}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{omode}{omode}}
{\footnotesize\ttfamily \textbf{ B\+String} Bds\+::\+Data\+File\+Bds\+::omode\hspace{0.3cm}{\ttfamily [private]}}



The mode (local) 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aa66d86846698a974351f3035567a08cb}\label{classBds_1_1DataFileBds_aa66d86846698a974351f3035567a08cb}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!opacket@{opacket}}
\index{opacket@{opacket}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{opacket}{opacket}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1BdsDataPacket}{Bds\+Data\+Packet}} Bds\+::\+Data\+File\+Bds\+::opacket\hspace{0.3cm}{\ttfamily [private]}}



Temporary packet for header/data packet generation. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_aa0d488c2328a507c4a365647ef2e555d}\label{classBds_1_1DataFileBds_aa0d488c2328a507c4a365647ef2e555d}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!opackFormat@{opackFormat}}
\index{opackFormat@{opackFormat}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{opackFormat}{opackFormat}}
{\footnotesize\ttfamily \mbox{\hyperlink{classBds_1_1DataFileBds_aa12960211455af383997db90456b32bf}{Pack\+Format}} Bds\+::\+Data\+File\+Bds\+::opack\+Format\hspace{0.3cm}{\ttfamily [private]}}



The data packet format. 

\mbox{\Hypertarget{classBds_1_1DataFileBds_ac6e1b966c2e700ee9ce5cd18779c5de2}\label{classBds_1_1DataFileBds_ac6e1b966c2e700ee9ce5cd18779c5de2}} 
\index{Bds::DataFileBds@{Bds::DataFileBds}!ostreamlets@{ostreamlets}}
\index{ostreamlets@{ostreamlets}!Bds::DataFileBds@{Bds::DataFileBds}}
\subsubsection{\texorpdfstring{ostreamlets}{ostreamlets}}
{\footnotesize\ttfamily \textbf{ B\+Array}$<$\mbox{\hyperlink{classBds_1_1BdsDataStreamlet}{Bds\+Data\+Streamlet}}$>$ Bds\+::\+Data\+File\+Bds\+::ostreamlets\hspace{0.3cm}{\ttfamily [private]}}



Streamlet sequence numbers, position and segments. 



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
/src/blacknest/bds/bds/bds\+Data\+Lib/\mbox{\hyperlink{BdsDataFileBds_8h}{Bds\+Data\+File\+Bds.\+h}}\item 
/src/blacknest/bds/bds/bds\+Data\+Lib/\mbox{\hyperlink{BdsDataFileBds_8cpp}{Bds\+Data\+File\+Bds.\+cpp}}\end{DoxyCompactItemize}
