TStreamerInfo


class description - source file - inheritance tree

class TStreamerInfo : public TNamed

    private:
void BuildUserInfo(const char* info) public:
TStreamerInfo() TStreamerInfo(TClass* cl, const char* info) TStreamerInfo(const TStreamerInfo&) virtual ~TStreamerInfo() void Build() void BuildCheck() void BuildFake(TFile* file) void BuildOld() static Bool_t CanDelete() static Bool_t CanOptimize() static TClass* Class() void Compile() void ComputeSize() void ForceWriteInfo(TFile* file, Bool_t force = kFALSE) Int_t GenerateHeaderFile(const char* dirname) UInt_t GetCheckSum() const TClass* GetClass() const Int_t GetClassVersion() const static TStreamerElement* GetCurrentElement() Int_t GetDataMemberOffset(TDataMember* dm, Streamer_t& streamer) const static TStreamerBasicType* GetElementCounter(const char* countName, TClass* cl, Int_t version) TObjArray* GetElements() const ULong_t* GetElems() const Int_t* GetLengths() const ULong_t* GetMethods() const Int_t GetNdata() const Int_t GetNumber() const Int_t GetOffset(const char*) const Int_t* GetOffsets() const Int_t GetSize() const Int_t GetSizeElements() const TStreamerElement* GetStreamerElement(const char* datamember, Int_t& offset) const Int_t* GetTypes() const Double_t GetValue(char* pointer, Int_t i, Int_t j, Int_t len) const Double_t GetValueClones(TClonesArray* clones, Int_t i, Int_t j, Int_t k, Int_t eoffset) const virtual TClass* IsA() const Bool_t IsOptimized() const virtual void ls(const Option_t* option) const Int_t New(const char* p) static void Optimize(Bool_t opt = kTRUE) void PrintValue(const char* name, char* pointer, Int_t i, Int_t len) const void PrintValueClones(const char* name, TClonesArray* clones, Int_t i, Int_t eoffset) const Int_t ReadBuffer(TBuffer& b, char* pointer, Int_t first) Int_t ReadBufferClones(TBuffer& b, TClonesArray* clones, Int_t nc, Int_t first, Int_t eoffset) Int_t ReadBufferClonesConv(TBuffer& b, TClonesArray* clones, Int_t nc, Int_t i, Int_t kase, Int_t eoffset, TStreamerElement* aElement) Int_t ReadBufferClonesSkip(TBuffer& b, TClonesArray* clones, Int_t nc, Int_t i, Int_t kase, TStreamerElement* aElement) Int_t ReadBufferConv(TBuffer& b, char* pointer, Int_t i, Int_t kase, TStreamerElement* aElement) Int_t ReadBufferSkip(TBuffer& b, char* pointer, Int_t i, Int_t kase, TStreamerElement* aElement) static void SetCanDelete(Bool_t opt = kTRUE) void SetClass(TClass* cl) void SetClassVersion(Int_t vers) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void TagFile(TFile* fFile) Int_t WriteBuffer(TBuffer& b, char* pointer, Int_t first) Int_t WriteBufferClones(TBuffer& b, TClonesArray* clones, Int_t nc, Int_t first, Int_t eoffset)

Data Members

    private:
