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

In This Package:

DayaBay::RawFragment Class Reference

#include <RawData.h>

Inheritance diagram for DayaBay::RawFragment:

[legend]
Collaboration diagram for DayaBay::RawFragment:
[legend]
List of all members.

Public Member Functions

 RawFragment (unsigned int *buffer=0, unsigned int majorVersion=0, unsigned int minorVersion=0, bool isOwner=false)
 ~RawFragment ()
unsigned int type () const
virtual unsigned int size () const
virtual std::ostream & dump (std::ostream &str)
unsigned int majorVersion () const
unsigned int minorVersion () const
bool isEventType () const
bool isModuleType () const
unsigned int * buffer () const
unsigned int bufferSize () const
bool isOwner () const
void setOwner (bool isOwner=true)
virtual bool isValid () const
unsigned int * getPointer (const unsigned int &line) const
unsigned int getValue (const unsigned int &line, const unsigned int &firstBit=0, const unsigned int &bitLength=32) const
char * getString (const unsigned int &line, const unsigned int &byteOffset=0) const

Static Public Member Functions

static DayaBay::RawDatamakeNewData (unsigned int *buffer=0, unsigned int majorVersion=0, unsigned int minorVersion=0, bool isOwner=false)

Protected Attributes

unsigned int m_majorVersion
unsigned int m_minorVersion

Detailed Description

Definition at line 38 of file RawData.h.


Constructor & Destructor Documentation

DayaBay::RawFragment::RawFragment ( unsigned int *  buffer = 0,
unsigned int  majorVersion = 0,
unsigned int  minorVersion = 0,
bool  isOwner = false 
)

Definition at line 662 of file RawData.cc.

00666   : RawData(buffer,majorVersion,minorVersion,isOwner)
00667 {
00668   // Default constructor
00669 }

DayaBay::RawFragment::~RawFragment (  ) 

Definition at line 671 of file RawData.cc.

00672 {
00673   // Destructor
00674 }


Member Function Documentation

unsigned int DayaBay::RawFragment::type (  )  const

Reimplemented from DayaBay::RawData.

Definition at line 681 of file RawData.cc.

unsigned int DayaBay::RawFragment::size (  )  const [virtual]

Reimplemented in DayaBay::HeadFragment, DayaBay::TailFragment, DayaBay::DataFragment, DayaBay::LocalTriggerData, and DayaBay::FeePeakData.

Definition at line 676 of file RawData.cc.

00677 {
00678   return DataFormat::RawFragment::size;
00679 }

std::ostream & DayaBay::RawFragment::dump ( std::ostream &  str  )  [virtual]

Reimplemented from DayaBay::RawData.

Reimplemented in DayaBay::HeadFragment, DayaBay::TailFragment, DayaBay::LtbHeadFragment, DayaBay::LtbTailFragment, DayaBay::FeeHeadFragment, DayaBay::FeeTailFragment, DayaBay::DataFragment, DayaBay::LocalTriggerData, and DayaBay::FeePeakData.

Definition at line 688 of file RawData.cc.

00688                                                    {
00689   // Print the module information
00690   str << "RawFragment {" 
00691       << "  type: " << this->type() << ", "
00692       << "  size: " << this->size() << std::endl << "  ";
00693   this->RawData::dump(str);
00694   return str << "}" << std::endl;
00695 }

unsigned int DayaBay::RawData::majorVersion (  )  const [inherited]

Definition at line 58 of file RawData.cc.

00059 {
00060   // Return the major version of this data
00061   return m_majorVersion;
00062 }

unsigned int DayaBay::RawData::minorVersion (  )  const [inherited]

Definition at line 64 of file RawData.cc.

00065 {
00066   // Return the minor version of this data
00067   return m_minorVersion;
00068 }

bool DayaBay::RawData::isEventType (  )  const [inherited]

Definition at line 46 of file RawData.cc.

00047 {
00048   // Is this event data?
00049   return (this->type()==DataFormat::Event::type);
00050 }

bool DayaBay::RawData::isModuleType (  )  const [inherited]

Definition at line 52 of file RawData.cc.

00053 {
00054   // Is this module data?
00055   return (this->type()==DataFormat::Module::type);
00056 }

DayaBay::RawData * DayaBay::RawData::makeNewData ( unsigned int *  buffer = 0,
unsigned int  majorVersion = 0,
unsigned int  minorVersion = 0,
bool  isOwner = false 
) [static, inherited]

