00001 // @(#)root/meta:$Id: TRealData.h 25450 2008-09-18 21:13:42Z pcanal $ 00002 // Author: Rene Brun 05/03/95 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TRealData 00013 #define ROOT_TRealData 00014 00015 00016 ////////////////////////////////////////////////////////////////////////// 00017 // // 00018 // TRealData // 00019 // // 00020 // Description of persistent data members. // 00021 // // 00022 ////////////////////////////////////////////////////////////////////////// 00023 00024 #ifndef ROOT_TObject 00025 #include "TObject.h" 00026 #endif 00027 #ifndef ROOT_TString 00028 #include "TString.h" 00029 #endif 00030 00031 class TDataMember; 00032 00033 00034 class TRealData : public TObject { 00035 00036 private: 00037 TDataMember *fDataMember; //pointer to data member descriptor 00038 Long_t fThisOffset; //offset with the THIS object pointer 00039 TString fName; //Concatenated names of this realdata 00040 TMemberStreamer *fStreamer; //Object to stream the data member. 00041 Bool_t fIsObject; //true if member is an object 00042 00043 TRealData(const TRealData& rhs); // Copying TRealData in not allowed. 00044 TRealData& operator=(const TRealData& rhs); // Copying TRealData in not allowed. 00045 00046 public: 00047 enum { 00048 kTransient = BIT(14) // The member is transient. 00049 }; 00050 00051 TRealData(); 00052 TRealData(const char *name, Long_t offset, TDataMember *datamember); 00053 virtual ~TRealData(); 00054 00055 void AdoptStreamer(TMemberStreamer *p); 00056 virtual const char *GetName() const {return fName.Data();} 00057 TDataMember *GetDataMember() const {return fDataMember;} 00058 TMemberStreamer *GetStreamer() const; 00059 Long_t GetThisOffset() const {return fThisOffset;} 00060 Bool_t IsObject() const {return fIsObject;} 00061 void SetIsObject(Bool_t isObject) {fIsObject=isObject;} 00062 void WriteRealData(void *pointer, char *&buffer); 00063 00064 ClassDef(TRealData,0) //Description of persistent data members 00065 }; 00066 00067 #endif 00068