00001 #ifndef FECREADOUTFORMAT_FECTRAITS_V1_3_H 00002 #define FECREADOUTFORMAT_FECTRAITS_V1_3_H 00003 00004 #include "FecReadoutFormat/FecTraits.h" 00005 00006 namespace DybDaq { 00007 00008 class FecTraits_v1_3 : public FecTraits 00009 { 00010 00011 public : 00012 00013 // Returns a key for this verion, unique with FecTraits. 00014 static const char* key(); 00015 00016 // The default constructor and destructor 00017 FecTraits_v1_3(); 00018 virtual ~FecTraits_v1_3(); 00019 00020 // To get the version number 00021 virtual unsigned int majorVersion() const; 00022 virtual unsigned int minorVersion() const; 00023 00024 // To get the version as a string 00025 virtual const std::string versionString() const; 00026 00027 // Returns the size of FecData 00028 virtual unsigned int fecSize() const; 00029 00030 // Initialize the FecData buffer 00031 virtual void initializeFec(char* buffer) const; 00032 00033 00034 protected : 00035 00036 // For markers 00037 virtual unsigned int markersEnd() const; 00038 virtual const unsigned int* markers() const; 00039 00040 // Get the maximum field number for a particluar format 00041 virtual unsigned int fieldsEnd() const; 00042 00043 // Get the format description parameters 00044 virtual const unsigned int* indices() const; 00045 virtual const unsigned int* shifts() const; 00046 virtual const unsigned int* masks() const; 00047 00048 // Get inspection parameters 00049 virtual const std::string* descriptions() const; 00050 virtual DaqTraits::Definitions* definitions(unsigned int component) const; 00051 virtual void setDefinitions(DaqTraits::Definitions* definitions, 00052 unsigned int component); 00053 virtual const unsigned int* componentFields(unsigned int component) const; 00054 virtual const unsigned int componentFieldsEnd(unsigned int component) const; 00055 00056 00057 private : 00058 00059 // The format description parameters 00060 static const unsigned int m_indices[]; 00061 static const unsigned int m_shifts[]; 00062 static const unsigned int m_masks[]; 00063 00064 // Suppressed by default 00065 FecTraits_v1_3(const FecTraits&); 00066 FecTraits_v1_3& operator=(const FecTraits&); 00067 }; 00068 00069 } 00070 00071 #endif