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

In This Package:

DybDaq::FadcReadout Class Reference

#include <FadcReadout.h>

Inheritance diagram for DybDaq::FadcReadout:

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

Public Types

typedef std::vector< const
FadcData * > 
FadcDataPtrList
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

 FadcReadout (const unsigned int triggerNumber, const unsigned int triggerType, const bool noData, const FadcTraits &traits)
 FadcReadout (const ByteBuffer &byteBuffer, const unsigned int length)
 Create an instance of this class.
virtual ~FadcReadout ()
 Destroy this instance of the class.
virtual const DaqTraitsdaqTraits () const
 Returns the DaqTraits instance used to parse this object's buffer.
const FadcHeadhead () const
const FadcDataPtrListfadcData () const
const FadcFootfoot () const
virtual unsigned int romSize () const
 Returns the total size, in 4-bytes, of all the buffers for this object's components.
virtual unsigned int gatherRom (DaqBuffer::OutputBufferList &outputBuffers) const
 Adds to the supplied line the OutputBuffers that contain the DAQ format of this objects content returning the total number of bytes in the added buffers.
virtual unsigned int inspectRom (DaqBuffer::Bytes &inspectors) const
 Adds to the supplied list the DaqBuffer::Bytes that contains inspections of this object's objects.
virtual unsigned int bufferSize () const
 Returns the size, in 4-bytes, of this ojbect's contents in the buffer.
const FadcDataaddData (const unsigned int channel, const unsigned int highDataByte, const unsigned int middleDataByte, const unsigned int lowDataByte)
 Creates a new FadcData in this readout using the supplied values.
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

Static Public Attributes

static const unsigned int kBytesInInt
static const unsigned int kUndefinedFormatComponent

Protected Member Functions

virtual unsigned int gatherComponents (OutputBufferList &outputBuffers) const
 Gathers the DAQ formatted bytes for this object's components.
virtual unsigned int inspectComponents (DaqBuffer::Bytes &inspectors) const
 Inspects the DAQ formatted bytes for this object's components.
virtual void expanded (const unsigned int size)
 Tells this object that its contents has expanded by the specified number of bytes.
virtual bool setRomExpandable (DaqExpandable &expandable)
 Associates the supplied DaqExpanable with this object if it is not already associated with one.
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

 FadcReadout ()
 Suppress default.
 FadcReadout (FadcReadout &rhs)
 Suppress default.
FadcReadoutoperator= (FadcReadout &rhs)
 Suppress default.
const FadcDataadd (const FadcData *data)
 Adds the supplied FadcData to this object,.
FadcFootfoot ()

Private Attributes

FadcHeadm_head
 The FadcHead for this fragment.
FadcDataPtrListm_data
 The list of Fadc Data in this object.
FadcFootm_foot
 The FadcFoot for this fragment.

Friends

friend class DaqContainer

Detailed Description

Definition at line 27 of file FadcReadout.h.


Member Typedef Documentation

typedef std::vector<const FadcData*> DybDaq::FadcReadout::FadcDataPtrList

Definition at line 31 of file FadcReadout.h.


Constructor & Destructor Documentation

FadcReadout::FadcReadout ( const unsigned int  triggerNumber,
const unsigned int  triggerType,
const bool  noData,
const FadcTraits traits 
)

Definition at line 25 of file FadcReadout.cc.

00028                                                    :
00029     DaqContainer(),
00030     m_head(new FadcHead(triggerNumber,
00031                         triggerType,
00032                         noData,
00033                         traits)),
00034     m_data(0),
00035     m_foot(0) {
00036 }

FadcReadout::FadcReadout ( const ByteBuffer byteBuffer,
const unsigned int  length 
)

Create an instance of this class.

Definition at line 38 of file FadcReadout.cc.

00039                                                         :
00040     DaqContainer(byteBuffer,
00041                  bufferSize),
00042     m_head(0),
00043     m_data(0),
00044     m_foot(0) {
00045     byteBuffer.position(byteBuffer.position() + (bufferSize * kBytesInInt));
00046 }

FadcReadout::~FadcReadout (  )  [virtual]

Destroy this instance of the class.

Definition at line 48 of file FadcReadout.cc.

