QObjectR.hh

00001 #ifndef _Q_OBJECT_R_HH
00002 #define _Q_OBJECT_R_HH
00003 
00004 #include <Rtypes.h>
00005 #include <TObject.h>
00006 #include <string>
00007 
00008 namespace Cuore {class QObject;}
00009 
00010 class QObjectR : public TObject {
00011 
00012     public:
00013 
00014         enum Type {
00015             Vector = 0,
00016             VectorC = 1,
00017             Time = 2,
00018             RunData = 3,
00019             Matrix = 4,
00020         };
00021 
00022         QObjectR(Type type, const std::string& fName);
00023 
00024         virtual ~QObjectR() {}
00025 
00026         static QObjectR* Get(const Cuore::QObject* obj);
00027         virtual void Assign(const Cuore::QObject* obj) = 0;
00028         virtual void FillQObject(Cuore::QObject*& obj) const = 0 ;
00029 
00030         Type GetType() const { return fType;}
00031         
00032         const std::string&  GetClassName() const {return fClassName;}
00033 
00034         virtual const char* GetName() const {return fName.c_str();}
00035         virtual void SetName(const std::string& name) {fName = name;}
00036         virtual std::string AsString() const;
00037     private:
00038         
00039         Type fType;
00040         std::string fClassName;
00041         std::string fName;
00042         ClassDef (QObjectR,0);
00043 
00044 };
00045 
00046 #endif

Generated on Tue Nov 16 10:49:59 2010 for CUORE Software by  doxygen 1.5.6