00001 00002 // ************************************************************************** 00003 // * * 00004 // * ! ! ! A T T E N T I O N ! ! ! * 00005 // * * 00006 // * This file was created automatically by GaudiObjDesc, please do not * 00007 // * delete it or edit it by hand. * 00008 // * * 00009 // * If you want to change this file, first change the corresponding * 00010 // * xml-file and rerun the tools from GaudiObjDesc (or run make if you * 00011 // * are using it from inside a Gaudi-package). * 00012 // * * 00013 // ************************************************************************** 00014 00015 #ifndef RunData_RunHeader_H 00016 #define RunData_RunHeader_H 1 00017 00018 // Include files 00019 #include "Event/HeaderObject.h" 00020 #include "GaudiKernel/boost_allocator.h" 00021 #include <vector> 00022 #include <ostream> 00023 00024 // Forward declarations 00025 00026 namespace DayaBay 00027 { 00028 00029 // Forward declarations 00030 class RunData; 00031 00032 00033 // Class ID definition 00034 static const CLID CLID_RunHeader = 51900; 00035 00036 // Namespace for locations in TDS 00037 namespace RunHeaderLocation { 00038 static const std::string& Default = "/RunHeader"; 00039 } 00040 00041 00051 class RunHeader: public HeaderObject 00052 { 00053 public: 00054 00056 static const std::string& defaultLocation() { return RunHeaderLocation::Default; } 00057 virtual const std::string& defLoc() const { return RunHeaderLocation::Default; } 00058 00060 typedef std::vector<DayaBay::RunData*> RunDataContainer; 00061 00063 RunHeader() : m_runDataList() {} 00064 00066 ~RunHeader(); 00067 00068 // Retrieve pointer to class definition structure 00069 virtual const CLID& clID() const; 00070 static const CLID& classID(); 00071 00073 std::ostream& fillStream(std::ostream& s) const; 00074 00077 const RunDataContainer& runDataList() const; 00078 00081 RunDataContainer& runDataList(); 00082 00085 void setRunDataList(const RunDataContainer& value); 00086 00087 00088 #ifndef GOD_NOALLOC 00090 static void* operator new ( size_t size ) 00091 { 00092 return ( sizeof(RunHeader) == size ? 00093 boost::singleton_pool<RunHeader, sizeof(RunHeader)>::malloc() : 00094 ::operator new(size) ); 00095 } 00096 00100 static void* operator new ( size_t size, void* pObj ) 00101 { 00102 return ::operator new (size,pObj); 00103 } 00104 00106 static void operator delete ( void* p ) 00107 { 00108 boost::singleton_pool<RunHeader, sizeof(RunHeader)>::is_from(p) ? 00109 boost::singleton_pool<RunHeader, sizeof(RunHeader)>::free(p) : 00110 ::operator delete(p); 00111 } 00112 00115 static void operator delete ( void* p, void* pObj ) 00116 { 00117 ::operator delete (p, pObj); 00118 } 00119 #endif 00120 protected: 00121 00122 private: 00123 00124 RunDataContainer m_runDataList; 00125 00126 }; // class RunHeader 00127 00128 inline std::ostream& operator<< (std::ostream& str, const RunHeader& obj) 00129 { 00130 return obj.fillStream(str); 00131 } 00132 00133 } // namespace DayaBay; 00134 00135 // ----------------------------------------------------------------------------- 00136 // end of class 00137 // ----------------------------------------------------------------------------- 00138 00139 // Including forward declarations 00140 #include "Event/RunData.h" 00141 00142 00143 inline DayaBay::RunHeader::~RunHeader() 00144 { 00145 00146 RunDataContainer::iterator it, done = m_runDataList.end(); 00147 for (it = m_runDataList.begin(); it != done; ++it) { 00148 delete *it; 00149 } 00150 m_runDataList.clear(); 00151 00152 } 00153 00154 inline const CLID& DayaBay::RunHeader::clID() const 00155 { 00156 return DayaBay::RunHeader::classID(); 00157 } 00158 00159 inline const CLID& DayaBay::RunHeader::classID() 00160 { 00161 return CLID_RunHeader; 00162 } 00163 00164 inline const DayaBay::RunHeader::RunDataContainer& DayaBay::RunHeader::runDataList() const 00165 { 00166 return m_runDataList; 00167 } 00168 00169 inline DayaBay::RunHeader::RunDataContainer& DayaBay::RunHeader::runDataList() 00170 { 00171 return m_runDataList; 00172 } 00173 00174 inline void DayaBay::RunHeader::setRunDataList(const RunDataContainer& value) 00175 { 00176 m_runDataList = value; 00177 } 00178 00179 00180 #endif