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

In This Package:

DaqTraits.h

Go to the documentation of this file.
00001 #ifndef DAQREADOUTFORMAT_DAQTRAITS_H
00002 #define DAQREADOUTFORMAT_DAQTRAITS_H
00003 
00004 /*
00005  *  DaqTraits.h
00006  *  DaqReadoutFormat
00007  *
00008  *  Created by Simon Patton on 7/19/10.
00009  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00010  *
00011  */
00012 #include <string>
00013 #include <vector>
00014 
00015 namespace DybDaq {
00016     class BitsDefinition;
00017 }
00018 namespace DybDaq {
00019     
00020     class DaqTraits {
00021         
00022     public:
00023         
00024         friend class DaqBuffer;
00025         
00026         typedef std::vector<BitsDefinition> Definitions;
00027         
00031         virtual ~DaqTraits();
00032         
00033         /*
00034          * Returns the major version of the event format as an unsigned int.
00035          */
00036         virtual unsigned int majorVersion() const = 0;
00037         
00038         /*
00039          * Returns the major version of the event format as an unsigned int.
00040          */
00041         virtual unsigned int minorVersion() const = 0;
00042         
00046         virtual const std::string versionString() const = 0;
00047         
00051         virtual unsigned int marker(unsigned int marker) const;
00052         
00056         virtual unsigned int illegalMarker() const = 0;
00057         
00061         virtual unsigned int illegalField() const = 0;
00062         
00066         virtual const char* boolAsString(bool value) const;
00067         
00071         const DaqTraits::Definitions& bitsDefinitions(unsigned int component) const;
00072         
00073     protected:
00074         
00078         DaqTraits();
00079         
00083         static unsigned int readUnsignedInt(const char*& buffer,
00084                                             const DaqTraits& traits,
00085                                             unsigned int field);
00086         
00090         unsigned int index(unsigned int field) const;
00091         
00095         virtual unsigned int markersEnd() const = 0;
00096         
00100         virtual const unsigned int* markers() const = 0;
00101         
00105         virtual unsigned int fieldsEnd() const = 0;
00106         
00110         virtual const unsigned int* indices() const = 0;
00111         
00115         virtual const unsigned int* shifts() const = 0;
00116         
00120         virtual const unsigned int* masks() const = 0;
00121         
00125         virtual const std::string* descriptions() const;
00126         
00130         virtual DaqTraits::Definitions* definitions(unsigned int component) const;
00131         
00135         virtual void setDefinitions(DaqTraits::Definitions* definitions,
00136                                     unsigned int component);        
00140         virtual const unsigned int* componentFields(unsigned int component) const;
00141         
00145         virtual const unsigned int componentFieldsEnd(unsigned int component) const;    
00146         
00147     private:
00148         
00152         DaqTraits(DaqTraits& rhs);
00153         
00157         DaqTraits& operator=(DaqTraits& rhs);
00158         
00162         unsigned int shift(unsigned int field) const;
00163         
00167         unsigned int mask(unsigned int field) const;
00168         
00169     };
00170     
00171 }
00172 
00173 #endif // DAQREADOUTFORMAT_DAQTRAITS_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:07:43 2011 for DaqReadoutFormat by doxygen 1.4.7