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