//------------------------------------------------------------------------------ // Main data classes -- // (C) Piero Giubilato 2008-2010, Berkeley Lab -- //------------------------------------------------------------------------------ //______________________________________________________________________________ // {Trace} // [File name] "data_Object.h" // [Author] "Piero Giubilato" // [Version] "1.0" // [Modified by] "Piero Giubilato" // [Last revision] "27 Jan 2009" // [Language] "C++" // [Compiler] "Visual C++ 8.x 9.x" // [Member of] "Cool SEAL" // [Project] "SEAL" // [Description] "Main data classes." // [Key documentation] // "Root user's guide" // "Visual C++ Reference Help" // {Trace} //______________________________________________________________________________ // Overloading check #ifndef data_Object_H #define data_Object_H // Root components #include #include #include #include //______________________________________________________________________________ class data_Object: public TObject { private: // Class identifiers static const UShort_t class_Ver = 1; // HRD class version // Data allocation static size_t data_Size; // Total allocated space for data objects // Data containers UInt_t obj_Id; // Reference ID UInt_t obj_Time; // Reference timestamp TString obj_Name; // Reference name TString obj_Info; // Reference info bool obj_isOk; // Flag Ok bool obj_isModified; // Flag Modified protected: virtual bool isOk(bool isOk); virtual bool isModified(bool isModified); public: // Supported data type hardcoded type struct kdr { static UShort_t kdr_US; static Short_t kdr_S; static UInt_t kdr_UI; static Int_t kdr_I; static Float_t kdr_F; static Double_t kdr_D; }; // Parameters enum kot { kot_Null, kot_Layer, kot_Frame, kot_Burst}; enum kdt { kdt_Null, kdt_UShort, kdt_Short, kdt_UInt, kdt_Int, kdt_Float, kdt_Double}; // Special members data_Object(); virtual ~data_Object(); // Overloaded by root //virtual void Streamer(TBuffer &b); virtual void Dump(UInt_t level = 0) const; // Identification methods virtual UInt_t obj_Type() const; virtual UInt_t data_Type() const; // Data access methods virtual UInt_t Id() const; virtual UInt_t Id(UInt_t ID); virtual UInt_t Time() const; virtual UInt_t Time(UInt_t Time); virtual const TString Name() const; virtual TString Name(const char* text); virtual const TString Info() const; virtual TString Info(const char* text); virtual bool isOk() const; virtual bool isModified() const; // Statics static size_t stc_data_Size(); static void stc_data_size_Add(size_t add); static void stc_data_size_Del(size_t del); // Make the class visible by RootCint ClassDef(data_Object, 1) }; // Overloading check #endif