UInt_t fCheckSum checksum of original class Int_t fClassVersion Class version identifier Int_t fNumber !Unique identifier Int_t fNdata !number of optmized types Int_t fSize !size of the persistent class Int_t* fType ![fNdata] Int_t* fNewType ![fNdata] Int_t* fOffset ![fNdata] Int_t* fLength ![fNdata] ULong_t* fElem ![fNdata] ULong_t* fMethod ![fNdata] Bool_t fOptimized ! true if has been optimized TClass* fClass !pointer to class TObjArray* fElements Array of TStreamerElements static Int_t fgCount Number of TStreamerInfo instances static Bool_t fgCanDelete True if ReadBuffer can delete object static Bool_t fgOptimize True if optimization on static TStreamerElement* fgElement Pointer to current TStreamerElement public:
static const enum TStreamerInfo:: kCannotOptimize static const TStreamerInfo::EReadWrite kBase static const TStreamerInfo::EReadWrite kOffsetL static const TStreamerInfo::EReadWrite kOffsetP static const TStreamerInfo::EReadWrite kCounter static const TStreamerInfo::EReadWrite kCharStar static const TStreamerInfo::EReadWrite kChar static const TStreamerInfo::EReadWrite kShort static const TStreamerInfo::EReadWrite kInt static const TStreamerInfo::EReadWrite kLong static const TStreamerInfo::EReadWrite kFloat static const TStreamerInfo::EReadWrite kDouble static const TStreamerInfo::EReadWrite kUChar static const TStreamerInfo::EReadWrite kUShort static const TStreamerInfo::EReadWrite kUInt static const TStreamerInfo::EReadWrite kULong static const TStreamerInfo::EReadWrite kBits static const TStreamerInfo::EReadWrite kLong64 static const TStreamerInfo::EReadWrite kULong64 static const TStreamerInfo::EReadWrite kObject static const TStreamerInfo::EReadWrite kAny static const TStreamerInfo::EReadWrite kObjectp static const TStreamerInfo::EReadWrite kObjectP static const TStreamerInfo::EReadWrite kTString static const TStreamerInfo::EReadWrite kTObject static const TStreamerInfo::EReadWrite kTNamed static const TStreamerInfo::EReadWrite kAnyp static const TStreamerInfo::EReadWrite kAnyP static const TStreamerInfo::EReadWrite kSkip static const TStreamerInfo::EReadWrite kSkipL static const TStreamerInfo::EReadWrite kSkipP static const TStreamerInfo::EReadWrite kConv static const TStreamerInfo::EReadWrite kConvL static const TStreamerInfo::EReadWrite kConvP static const TStreamerInfo::EReadWrite kStreamer static const TStreamerInfo::EReadWrite kStreamLoop static const TStreamerInfo::EReadWrite kMissing

Class Description

                                                                      
                                                                      


TStreamerInfo()
 Default ctor.

TStreamerInfo(TClass *cl, const char *info) : TNamed(cl->GetName(),info)
 Create a TStreamerInfo object.

~TStreamerInfo()
 TStreamerInfo dtor.

void Build()
 Build the I/O data structure for the current class version
 A list of TStreamerElement derived classes is built by scanning
 one by one the list of data members of the analyzed class.

void BuildCheck()
 check if the TStreamerInfo structure is already created
 called by TFile::ReadStreamerInfo

void BuildFake(TFile *file)
 Create a Fake TStreamerInfo object.

void BuildOld()
 rebuild the TStreamerInfo structure

void BuildUserInfo(const char * /*info*/)
 Build the I/O data structure for the current class version

Bool_t CanDelete()
 static function returning true if ReadBuffer can delete object

Bool_t CanOptimize()
 static function returning true if optimization can be on

void Compile()
 loop on the TStreamerElement list
 regroup members with same type
 Store predigested information into local arrays. This saves a huge amount
 of time compared to an explicit iteration on all elements.

void ComputeSize()
 Compute total size of all persistent elements of the class

void ForceWriteInfo(TFile *file, Bool_t force)
 will force this TStreamerInfo to the file and also
 all the dependencies.
 This function is called when streaming a class that contains
 a null pointer. In this case, the TStreamerInfo for the class
 with the null pointer must be written to the file and also all the
 TStreamerInfo of all the classes referenced by the class.

 if argument force > 0 the loop on class dependencies is forced

Int_t GenerateHeaderFile(const char *dirname)
 Generate header file for the class described by this TStreamerInfo
 the function is called by TFile::MakeProject for each class in the file

TStreamerElement* GetCurrentElement()
static function returning a pointer to the current TStreamerElement
fgElement points to the current TStreamerElement being read in ReadBuffer

Int_t GetDataMemberOffset(TDataMember *dm, Streamer_t &streamer) const
 Compute data member offset
 return pointer to the Streamer function if one exists

TStreamerBasicType* GetElementCounter(const char *countName, TClass *cl, Int_t version)
 Get pointer to a TStreamerBasicType in TClass *cl
static function

Int_t GetOffset(const char *elementName) const
 return the offset of the data member as indicated by this StreamerInfo

Int_t GetSize() const
  return total size of all persistent elements of the class (with offsets)

Int_t GetSizeElements() const
  return total size of all persistent elements of the class
  use GetSize if you want to get the real size in memory

TStreamerElement* GetStreamerElement(const char* datamember, Int_t &offset) const
  Return the StreamerElement of "datamember" inside this class of any of its
  base class.  The offset information contained in the StreamerElement is related
  to its immediate containing class, so we return in 'offset' the offset inside
  the class of this streamerInfo.