Definition at line 101 of file RawData.cc.

00104                                                                        {
00105   // Make a new raw data object.  Automatically set the correct class
00106   // type using the type() defined in the raw data.
00107   // 
00108   // The caller is responsible for deleting the returned data object.
00109   
00110   DayaBay::RawData* newData = 0;
00111   // Convert to the proper record type
00112   DayaBay::RawData rawData(buffer,majorVersion,minorVersion);
00113   if( rawData.isEventType() ){
00114     newData = new DayaBay::RawEvent(buffer, majorVersion, minorVersion, 
00115                                     isOwner);
00116   }else if( rawData.isModuleType() ){
00117     newData = new DayaBay::RawModule(buffer, majorVersion, minorVersion, 
00118                                      isOwner);
00119   }else{
00120     newData = new DayaBay::RawData(buffer, majorVersion, minorVersion,
00121                                    isOwner);
00122   }
00123   return newData;
00124 }

unsigned int * DayaBay::RawBuffer::buffer (  )  const [inherited]

Definition at line 52 of file RawBuffer.cc.

00053 {
00054   // Return the pointer to the internal memory buffer
00055   return m_buffer;
00056 }

unsigned int DayaBay::RawBuffer::bufferSize (  )  const [inherited]

Definition at line 58 of file RawBuffer.cc.

00059 {
00060   // Return the allocated size of the internal memory buffer, if known
00061   return m_bufferSize;
00062 }

bool DayaBay::RawBuffer::isOwner (  )  const [inherited]

Definition at line 64 of file RawBuffer.cc.

00065 {
00066   // Does this RawBuffer own this memory buffer?
00067   return m_isOwner;
00068 }

void DayaBay::RawBuffer::setOwner ( bool  isOwner = true  )  [inherited]

Definition at line 70 of file RawBuffer.cc.

00070                                                     {
00071   m_isOwner = isOwner;
00072 }

bool DayaBay::RawBuffer::isValid (  )  const [virtual, inherited]

Definition at line 74 of file RawBuffer.cc.

00075 {
00076   // Does this RawBuffer contain data?
00077   return (m_buffer != 0);
00078 }

unsigned int * DayaBay::RawBuffer::getPointer ( const unsigned int &  line  )  const [inherited]

Definition at line 80 of file RawBuffer.cc.

00081 {
00082   // Return a pointer to a specific line in the data block
00083   if(m_bufferSize>0 && line>=m_bufferSize) return 0;
00084   return (m_buffer + line);
00085 }

unsigned int DayaBay::RawBuffer::getValue ( const unsigned int &  line,
const unsigned int &  firstBit = 0,
const unsigned int &  bitLength = 32 
) const [inherited]

Definition at line 87 of file RawBuffer.cc.

00090 {
00091   // Read a value from the memory buffer
00092   // line = line number in the memory block (line = integer length)
00093   // firstBit = first bit to read (max=31)
00094   // bitLength =  length of bits to read (max=32)
00095   if(bitLength>32 || firstBit>31) return 0;
00096   unsigned int* pointer = this->getPointer(line);
00097   if(!pointer) return 0;
00098   // Catch request for full line
00099   if(firstBit==0 && bitLength==32) return *pointer;
00100   // Prepare bit mask
00101   unsigned int oneBit = 0x1;
00102   unsigned int mask = 0;
00103   for(unsigned int shift=0; shift<bitLength; shift++) 
00104     mask += (oneBit << shift);
00105   // Shift value, mask, and return
00106   return (*pointer >> firstBit) & mask;
00107 }

char * DayaBay::RawBuffer::getString ( const unsigned int &  line,
const unsigned int &  byteOffset = 0 
) const [inherited]

Definition at line 109 of file RawBuffer.cc.

00111 {
00112   // Return a char pointer to a specific byte in the data block
00113   // line = line number in the memory block (line = integer length)
00114   // byteOffset = offset if string starts at an uneven byte position (max=3)
00115   if(byteOffset>3) return 0;
00116   unsigned int* pointer = this->getPointer(line);
00117   if(!pointer) return 0;
00118   return (char*)(pointer + byteOffset);
00119 }


Member Data Documentation

unsigned int DayaBay::RawData::m_majorVersion [protected, inherited]

Definition at line 32 of file RawData.h.

unsigned int DayaBay::RawData::m_minorVersion [protected, inherited]

Definition at line 33 of file RawData.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:27 2011 for RawData by doxygen 1.4.7