| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DybDaq::RtmReadout Class Reference

#include <RtmReadout.h>

Inheritance diagram for DybDaq::RtmReadout:

[legend]
Collaboration diagram for DybDaq::RtmReadout:
[legend]
List of all members.

Public Types

typedef std::vector< const
RtmData * > 
RtmDataPtrList
typedef std::pair< const char *,
unsigned int > 
OutputBuffer
typedef std::vector< OutputBufferOutputBufferList
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 DaqTraitsdaqTraits () const
const RtmDataPtrListrtmDataList () 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 RtmDataaddRtmData (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 ByteBufferbyteBuffer () 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 &)
RtmReadoutoperator= (const RtmReadout &)
const RtmTraitsrtmTraits () const
const RtmDataadd (const RtmData *rtmData)

Private Attributes

RtmDataPtrListm_rtmList
unsigned int m_verFormat
const RtmTraitsm_rtmTraits

Friends

friend class DaqContainer

Detailed Description

Definition at line 18 of file RtmReadout.h.


Member Typedef Documentation

typedef std::vector<const RtmData*> DybDaq::RtmReadout::RtmDataPtrList

Definition at line 21 of file RtmReadout.h.


Constructor & Destructor Documentation

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]

Definition at line 32 of file RtmReadout.cc.

00033 {
00034    if ( m_rtmList != 0 ) {
00035       RtmDataPtrList::iterator it = m_rtmList->begin();
00036       while ( it != m_rtmList->end() ) {
00037          delete *it;
00038          ++it;
00039       }
00040       delete m_rtmList;
00041    }
00042 }

DybDaq::RtmReadout::RtmReadout (  )  [private]

DybDaq::RtmReadout::RtmReadout ( const RtmReadout  )  [private]


Member Function Documentation

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]

Definition at line 75 of file RtmReadout.cc.

00076 {
00077    return gather(outputBuffers);
00078 }

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 }

const RtmData & RtmReadout::add ( const RtmData rtmData  )  [private]

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 }


Member Data Documentation

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.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:07:48 2011 for RtmReadoutFormat by doxygen 1.4.7