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