#include <RtmReadout.h>
Inheritance diagram for DybDaq::RtmReadout:
Public Types | |
typedef std::vector< const RtmData * > | RtmDataPtrList |
typedef std::pair< const char *, unsigned int > | OutputBuffer |
typedef std::vector< OutputBuffer > | OutputBufferList |
typedef std::vector< ByteInspector * > | Bytes |
typedef std::vector< BitsInspector * > | Bits |
Public Member Functions | |
RtmReadout (const RtmTraits &traits) | |
RtmReadout (const ByteBuffer &byteBuffer, const unsigned int length, const unsigned int verFormat=0) | |
virtual | ~RtmReadout () |
virtual const DaqTraits & | daqTraits () const |
const RtmDataPtrList & | rtmDataList () const |
virtual unsigned int | romSize () const |
virtual unsigned int | gatherRom (OutputBufferList &outputBuffers) const |
virtual unsigned int | inspectRom (DaqBuffer::Bytes &inspectors) const |
virtual unsigned int | bufferSize () const |
const RtmData & | addRtmData (const unsigned int rpcCFId, const bool transErr, const bool romAlmostFull, const bool rtmAlmostFull, const bool fullFlag, const bool validGPS, const bool validCLK, const bool usingUTC, const unsigned int second, const unsigned int nanoSecond, const unsigned int accumulation, const unsigned int triggerRot, const unsigned int triggerMap) |
virtual unsigned int | gather (OutputBufferList &outputBuffers) const |
virtual unsigned int | gather (OutputBufferList &outputBuffers) const |
virtual unsigned int | inspect (DaqBuffer::Bytes &inspectors) const |
bool | hasDaqTraits () const |
virtual unsigned int | gatherRom (DaqBuffer::OutputBufferList &outputBuffers) const =0 |
Static Public Attributes | |
static const unsigned int | kBytesInInt |
static const unsigned int | kUndefinedFormatComponent |
Protected Member Functions | |
virtual unsigned int | gatherComponents (OutputBufferList &outputBuffers) const |
virtual unsigned int | inspectComponents (DaqBuffer::Bytes &inspectors) const |
virtual void | expanded (const unsigned int size) |
virtual bool | setRomExpandable (DaqExpandable &expandable) |
unsigned int | begin () const |
unsigned int | containerSize () const |
virtual unsigned int | gatherComponents (OutputBufferList &outputBuffers) const =0 |
bool | setExpandable (DaqExpandable &expandable) |
void | notifyExpandable (const unsigned int size) |
bool | expandedByRomData (const RomData *romData) |
const char * | buffer () const |
char * | buffer () |
bool | hasByteBuffer () const |
const ByteBuffer & | byteBuffer () const |
unsigned int | fillInspectors (DaqBuffer::Bytes &inspectors, unsigned int component, unsigned int cursor) const |
virtual bool | readBool (const unsigned int field) const |
virtual int | readInt (const unsigned int field) const |
virtual unsigned char | readUnsignedChar (const unsigned int field) const |
virtual unsigned int | readUnsignedInt (const unsigned int field) const |
virtual void | writeField (const bool value, const unsigned int field) |
virtual void | writeField (const int value, const unsigned int field) |
virtual void | writeField (const unsigned int value, const unsigned int field) |
virtual unsigned int | formatComponent () const |
Private Member Functions | |
RtmReadout () | |
RtmReadout (const RtmReadout &) | |
RtmReadout & | operator= (const RtmReadout &) |
const RtmTraits & | rtmTraits () const |
const RtmData & | add (const RtmData *rtmData) |
Private Attributes | |
RtmDataPtrList * | m_rtmList |
unsigned int | m_verFormat |
const RtmTraits * | m_rtmTraits |
Friends | |
friend class | DaqContainer |
Definition at line 18 of file RtmReadout.h.
typedef std::vector<const RtmData*> DybDaq::RtmReadout::RtmDataPtrList |
Definition at line 21 of file RtmReadout.h.
RtmReadout::RtmReadout | ( | const RtmTraits & | traits | ) |
Definition at line 13 of file RtmReadout.cc.
00014 : DaqContainer(), 00015 m_rtmList(0), 00016 m_verFormat(0), 00017 m_rtmTraits(&traits) 00018 { 00019 }
RtmReadout::RtmReadout | ( | const ByteBuffer & | byteBuffer, | |
const unsigned int | length, | |||
const unsigned int | verFormat = 0 | |||
) |
Definition at line 21 of file RtmReadout.cc.
00024 : DaqContainer(byteBuffer, bufferSize), 00025 m_rtmList(0), 00026 m_verFormat(verFormat), 00027 m_rtmTraits(0) 00028 { 00029 byteBuffer.position( byteBuffer.position() + bufferSize * kBytesInInt ); 00030 }
RtmReadout::~RtmReadout | ( | ) | [virtual] |
DybDaq::RtmReadout::RtmReadout | ( | ) | [private] |
DybDaq::RtmReadout::RtmReadout | ( | const RtmReadout & | ) | [private] |
const DaqTraits & RtmReadout::daqTraits | ( | ) | const [virtual] |
Reimplemented from DybDaq::DaqContainer.
Definition at line 44 of file RtmReadout.cc.
00045 { 00046 return rtmTraits(); 00047 }
const RtmReadout::RtmDataPtrList & RtmReadout::rtmDataList | ( | ) | const |
Definition at line 49 of file RtmReadout.cc.
00050 { 00051 if ( m_rtmList == 0 ) { 00052 m_rtmList = new RtmDataPtrList(); 00053 if ( hasByteBuffer() ) { 00054 const RtmTraits& traits = rtmTraits(); 00055 const ByteBuffer& buffer = byteBuffer(); 00056 00057 const unsigned int originalPosition = buffer.position(); 00058 buffer.position( begin() ); 00059 const unsigned int finished = containerSize() / traits.rtmSize(); 00060 for ( unsigned int count = 0; count != finished; ++count ) { 00061 RtmData* rtmData = new RtmData(buffer, traits); 00062 m_rtmList->push_back(rtmData); 00063 } 00064 buffer.position( originalPosition ); 00065 } 00066 } 00067 return *m_rtmList; 00068 }
unsigned int RtmReadout::romSize | ( | ) | const [virtual] |
Implements DybDaq::RomData.
Definition at line 70 of file RtmReadout.cc.
00071 { 00072 return bufferSize(); 00073 }
unsigned int RtmReadout::gatherRom | ( | OutputBufferList & | outputBuffers | ) | const [virtual] |
unsigned int RtmReadout::inspectRom | ( | DaqBuffer::Bytes & | inspectors | ) | const [virtual] |
Implements DybDaq::RomData.
Definition at line 80 of file RtmReadout.cc.
00081 { 00082 return inspect(inspectors); 00083 }
unsigned int RtmReadout::bufferSize | ( | ) | const [virtual] |
Implements DybDaq::DaqContainer.
Definition at line 85 of file RtmReadout.cc.
00086 { 00087 unsigned int result = 0; 00088 const RtmDataPtrList& rtmList = rtmDataList(); 00089 00090 RtmDataPtrList::const_iterator it = rtmList.begin(); 00091 while ( it != rtmList.end() ) { 00092 result += (*it)->bufferSize(); 00093 ++it; 00094 } 00095 00096 return result; 00097 }
const RtmData & RtmReadout::addRtmData | ( | const unsigned int | rpcCFId, | |
const bool | transErr, | |||
const bool | romAlmostFull, | |||
const bool | rtmAlmostFull, | |||
const bool | fullFlag, | |||
const bool | validGPS, | |||
const bool | validCLK, | |||
const bool | usingUTC, | |||
const unsigned int | second, | |||
const unsigned int | nanoSecond, | |||
const unsigned int | accumulation, | |||
const unsigned int | triggerRot, | |||
const unsigned int | triggerMap | |||
) |
Definition at line 99 of file RtmReadout.cc.
00112 { 00113 RtmData* result = new RtmData(rpcCFId, 00114 transErr, 00115 romAlmostFull, 00116 rtmAlmostFull, 00117 fullFlag, 00118 validGPS, 00119 validCLK, 00120 usingUTC, 00121 second, 00122 nanoSecond, 00123 accumulation, 00124 triggerRot, 00125 triggerMap, 00126 rtmTraits() ); 00127 return add( result ); 00128 }
unsigned int RtmReadout::gatherComponents | ( | OutputBufferList & | outputBuffers | ) | const [protected, virtual] |
Definition at line 130 of file RtmReadout.cc.
00131 { 00132 unsigned int result = 0; 00133 const RtmDataPtrList& rtmList = rtmDataList(); 00134 00135 RtmDataPtrList::const_iterator it = rtmList.begin(); 00136 while ( it != rtmList.end() ) { 00137 result += (*it)->gather(outputBuffers); 00138 ++it; 00139 } 00140 00141 return result; 00142 }
unsigned int RtmReadout::inspectComponents | ( | DaqBuffer::Bytes & | inspectors | ) | const [protected, virtual] |
Implements DybDaq::DaqContainer.
Definition at line 144 of file RtmReadout.cc.
00145 { 00146 unsigned int result = 0; 00147 const RtmDataPtrList& rtmList = rtmDataList(); 00148 00149 RtmDataPtrList::const_iterator it = rtmList.begin(); 00150 while ( it != rtmList.end() ) { 00151 result += (*it)->inspect(inspectors); 00152 ++it; 00153 } 00154 00155 return result; 00156 }
void RtmReadout::expanded | ( | const unsigned int | size | ) | [protected, virtual] |
Implements DybDaq::DaqContainer.
Definition at line 158 of file RtmReadout.cc.
00159 { 00160 notifyExpandable(size); 00161 }
bool RtmReadout::setRomExpandable | ( | DaqExpandable & | expandable | ) | [protected, virtual] |
Implements DybDaq::RomData.
Definition at line 163 of file RtmReadout.cc.
00164 { 00165 return setExpandable(expandable); 00166 }
RtmReadout& DybDaq::RtmReadout::operator= | ( | const RtmReadout & | ) | [private] |
const RtmTraits & RtmReadout::rtmTraits | ( | ) | const [private] |
Definition at line 168 of file RtmReadout.cc.
00169 { 00170 if ( m_rtmTraits == 0 ) { 00171 m_rtmTraits = RtmTraits::getTraits(m_verFormat); 00172 } 00173 return *m_rtmTraits; 00174 }
Definition at line 176 of file RtmReadout.cc.
00177 { 00178 if ( m_rtmList == 0 ) { 00179 m_rtmList = new RtmDataPtrList(); 00180 } 00181 00182 m_rtmList->push_back(rtmData); 00183 expanded( rtmData->bufferSize() ); 00184 00185 return *rtmData; 00186 }
RtmDataPtrList* DybDaq::RtmReadout::m_rtmList [mutable, private] |
Definition at line 102 of file RtmReadout.h.
unsigned int DybDaq::RtmReadout::m_verFormat [private] |
Definition at line 105 of file RtmReadout.h.
const RtmTraits* DybDaq::RtmReadout::m_rtmTraits [mutable, private] |
Definition at line 108 of file RtmReadout.h.