#include <FadcReadout.h>
Inheritance diagram for DybDaq::FadcReadout:
Public Types | |
typedef std::vector< const FadcData * > | FadcDataPtrList |
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 | |
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 DaqTraits & | daqTraits () const |
Returns the DaqTraits instance used to parse this object's buffer. | |
const FadcHead & | head () const |
const FadcDataPtrList & | fadcData () const |
const FadcFoot & | foot () 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 FadcData & | 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. | |
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 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 | |
FadcReadout () | |
Suppress default. | |
FadcReadout (FadcReadout &rhs) | |
Suppress default. | |
FadcReadout & | operator= (FadcReadout &rhs) |
Suppress default. | |
const FadcData & | add (const FadcData *data) |
Adds the supplied FadcData to this object,. | |
FadcFoot & | foot () |
Private Attributes | |
FadcHead * | m_head |
The FadcHead for this fragment. | |
FadcDataPtrList * | m_data |
The list of Fadc Data in this object. | |
FadcFoot * | m_foot |
The FadcFoot for this fragment. | |
Friends | |
friend class | DaqContainer |
Definition at line 27 of file FadcReadout.h.
typedef std::vector<const FadcData*> DybDaq::FadcReadout::FadcDataPtrList |
Definition at line 31 of file FadcReadout.h.
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.
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.
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] |
FadcHead* DybDaq::FadcReadout::m_head [mutable, private] |
FadcDataPtrList* DybDaq::FadcReadout::m_data [mutable, private] |
FadcFoot* DybDaq::FadcReadout::m_foot [mutable, private] |