00001 #ifndef RTMREADOUTFORMAT_RTMTRAITS_V1_3_H 00002 #define RTMREADOUTFORMAT_RTMTRAITS_V1_3_H 00003 00004 #include "RtmReadoutFormat/RtmTraits.h" 00005 00006 namespace DybDaq { 00007 00008 class RtmTraits_v1_3 : public RtmTraits 00009 { 00010 00011 public : 00012 00013 // Returns a key for this verion, unique with RtmTraits. 00014 static const char* key(); 00015 00016 // The default constructor and destructor 00017 RtmTraits_v1_3(); 00018 virtual ~RtmTraits_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 RtmData 00028 virtual unsigned int rtmSize() const; 00029 00030 // Initialize the RtmData buffer 00031 virtual void initializeRtm(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 00058 private : 00059 00060 // The format description parameters 00061 static const unsigned int m_indices[]; 00062 static const unsigned int m_shifts[]; 00063 static const unsigned int m_masks[]; 00064 00065 // Suppressed by default 00066 RtmTraits_v1_3(const RtmTraits&); 00067 RtmTraits_v1_3& operator=(const RtmTraits&); 00068 }; 00069 00070 } 00071 00072 #endif