Double_t GetValue(char *pointer, Int_t i, Int_t j, Int_t len) const
  return value of element i in object at pointer.
  The function may be called in two ways:
    -method1  len < 0
           i is assumed to be the TStreamerElement number i in StreamerInfo
    -method2  len >= 0
           i is the type
           address of variable is directly pointer.

Double_t GetValueClones(TClonesArray *clones, Int_t i, Int_t j, int k, Int_t eoffset) const
  return value of element i in object number j in a TClonesArray and eventually
 element k in a sub-array.

void ls(Option_t *option) const
  List the TStreamerElement list and also the precomputed tables

Int_t New(const char *p)
  fake constructor for this class.
  A fake object is created at address p

void Optimize(Bool_t opt)
  This is a static function.
  Set optimization option.
  When this option is activated (default), consecutive data members
  of the same type are merged into an array (faster).
  Optimization must be off in TTree split mode.

void PrintValue(const char *name, char *pointer, Int_t i, Int_t len) const
  print value of element i in object at pointer
  The function may be called in two ways:
    -method1  len < 0
           i is assumed to be the TStreamerElement number i in StreamerInfo
    -method2  len >= 0
           i is the type
           address of variable is directly pointer.
           len is the number of elements to be printed starting at pointer.

void PrintValueClones(const char *name, TClonesArray *clones, Int_t i, Int_t eoffset) const
  print value of element i in a TClonesArray

Int_t ReadBuffer(TBuffer &b, char *pointer, Int_t first)
  Deserialize information from buffer b into object at pointer

Int_t ReadBufferSkip(TBuffer &b, char *pointer, Int_t i,Int_t kase, TStreamerElement *aElement)
  Skip elements of a class

Int_t ReadBufferConv(TBuffer &b, char *pointer, Int_t i, Int_t kase, TStreamerElement *aElement)
  Convert elements of a class

Int_t ReadBufferClones(TBuffer &b, TClonesArray *clones, Int_t nc, Int_t first, Int_t eoffset)
  The TClonesArray clones is deserialized from the buffer b

Int_t ReadBufferClonesSkip(TBuffer &b, TClonesArray * /*clones*/, Int_t nc, Int_t i, Int_t kase, TStreamerElement *aElement)
  Skip elements in a TClonesArray

Int_t ReadBufferClonesConv(TBuffer &b, TClonesArray *clones, Int_t nc, Int_t i, Int_t kase, Int_t eoffset, TStreamerElement *aElement)
  Convert elements of a TClonesArray

void SetCanDelete(Bool_t opt)
  This is a static function.
  Set object delete option.
  When this option is activated (default), ReadBuffer automatically
  delete objects when a data member is a pointer to an object.
  If your constructor is not presetting pointers to 0, you must
  call this static function TStreamerInfo::SetCanDelete(kFALSE);

void Streamer(TBuffer &R__b)
 Stream an object of class TStreamerInfo.

void TagFile(TFile *file)
 Mark the classindex of the current file as using this TStreamerInfo

Int_t WriteBuffer(TBuffer &b, char *pointer, Int_t first)
  The object at pointer is serialized to the buffer b

Int_t WriteBufferClones(TBuffer &b, TClonesArray *clones, Int_t nc, Int_t first, Int_t eoffset)
  The TClonesArray clones is serialized to the buffer b



Inline Functions


              TClass* GetClass() const
               UInt_t GetCheckSum() const
                Int_t GetClassVersion() const
           TObjArray* GetElements() const
             ULong_t* GetElems() const
                Int_t GetNdata() const
                Int_t GetNumber() const
               Int_t* GetLengths() const
             ULong_t* GetMethods() const
               Int_t* GetOffsets() const
               Int_t* GetTypes() const
               Bool_t IsOptimized() const
                 void SetClass(TClass* cl)
                 void SetClassVersion(Int_t vers)
              TClass* Class()
              TClass* IsA() const
                 void ShowMembers(TMemberInspector& insp, char* parent)
                 void StreamerNVirtual(TBuffer& b)
        TStreamerInfo TStreamerInfo(const TStreamerInfo&)


Author: Rene Brun 12/10/2000
Last update: root/meta:$Name: $:$Id: TStreamerInfo.cxx,v 1.170 2003/04/30 16:22:52 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.