00001 #ifndef ROOTSTREAMABLEADAPTER_H 00002 #define ROOTSTREAMABLEADAPTER_H 00003 00004 #include "Sct/Streamable.h" 00005 #include "TObject.h" 00006 00007 #include <string> 00008 00009 using Sct::Streamable; 00010 00011 namespace SctData { 00012 00013 class RootStreamableAdapter : public virtual Streamable { 00014 public: 00015 RootStreamableAdapter(TObject&) throw() ; 00016 virtual string getClassName() const throw() ; 00017 TObject* getObject() const throw() ; 00018 private: 00019 TObject* ptr; 00020 }; 00021 00022 inline RootStreamableAdapter::RootStreamableAdapter(TObject& t) throw() : ptr(&t) { 00023 } 00024 00025 inline string RootStreamableAdapter::getClassName() const throw() { 00026 return ptr->ClassName(); 00027 } 00028 00029 inline TObject* RootStreamableAdapter::getObject() const throw() { 00030 return ptr; 00031 } 00032 00033 } 00034 #endif //#ifndef ROOTSTREAMABLEADAPTER_H