00001 #ifndef RTMREADOUTFORMAT_RTMREADOUT_H
00002 #define RTMREADOUTFORMAT_RTMREADOUT_H
00003
00004 #include "DaqReadoutFormat/RomData.h"
00005 #include "DaqReadoutFormat/DaqContainer.h"
00006
00007 #include <vector>
00008
00009
00010 namespace DybDaq {
00011 class RtmData;
00012 class RtmTraits;
00013 }
00014
00015
00016 namespace DybDaq {
00017
00018 class RtmReadout : public DaqContainer, public RomData {
00019 public :
00020
00021 typedef std::vector<const RtmData*> RtmDataPtrList;
00022
00023
00024 RtmReadout(const RtmTraits& traits);
00025
00026
00027 RtmReadout(const ByteBuffer& byteBuffer,
00028 const unsigned int length,
00029 const unsigned int verFormat = 0);
00030
00031
00032 virtual ~RtmReadout();
00033
00034
00035 virtual const DaqTraits& daqTraits() const;
00036
00037
00038 const RtmDataPtrList& rtmDataList() const;
00039
00040
00041 virtual unsigned int romSize() const;
00042
00043
00044
00045 virtual unsigned int gatherRom(OutputBufferList& outputBuffers) const;
00046
00047
00048
00049 virtual unsigned int inspectRom(DaqBuffer::Bytes& inspectors) const;
00050
00051
00052 virtual unsigned int bufferSize() const;
00053
00054
00055
00056 const RtmData& addRtmData(const unsigned int rpcCFId,
00057 const bool transErr,
00058 const bool romAlmostFull,
00059 const bool rtmAlmostFull,
00060 const bool fullFlag,
00061 const bool validGPS,
00062 const bool validCLK,
00063 const bool usingUTC,
00064 const unsigned int second,
00065 const unsigned int nanoSecond,
00066 const unsigned int accumulation,
00067 const unsigned int triggerRot,
00068 const unsigned int triggerMap);
00069
00070
00071 protected :
00072
00073
00074 virtual unsigned int gatherComponents(OutputBufferList& outputBuffers) const;
00075
00076
00077 virtual unsigned int inspectComponents(DaqBuffer::Bytes& inspectors) const;
00078
00079
00080 virtual void expanded(const unsigned int size);
00081
00082
00083
00084 virtual bool setRomExpandable(DaqExpandable& expandable);
00085
00086
00087 private :
00088
00089
00090 RtmReadout();
00091 RtmReadout(const RtmReadout&);
00092 RtmReadout& operator=(const RtmReadout&);
00093
00094
00095 const RtmTraits& rtmTraits() const;
00096
00097
00098 const RtmData& add(const RtmData* rtmData);
00099
00100
00101
00102 mutable RtmDataPtrList* m_rtmList;
00103
00104
00105 unsigned int m_verFormat;
00106
00107
00108 mutable const RtmTraits* m_rtmTraits;
00109 };
00110
00111 }
00112
00113 #endif