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

In This Package:

DybDaq::DaqTraits Class Reference

#include <DaqTraits.h>

List of all members.


Public Types

typedef std::vector< BitsDefinitionDefinitions

Public Member Functions

virtual ~DaqTraits ()
 Destroy this instance of the class.
virtual unsigned int majorVersion () const =0
virtual unsigned int minorVersion () const =0
virtual const std::string versionString () const =0
 Returns the version of the event format as a string.
virtual unsigned int marker (unsigned int marker) const
 Returns the marker of the type of specified header.
virtual unsigned int illegalMarker () const =0
 Returns the index value for an illegal header.
virtual unsigned int illegalField () const =0
 Returns the index value for an illegal field.
virtual const char * boolAsString (bool value) const
 Returns the string for the specified boolean.
const DaqTraits::DefinitionsbitsDefinitions (unsigned int component) const
 Returns the set of all definitions of fields within a components.

Protected Member Functions

 DaqTraits ()
 Creates an instance of this class.
unsigned int index (unsigned int field) const
 Returns the index of the field in its block.
virtual unsigned int markersEnd () const =0
 Returns the maximum number of headers in an event.
virtual const unsigned int * markers () const =0
 Returns the markers for the records.
virtual unsigned int fieldsEnd () const =0
 Returns the maximum field value for a particluar format.
virtual const unsigned int * indices () const =0
 Returns the indices of shifts for fields.
virtual const unsigned int * shifts () const =0
 Returns the array of shifts for fields.
virtual const unsigned int * masks () const =0
 Returns the array of marks for fields.
virtual const std::string * descriptions () const
 Returns the array of descriptions for fields.
virtual DaqTraits::Definitionsdefinitions (unsigned int component) const
 Returns the array of bits definitions for a compement.
virtual void setDefinitions (DaqTraits::Definitions *definitions, unsigned int component)
 Sets the array of bits definitions for a compoment.
virtual const unsigned int * componentFields (unsigned int component) const
 Sets the array of fields for a compoment.
virtual const unsigned int componentFieldsEnd (unsigned int component) const
 Returns the maximum indexthe array of fields for a compoment.

Static Protected Member Functions

static unsigned int readUnsignedInt (const char *&buffer, const DaqTraits &traits, unsigned int field)
 Utility method to access buffer to determine correct traits.

Private Member Functions

 DaqTraits (DaqTraits &rhs)
 Suppress default.
DaqTraitsoperator= (DaqTraits &rhs)
 Suppress default.
unsigned int shift (unsigned int field) const
 Returns the shift of the field in its block.
unsigned int mask (unsigned int field) const
 Returns the mask of the field in its block.

Friends

class DaqBuffer

Detailed Description

Definition at line 20 of file DaqTraits.h.


Member Typedef Documentation

typedef std::vector<BitsDefinition> DybDaq::DaqTraits::Definitions

Definition at line 26 of file DaqTraits.h.


Constructor & Destructor Documentation

DaqTraits::~DaqTraits (  )  [virtual]

Destroy this instance of the class.

Definition at line 21 of file DaqTraits.cc.

00021                       {
00022 }

DaqTraits::DaqTraits (  )  [protected]

Creates an instance of this class.

Definition at line 18 of file DaqTraits.cc.

00018                      {
00019 }

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

Suppress default.


Member Function Documentation

virtual unsigned int DybDaq::DaqTraits::majorVersion (  )  const [pure virtual]

virtual unsigned int DybDaq::DaqTraits::minorVersion (  )  const [pure virtual]

virtual const std::string DybDaq::DaqTraits::versionString (  )  const [pure virtual]

Returns the version of the event format as a string.

unsigned int DaqTraits::marker ( unsigned int  marker  )  const [virtual]

Returns the marker of the type of specified header.

Definition at line 35 of file DaqTraits.cc.

00035                                                         {
00036         if (marker >= markersEnd()) {
00037                 return illegalMarker();
00038         }
00039         return markers()[marker];
00040 }

virtual unsigned int DybDaq::DaqTraits::illegalMarker (  )  const [pure virtual]

Returns the index value for an illegal header.

virtual unsigned int DybDaq::DaqTraits::illegalField (  )  const [pure virtual]

Returns the index value for an illegal field.

const char * DaqTraits::boolAsString ( bool  value  )  const [virtual]

Returns the string for the specified boolean.

Definition at line 63 of file DaqTraits.cc.

00063                                                     {
00064     if (value) {
00065         return "yes";
00066     }
00067     return "no";
00068 }

const DaqTraits::Definitions & DaqTraits::bitsDefinitions ( unsigned int  component  )  const

Returns the set of all definitions of fields within a components.

Definition at line 90 of file DaqTraits.cc.

