Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DataSeparatorRecord Class Reference

#include <RawFileUtil.h>

List of all members.

Public Member Functions

 DataSeparatorRecord ()
 DataSeparatorRecord ()
void dump (std::ostream &os=std::cout) const
void dump (std::ostream &os=std::cout) const
const data_separator_recordgetRecord () const
const data_separator_recordgetRecord () const
void setDataBlockNumber (uint32_t dn)
void setDataBlockNumber (uint32_t dn)
void setDataBlockSize (uint32_t ds)
void setDataBlockSize (uint32_t ds)

Private Attributes

data_separator_record m_record

Friends

raw_ofstreamoperator<< (raw_ofstream &os, DataSeparatorRecord &record)
raw_ofstreamoperator<< (raw_ofstream &os, DataSeparatorRecord &record)
raw_ifstreamoperator>> (raw_ifstream &is, DataSeparatorRecord &record)
raw_ifstreamoperator>> (raw_ifstream &is, DataSeparatorRecord &record)


Constructor & Destructor Documentation

DataSeparatorRecord::DataSeparatorRecord  ) 
 

00269 {
00270    m_record.marker        = 0x1234cccc;
00271    m_record.record_size   = 4;
00272    //m_record.data_block_number;  //set manually
00273    //m_record.data_block_size;    //set manually
00274 }

DataSeparatorRecord::DataSeparatorRecord  ) 
 


Member Function Documentation

void DataSeparatorRecord::dump std::ostream os = std::cout  )  const
 

void DataSeparatorRecord::dump std::ostream os = std::cout  )  const
 

00328                                                    {
00329   os << "[RawFile] DataSeparatorRecord:" << std::endl << std::hex
00330      << "[RawFile] \tmarker               : 0x" << m_record.marker << std::endl
00331      << "[RawFile] \trecord_size          : 0x" << m_record.record_size << std::endl
00332      << "[RawFile] \tdata_block_number    : 0x" << m_record.data_block_number << std::endl
00333      << "[RawFile] \tdata_block_size      : 0x" << m_record.data_block_size
00334      << std::dec << std::endl;
00335 }

const data_separator_record& DataSeparatorRecord::getRecord  )  const [inline]
 

00132 { return m_record; }

const data_separator_record& DataSeparatorRecord::getRecord  )  const [inline]
 

00132 { return m_record; }

void DataSeparatorRecord::setDataBlockNumber uint32_t  dn  )  [inline]
 

00135 { m_record.data_block_number = dn; }

void DataSeparatorRecord::setDataBlockNumber uint32_t  dn  )  [inline]
 

00135 { m_record.data_block_number = dn; }

void DataSeparatorRecord::setDataBlockSize uint32_t  ds  )  [inline]
 

00136 { m_record.data_block_size = ds; }

void DataSeparatorRecord::setDataBlockSize uint32_t  ds  )  [inline]
 

00136 { m_record.data_block_size = ds; }


Friends And Related Function Documentation

raw_ofstream& operator<< raw_ofstream os,
DataSeparatorRecord record
[friend]
 

00212                                                                         {
00213   // write data block
00214   if (os.write((char*)(&record.m_record), sizeof(data_separator_record)).fail()) {
00215     std::cerr << "[RawFile] Error occurred while writing file" << std::endl;
00216     throw FailedToWrite("DataSeparatorRecord");
00217   }
00218 
00219   return os;
00220 }

raw_ofstream& operator<< raw_ofstream os,
DataSeparatorRecord record
[friend]
 

00212                                                                         {
00213   // write data block
00214   if (os.write((char*)(&record.m_record), sizeof(data_separator_record)).fail()) {
00215     std::cerr << "[RawFile] Error occurred while writing file" << std::endl;
00216     throw FailedToWrite("DataSeparatorRecord");
00217   }
00218 
00219   return os;
00220 }

raw_ifstream& operator>> raw_ifstream is,
DataSeparatorRecord record
[friend]
 

00096                                                                         {
00097   // read data block
00098   if (is.read((char*)(&record.m_record), sizeof(data_separator_record)).fail()) {
00099     //std::cerr << "[RawFile] Error occurred while reading file" << std::endl;
00100     throw BadInputStream("DataSeparatorRecord");
00101     //throw ReachEndOfFile();
00102   }
00103 
00104   // data validation checks
00105   if (record.m_record.marker != 0x1234cccc) {
00106     if (record.m_record.marker == 0x1234dddd) {
00107       throw ReachEndOfFile(is.currentFile().c_str());
00108     }
00109     //std::cerr << "[RawFile] Get an invalid record marker" << std::endl;
00110     throw WrongMarker(0x1234cccc, record.m_record.marker);
00111   }
00112 
00113   if (record.m_record.record_size != 4) {
00114     //std::cerr << "[RawFile] Get an unexpected record size" << std::endl;
00115     throw UnexpectedRecordSize("DataSeparatorRecord", 4, record.m_record.record_size);
00116   }
00117 
00118   return is;
00119 }

raw_ifstream& operator>> raw_ifstream is,
DataSeparatorRecord record
[friend]
 

00096                                                                         {
00097   // read data block
00098   if (is.read((char*)(&record.m_record), sizeof(data_separator_record)).fail()) {
00099     //std::cerr << "[RawFile] Error occurred while reading file" << std::endl;
00100     throw BadInputStream("DataSeparatorRecord");
00101     //throw ReachEndOfFile();
00102   }
00103 
00104   // data validation checks
00105   if (record.m_record.marker != 0x1234cccc) {
00106     if (record.m_record.marker == 0x1234dddd) {
00107       throw ReachEndOfFile(is.currentFile().c_str());
00108     }
00109     //std::cerr << "[RawFile] Get an invalid record marker" << std::endl;
00110     throw WrongMarker(0x1234cccc, record.m_record.marker);
00111   }
00112 
00113   if (record.m_record.record_size != 4) {
00114     //std::cerr << "[RawFile] Get an unexpected record size" << std::endl;
00115     throw UnexpectedRecordSize("DataSeparatorRecord", 4, record.m_record.record_size);
00116   }
00117 
00118   return is;
00119 }


Member Data Documentation

data_separator_record DataSeparatorRecord::m_record [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:56:41 2011 for BOSS6.5.5 by  doxygen 1.3.9.1