00048                           {
00049     if (0 != m_foot) {
00050         delete m_foot;
00051     }
00052     if (0 != m_data) {
00053         FadcDataPtrList::const_iterator data;
00054         for (data = m_data->begin();
00055              data != m_data->end();
00056              ++data) {
00057             delete const_cast<FadcData*>(*data);
00058         }
00059         delete m_data;
00060     }
00061     if (0 != m_head) {
00062         delete m_head;
00063     }
00064 }

DybDaq::FadcReadout::FadcReadout (  )  [private]

Suppress default.

DybDaq::FadcReadout::FadcReadout ( FadcReadout rhs  )  [private]

Suppress default.


Member Function Documentation

const DaqTraits & FadcReadout::daqTraits (  )  const [virtual]

Returns the DaqTraits instance used to parse this object's buffer.

Reimplemented from DybDaq::DaqContainer.

Definition at line 66 of file FadcReadout.cc.

00066                                               {
00067     return head().fadcTraits();
00068 }

const FadcHead & FadcReadout::head (  )  const

Definition at line 70 of file FadcReadout.cc.

00070                                         {
00071     if (0 == m_head && hasByteBuffer()) {
00072         const ByteBuffer& buffer = byteBuffer();
00073         const unsigned int originalPosition = buffer.position();
00074         buffer.position(begin());
00075         m_head = new FadcHead(buffer);
00076         buffer.position(originalPosition);
00077     }
00078     return *m_head;
00079 }

const FadcReadout::FadcDataPtrList & FadcReadout::fadcData (  )  const

Definition at line 81 of file FadcReadout.cc.

00081                                                               {
00082     if (0 == m_data) {
00083         m_data = new FadcDataPtrList();
00084         if (hasByteBuffer()) {
00085             const FadcTraits& traits = head().fadcTraits();
00086             const ByteBuffer& buffer = byteBuffer();
00087             
00088             const unsigned int originalPosition = buffer.position();
00089             buffer.position(begin() + (traits.headSize() * kBytesInInt));
00090             const unsigned int finished = (containerSize() - (traits.headSize() + traits.footSize())) / traits.dataSize();
00091             for (unsigned int count = 0;
00092                  count != finished;
00093                  ++count) {
00094                 FadcData* data = new FadcData(buffer,
00095                                               traits);
00096                 m_data->push_back(data);
00097             }
00098             buffer.position(originalPosition);
00099         }
00100     }
00101     return *m_data;
00102 }

const FadcFoot & FadcReadout::foot (  )  const

Definition at line 104 of file FadcReadout.cc.

00104                                         {
00105     if (0 == m_foot) {
00106         if (hasByteBuffer()) {
00107             const FadcTraits& traits = head().fadcTraits();
00108             const ByteBuffer& buffer = byteBuffer();
00109             
00110             const unsigned int originalPosition = buffer.position();
00111             buffer.position(begin() + ((containerSize() - traits.footSize()) * kBytesInInt));
00112             m_foot = new FadcFoot(buffer,
00113                                   head().fadcTraits());
00114             buffer.position(originalPosition);
00115         } else {
00116             m_foot = new FadcFoot(head());
00117         }
00118     }
00119     return *m_foot;
00120 }

unsigned int FadcReadout::romSize (  )  const [virtual]

Returns the total size, in 4-bytes, of all the buffers for this object's components.

Implements DybDaq::RomData.

Definition at line 130 of file FadcReadout.cc.

00130                                         {
00131     return bufferSize();
00132 }

unsigned int FadcReadout::gatherRom ( DaqBuffer::OutputBufferList outputBuffers  )  const [virtual]

Adds to the supplied line the OutputBuffers that contain the DAQ format of this objects content returning the total number of bytes in the added buffers.

Implements DybDaq::RomData.

Definition at line 122 of file FadcReadout.cc.

00122                                                                                   {
00123     return gather(outputBuffers);
00124 }

unsigned int FadcReadout::inspectRom ( DaqBuffer::Bytes inspectors  )  const [virtual]

Adds to the supplied list the DaqBuffer::Bytes that contains inspections of this object's objects.

Implements DybDaq::RomData.

Definition at line 126 of file FadcReadout.cc.

00126                                                                      {
00127     return inspect(inspectors);
00128 }

unsigned int FadcReadout::bufferSize (  )  const [virtual]

Returns the size, in 4-bytes, of this ojbect's contents in the buffer.

Implements DybDaq::DaqContainer.

Definition at line 162 of file FadcReadout.cc.

