00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TESDemoData_TESDemoReadout_H
00016 #define TESDemoData_TESDemoReadout_H 1
00017
00018
00019 #include "Event/TemporalDataObject.h"
00020 #include "Context/TimeStamp.h"
00021 #include "GaudiKernel/boost_allocator.h"
00022 #include <ostream>
00023
00024
00025
00026 namespace DayaBay
00027 {
00028
00029
00030
00040 class TESDemoReadout: public TemporalDataObject
00041 {
00042 public:
00043
00045 TESDemoReadout(const TimeStamp& timeStamp,
00046 const int identifier);
00047
00049 TESDemoReadout() : m_timeStamp(),
00050 m_identifier(0) {}
00051
00053 virtual ~TESDemoReadout();
00054
00056 virtual std::ostream& fillStream(std::ostream& s) const;
00057
00060 const TimeStamp& timeStamp() const;
00061
00064 void setTimeStamp(const TimeStamp& value);
00065
00068 int identifier() const;
00069
00072 void setIdentifier(int value);
00073
00074
00075 #ifndef GOD_NOALLOC
00077 static void* operator new ( size_t size )
00078 {
00079 return ( sizeof(TESDemoReadout) == size ?
00080 boost::singleton_pool<TESDemoReadout, sizeof(TESDemoReadout)>::malloc() :
00081 ::operator new(size) );
00082 }
00083
00087 static void* operator new ( size_t size, void* pObj )
00088 {
00089 return ::operator new (size,pObj);
00090 }
00091
00093 static void operator delete ( void* p )
00094 {
00095 boost::singleton_pool<TESDemoReadout, sizeof(TESDemoReadout)>::is_from(p) ?
00096 boost::singleton_pool<TESDemoReadout, sizeof(TESDemoReadout)>::free(p) :
00097 ::operator delete(p);
00098 }
00099
00102 static void operator delete ( void* p, void* pObj )
00103 {
00104 ::operator delete (p, pObj);
00105 }
00106 #endif
00107 protected:
00108
00109 private:
00110
00111 TimeStamp m_timeStamp;
00112 int m_identifier;
00113
00114 };
00115
00116 inline std::ostream& operator<< (std::ostream& str, const TESDemoReadout& obj)
00117 {
00118 return obj.fillStream(str);
00119 }
00120
00121 }
00122
00123
00124
00125
00126
00127
00128
00129 inline DayaBay::TESDemoReadout::TESDemoReadout(const TimeStamp& timeStamp,
00130 const int identifier)
00131 {
00132
00133 setTimeStamp(timeStamp);
00134 setIdentifier(identifier);
00135 setEarliest(timeStamp);
00136 setLatest(timeStamp);
00137
00138 }
00139
00140 inline std::ostream& DayaBay::TESDemoReadout::fillStream(std::ostream& s) const
00141 {
00142 TemporalDataObject::fillStream(s);
00143 s << "{ " << "timeStamp : " << m_timeStamp << std::endl
00144 << "identifier : " << m_identifier << std::endl << " }";
00145 return s;
00146 }
00147
00148
00149 inline const TimeStamp& DayaBay::TESDemoReadout::timeStamp() const
00150 {
00151 return m_timeStamp;
00152 }
00153
00154 inline void DayaBay::TESDemoReadout::setTimeStamp(const TimeStamp& value)
00155 {
00156 m_timeStamp = value;
00157 }
00158
00159 inline int DayaBay::TESDemoReadout::identifier() const
00160 {
00161 return m_identifier;
00162 }
00163
00164 inline void DayaBay::TESDemoReadout::setIdentifier(int value)
00165 {
00166 m_identifier = value;
00167 }
00168
00169
00170 #endif