00001 // @(#)root/meta:$Id: TRealData.cxx 20882 2007-11-19 11:31:26Z rdm $ 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 #include "TRealData.h" 00013 #include "TDataMember.h" 00014 #include "TClass.h" 00015 #include "TStreamer.h" 00016 00017 ClassImp(TRealData) 00018 00019 //______________________________________________________________________________ 00020 // 00021 // The TRealData class manages the effective list of all data members 00022 // for a given class. For example for an object of class TLine that inherits 00023 // from TObject and TAttLine, the TRealData object for a line contains the 00024 // complete list of all data members of the 3 classes. 00025 // 00026 // The list of TRealData members in TClass is built when functions like 00027 // object.Inspect or object.DrawClass are called. 00028 00029 //______________________________________________________________________________ 00030 TRealData::TRealData() : TObject(), fDataMember(0), fThisOffset(-1), 00031 fStreamer(0), fIsObject(kFALSE) 00032 { 00033 //*-*-*-*-*-*-*-*-*-*-*RealData default constructor*-*-*-*-*-*-*-*-*-*-*-*-* 00034 //*-* ============================ 00035 00036 } 00037 00038 00039 //______________________________________________________________________________ 00040 TRealData::TRealData(const char *name, Long_t offset, TDataMember *datamember) 00041 : TObject(), fDataMember(datamember), fThisOffset(offset), fName(name), 00042 fStreamer(0), fIsObject(kFALSE) 00043 { 00044 //*-*-*-*-*-*-*-*-*-*Constructor to define one persistent data member*-*-*-*-* 00045 //*-* ================================================ 00046 //*-* datamember is the pointer to the data member descriptor. 00047 //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 00048 00049 } 00050 00051 //______________________________________________________________________________ 00052 TRealData::~TRealData() 00053 { 00054 //*-*-*-*-*-*-*-*-*-*-*RealData default destructor*-*-*-*-*-*-*-*-*-*-*-*-* 00055 //*-* ============================= 00056 00057 delete fStreamer; 00058 } 00059 00060 //______________________________________________________________________________ 00061 void TRealData::WriteRealData(void *, char *&) 00062 { 00063 //*-*-*-*-*Write one persistent data member on output buffer*-*-*-*-*-*-*-* 00064 //*-* ================================================= 00065 //*-* pointer points to the current persistent data member 00066 //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 00067 //*-* 00068 } 00069 00070 //______________________________________________________________________________ 00071 void TRealData::AdoptStreamer(TMemberStreamer *str) 00072 { 00073 //fDataMember->SetStreamer(str); 00074 //delete fStreamer; 00075 fStreamer = str; 00076 } 00077 00078 //______________________________________________________________________________ 00079 TMemberStreamer *TRealData::GetStreamer() const 00080 { 00081 // Return the associate streamer object. 00082 return fStreamer; // return fDataMember->GetStreamer(); 00083 } 00084