00090                                                                                    {
00091     DaqTraits::Definitions* componentDefinitions = definitions(component);
00092     if (0 == componentDefinitions) {
00093         componentDefinitions = new DaqTraits::Definitions();
00094         const unsigned int* fieldIndices = componentFields(component);
00095         const unsigned int finished = componentFieldsEnd(component);
00096         for (unsigned int index = 0;
00097              finished != index;
00098              ++index) {
00099             const unsigned int field = fieldIndices[index];
00100             unsigned int shift = shifts()[field];
00101             const unsigned int mask = masks()[field];
00102             unsigned int count = 0;
00103             unsigned int bit = 1;
00104             if (0 != mask) {
00105                 if (0 == (bit & mask)) {
00106                     // Assumes it is binary
00107                     while (32 > count && (0 == (bit & mask)) ) {
00108                         bit <<= 1;
00109                         ++count;
00110                     }
00111                     shift = count - 1;
00112                     count = 1;
00113                 } else {
00114                     while (32 > count && (0 != (bit & mask)) ) {
00115                         bit <<= 1;
00116                         ++count;
00117                     }
00118                 }
00119             }
00120             componentDefinitions->push_back(BitsDefinition(field,
00121                                                            indices()[field],
00122                                                            shift,
00123                                                            count,
00124                                                            descriptions()[field]));
00125         }
00126         const_cast<DaqTraits*>(this)->setDefinitions(componentDefinitions,
00127                                                      component);
00128     }
00129     return *componentDefinitions;
00130 }

unsigned int DaqTraits::readUnsignedInt ( const char *&  buffer,
const DaqTraits traits,
unsigned int  field 
) [static, protected]

Utility method to access buffer to determine correct traits.

Definition at line 24 of file DaqTraits.cc.

00026                                                             {
00027         unsigned int index = traits.index(field);
00028         if (index == traits.illegalField()) {
00029                 return 0;
00030         }
00031         unsigned int fourBytes = *(((unsigned int*)buffer) + index);
00032         return (fourBytes >> traits.shift(field)) & traits.mask(field);
00033 }

unsigned int DaqTraits::index ( unsigned int  field  )  const [protected]

Returns the index of the field in its block.

Definition at line 42 of file DaqTraits.cc.

00042                                                       {
00043         if (field >= fieldsEnd()) {
00044                 return illegalField();
00045         }
00046         return indices()[field];
00047 }

virtual unsigned int DybDaq::DaqTraits::markersEnd (  )  const [protected, pure virtual]

Returns the maximum number of headers in an event.

virtual const unsigned int* DybDaq::DaqTraits::markers (  )  const [protected, pure virtual]

Returns the markers for the records.

virtual unsigned int DybDaq::DaqTraits::fieldsEnd (  )  const [protected, pure virtual]

Returns the maximum field value for a particluar format.

virtual const unsigned int* DybDaq::DaqTraits::indices (  )  const [protected, pure virtual]

Returns the indices of shifts for fields.

virtual const unsigned int* DybDaq::DaqTraits::shifts (  )  const [protected, pure virtual]

Returns the array of shifts for fields.

virtual const unsigned int* DybDaq::DaqTraits::masks (  )  const [protected, pure virtual]

Returns the array of marks for fields.

const string * DaqTraits::descriptions (  )  const [protected, virtual]

Returns the array of descriptions for fields.

Definition at line 86 of file DaqTraits.cc.

00086                                             {
00087     return 0;
00088 }

DaqTraits::Definitions * DaqTraits::definitions ( unsigned int  component  )  const [protected, virtual]

Returns the array of bits definitions for a compement.

Definition at line 70 of file DaqTraits.cc.

00070                                                                                {
00071     return 0;
00072 }

void DaqTraits::setDefinitions ( DaqTraits::Definitions definitions,
unsigned int  component 
) [protected, virtual]

Sets the array of bits definitions for a compoment.

Definition at line 74 of file DaqTraits.cc.

00075                                                              {
00076 }

const unsigned int * DaqTraits::componentFields ( unsigned int  component  )  const [protected, virtual]

Sets the array of fields for a compoment.

Definition at line 78 of file DaqTraits.cc.

00078                                                                                  {
00079     return 0;
00080 }

const unsigned int DaqTraits::componentFieldsEnd ( unsigned int  component  )  const [protected, virtual]

Returns the maximum indexthe array of fields for a compoment.

Definition at line 82 of file DaqTraits.cc.

00082                                                                                    {
00083     return 0;
00084 }

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

Suppress default.

unsigned int DaqTraits::shift ( unsigned int  field  )  const [private]

Returns the shift of the field in its block.

Definition at line 49 of file DaqTraits.cc.

00049                                                       {
00050         if (field >= fieldsEnd()) {
00051                 return 0;
00052         }
00053         return shifts()[field];
00054 }

unsigned int DaqTraits::mask ( unsigned int  field  )  const [private]

Returns the mask of the field in its block.

Definition at line 56 of file DaqTraits.cc.

00056                                                      {
00057         if (field >= fieldsEnd()) {
00058                 return 0;
00059         }
00060         return masks()[field];
00061 }


Friends And Related Function Documentation

friend class DaqBuffer [friend]

Definition at line 24 of file DaqTraits.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:44 2011 for DaqReadoutFormat by doxygen 1.4.7