00162                                            {
00163     unsigned int result = head().bufferSize();
00164     const FadcDataPtrList& data = fadcData();
00165     FadcDataPtrList::const_iterator entry;
00166     for (entry = data.begin();
00167          entry != data.end();
00168          ++entry) {
00169         result += (*entry)->bufferSize();
00170     }
00171     result += foot().bufferSize();
00172     return result;
00173 }

const FadcData & FadcReadout::addData ( const unsigned int  channel,
const unsigned int  highDataByte,
const unsigned int  middleDataByte,
const unsigned int  lowDataByte 
)

Creates a new FadcData in this readout using the supplied values.

Definition at line 185 of file FadcReadout.cc.

00188                                                                      {
00189     const FadcTraits& traits = head().fadcTraits();
00190     FadcData* result = new FadcData(channel,
00191                                     highDataByte,
00192                                     middleDataByte,
00193                                     lowDataByte,
00194                                     traits);
00195     return add(result);
00196 }

unsigned int FadcReadout::gatherComponents ( OutputBufferList outputBuffers  )  const [protected, virtual]

Gathers the DAQ formatted bytes for this object's components.

Definition at line 134 of file FadcReadout.cc.

00134                                                                                 {
00135     unsigned int result = head().gather(outputBuffers);
00136     const FadcDataPtrList& data = fadcData();
00137     FadcDataPtrList::const_iterator entry;
00138     for (entry = data.begin();
00139          entry != data.end();
00140          ++entry) {
00141         result += (*entry)->gather(outputBuffers);
00142     }
00143     
00144     result += foot().gather(outputBuffers);
00145     return result;
00146 }

unsigned int FadcReadout::inspectComponents ( DaqBuffer::Bytes inspectors  )  const [protected, virtual]

Inspects the DAQ formatted bytes for this object's components.

Implements DybDaq::DaqContainer.

Definition at line 148 of file FadcReadout.cc.

00148                                                                             {
00149     unsigned int result = head().inspect(inspectors);
00150     const FadcDataPtrList& data = fadcData();
00151     FadcDataPtrList::const_iterator entry;
00152     for (entry = data.begin();
00153          entry != data.end();
00154          ++entry) {
00155         result += (*entry)->inspect(inspectors);
00156     }
00157     
00158     result += foot().inspect(inspectors);
00159     return result;
00160 }

void FadcReadout::expanded ( const unsigned int  size  )  [protected, virtual]

Tells this object that its contents has expanded by the specified number of bytes.

Implements DybDaq::DaqContainer.

Definition at line 175 of file FadcReadout.cc.

00175                                                   {
00176     FadcFoot& footToUse = foot();
00177     footToUse.setDataLength(footToUse.dataLength() + (size * kBytesInInt));
00178     notifyExpandable(size);
00179 }

bool FadcReadout::setRomExpandable ( DaqExpandable expandable  )  [protected, virtual]

Associates the supplied DaqExpanable with this object if it is not already associated with one.

It returns true if the association is successful, false otherwise.

Implements DybDaq::RomData.

Definition at line 181 of file FadcReadout.cc.

00181                                                             {
00182     return setExpandable(expandable);
00183 }

FadcReadout& DybDaq::FadcReadout::operator= ( FadcReadout rhs  )  [private]

Suppress default.

const FadcData & FadcReadout::add ( const FadcData data  )  [private]

Adds the supplied FadcData to this object,.

Definition at line 198 of file FadcReadout.cc.

00198                                                      {
00199     if (0 == m_data) {
00200         m_data = new FadcDataPtrList();
00201     }
00202     m_data->push_back(data);
00203     expanded(data->bufferSize());
00204     return *data;
00205 }

FadcFoot & FadcReadout::foot (  )  [private]

Definition at line 207 of file FadcReadout.cc.

00207                             {
00208     if (0 == m_foot) {
00209         m_foot = new FadcFoot(head());
00210     }
00211     return *m_foot;
00212 }


Member Data Documentation

FadcHead* DybDaq::FadcReadout::m_head [mutable, private]

The FadcHead for this fragment.

Definition at line 152 of file FadcReadout.h.

FadcDataPtrList* DybDaq::FadcReadout::m_data [mutable, private]

The list of Fadc Data in this object.

Definition at line 157 of file FadcReadout.h.

FadcFoot* DybDaq::FadcReadout::m_foot [mutable, private]

The FadcFoot for this fragment.

Definition at line 162 of file FadcReadout.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:57 2011 for FadcReadoutFormat by doxygen 1.4.7