00001 #ifndef FILEREADOUTFORMAT_FILESTARTRECORD_H 00002 #define FILEREADOUTFORMAT_FILESTARTRECORD_H 00003 00004 /* 00005 * FileStartRecord.h 00006 * FileReadoutFormat 00007 * 00008 * Created by Simon Patton on 7/18/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include "FileReadoutFormat/FileTraits.h" 00013 00014 #include "FileReadoutFormat/FileBuffer.h" 00015 00016 namespace DybDaq { 00017 00018 class FileStartRecord : public FileBuffer { 00019 00020 public: 00021 00022 FileStartRecord(const unsigned int fileNumber, 00023 const FileTraits::FileDateTime& dateTime, 00024 const unsigned int dataBlockLimit, 00025 const unsigned int megabyteLimit, 00026 const FileTraits& traits); 00027 00031 FileStartRecord(const ByteBuffer& byteBuffer, 00032 const FileTraits& traits); 00033 00037 virtual ~FileStartRecord(); 00038 00042 virtual const DaqTraits& daqTraits() const; 00043 00047 virtual bool isMarked(unsigned int marker) const; 00048 00052 unsigned int majorVersion() const; 00053 00057 unsigned int minorVersion() const; 00058 00062 unsigned int fileNumber() const; 00063 00067 FileTraits::FileDateTime dateTime() const; 00068 00072 unsigned int dataBlockLimit() const; 00073 00077 unsigned int megabyteLimit() const; 00078 00079 /* 00080 * Returns date when file was opened, as DDMMYYYY. 00081 */ 00082 unsigned int date() const; 00083 00087 unsigned int time() const; 00088 00089 protected: 00090 00094 virtual unsigned int formatComponent() const; 00095 00096 private: 00097 00101 FileStartRecord(); 00102 00106 FileStartRecord(FileStartRecord& rhs); 00107 00111 FileStartRecord& operator=(FileStartRecord& rhs); 00112 00116 void setMajorVersion(const unsigned int majorVersion); 00117 00121 void setMinorVersion(const unsigned int minorVersion); 00122 00126 void setHeaderSize(const unsigned int headerSize); 00127 00131 void setTotalSize(const unsigned int totalSize); 00132 00136 void setFileNumber(const unsigned int fileNumber); 00137 00141 void setDateTime(const FileTraits::FileDateTime& dateTime); 00142 00146 void setDataBlockLimit(const unsigned int dataBlockLimit); 00147 00151 void setMegabyteLimit(const unsigned int megabyteLimit); 00152 00153 /* 00154 * Sets date when file was opened, as DDMMYYYY. 00155 */ 00156 void setDate(const unsigned int date); 00157 00161 void setTime(const unsigned int time); 00162 00168 const FileTraits* m_traits; 00169 }; 00170 00171 } 00172 00173 #endif // FILEREADOUTFORMAT_FILESTARTRECORD_H 00174