Logo ROOT   6.18/05
Reference Guide
TLeafObject.h
Go to the documentation of this file.
1// @(#)root/tree:$Id$
2// Author: Rene Brun 27/01/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TLeafObject
13#define ROOT_TLeafObject
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TLeafObject //
19// //
20// A TLeaf for a general object derived from TObject. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24
25#include "TLeaf.h"
26#include "TClassRef.h"
27
28class TClass;
29class TMethodCall;
30
31class TLeafObject : public TLeaf {
32
33protected:
34 TClassRef fClass; ///<! pointer to class
35 void **fObjAddress; ///<! Address of Pointer to object
36 Bool_t fVirtual; ///< Support for polymorphism, when set classname is written with object.
37
38public:
40 kWarn = BIT(14)
41 };
42
43 // In version of ROOT older then v6.12, kWarn was set to BIT(12)
44 // which overlaps with TBranch::kBranchObject. Since it stored
45 // in ROOT files as part of the TBranchObject and that we want
46 // to reset in TBranchObject::Streamer, we need to keep track
47 // of the old value.
49 kOldWarn = BIT(12)
50 };
51
53 TLeafObject(TBranch *parent, const char *name, const char *type);
54 virtual ~TLeafObject();
55
56 virtual Bool_t CanGenerateOffsetArray() { return false; }
57 virtual void FillBasket(TBuffer &b);
58 virtual Int_t *GenerateOffsetArrayBase(Int_t /*base*/, Int_t /*events*/) { return nullptr; }
59 TClass *GetClass() const {return fClass;}
60 TMethodCall *GetMethodCall(const char *name);
61 TObject *GetObject() const {return (TObject*)(*fObjAddress);}
62 const char *GetTypeName() const ;
63 virtual void *GetValuePointer() const {return fObjAddress;}
65 Bool_t IsVirtual() const {return fVirtual;}
66 virtual Bool_t Notify();
67 virtual void PrintValue(Int_t i=0) const;
68 virtual void ReadBasket(TBuffer &b);
69 virtual void SetAddress(void *add=0);
70 virtual void SetVirtual(Bool_t virt=kTRUE) {fVirtual=virt;}
71
72 ClassDef(TLeafObject,4); //A TLeaf for a general object derived from TObject.
73};
74
75#endif
#define b(i)
Definition: RSha256.hxx:100
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:326
#define BIT(n)
Definition: Rtypes.h:83
char name[80]
Definition: TGX11.cxx:109
int type
Definition: TGX11.cxx:120
A TTree is a list of TBranches.
Definition: TBranch.h:65
Buffer base class used for serializing objects.
Definition: TBuffer.h:42
TClassRef is used to implement a permanent reference to a TClass object.
Definition: TClassRef.h:29
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
A TLeaf for a general object derived from TObject.
Definition: TLeafObject.h:31
virtual ~TLeafObject()
Default destructor for a LeafObject.
Definition: TLeafObject.cxx:52
virtual Bool_t Notify()
This method must be overridden to handle object notifcation.
virtual void PrintValue(Int_t i=0) const
Prints leaf value.
TClass * GetClass() const
Definition: TLeafObject.h:59
virtual Int_t * GenerateOffsetArrayBase(Int_t, Int_t)
Definition: TLeafObject.h:58
virtual void * GetValuePointer() const
Definition: TLeafObject.h:63
const char * GetTypeName() const
Returns name of leaf type.
TLeafObject()
Default constructor for LeafObject.
Definition: TLeafObject.cxx:30
Bool_t IsOnTerminalBranch() const
Return true if this leaf is does not have any sub-branch/leaf.
TObject * GetObject() const
Definition: TLeafObject.h:61
virtual void ReadBasket(TBuffer &b)
Read leaf elements from Basket input buffer.
Bool_t fVirtual
Support for polymorphism, when set classname is written with object.
Definition: TLeafObject.h:36
virtual void FillBasket(TBuffer &b)
Pack leaf elements in Basket output buffer.
Definition: TLeafObject.cxx:59
Bool_t IsVirtual() const
Definition: TLeafObject.h:65
virtual void SetAddress(void *add=0)
Set leaf buffer data address.
void ** fObjAddress
! Address of Pointer to object
Definition: TLeafObject.h:35
TClassRef fClass
! pointer to class
Definition: TLeafObject.h:34
TMethodCall * GetMethodCall(const char *name)
Returns pointer to method corresponding to name.
Definition: TLeafObject.cxx:91
virtual void SetVirtual(Bool_t virt=kTRUE)
Definition: TLeafObject.h:70
virtual Bool_t CanGenerateOffsetArray()
Definition: TLeafObject.h:56
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:49
Method or function calling interface.
Definition: TMethodCall.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
EStatusBits
Definition: TObject.h:57