00001 #ifndef FILEREADOUTFORMAT_FILEENDRECORD_H 00002 #define FILEREADOUTFORMAT_FILEENDRECORD_H 00003 00004 /* 00005 * FileEndRecord.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 FileEndRecord : public FileBuffer { 00019 00020 public: 00021 00022 00026 FileEndRecord(const FileTraits::FileDateTime& dateTime, 00027 const unsigned int fileEventCount, 00028 const unsigned int filePayloadSize, 00029 const unsigned int runEventCount, 00030 const unsigned int runPayloadSize, 00031 const unsigned int status, 00032 const FileTraits& traits); 00033 00037 FileEndRecord(const ByteBuffer& byteBuffer, 00038 const FileTraits& traits); 00039 00043 virtual ~FileEndRecord(); 00044 00048 virtual bool isMarked(unsigned int marker) const; 00049 00053 FileTraits::FileDateTime dateTime() const; 00054 00058 unsigned int fileEventCount() const; 00059 00063 unsigned int filePayloadSize() const; 00064 00068 unsigned int runEventCount() const; 00069 00073 unsigned int runPayloadSize() const; 00074 00078 unsigned int status() const; 00079 00083 bool endMarkerFound() const; 00084 00085 protected: 00086 00090 virtual unsigned int formatComponent() const; 00091 00092 private: 00093 00097 FileEndRecord(); 00098 00102 FileEndRecord(FileEndRecord& rhs); 00103 00107 FileEndRecord& operator=(FileEndRecord& rhs); 00108 00112 unsigned int date() const; 00113 00117 unsigned int time() const; 00118 00122 void setDateTime(const FileTraits::FileDateTime& dateTime); 00123 00127 void setFileEventCount(const unsigned int fileEventCount); 00128 00132 void setFilePayloadSize(const unsigned int filePayloadSize); 00133 00137 void setRunEventCount(const unsigned int runEventCount); 00138 00142 void setRunPayloadSize(const unsigned int runPayloadSize); 00143 00147 void setStatus(const unsigned int status); 00148 00152 void setDate(const unsigned int date); 00153 00157 void setTime(const unsigned int time); 00158 00159 }; 00160 00161 } 00162 00163 #endif // FILEREADOUTFORMAT_FILEENDRECORD_H