Logo ROOT  
Reference Guide
TBranchProxyClassDescriptor.h
Go to the documentation of this file.
1 // @(#)root/treeplayer:$Id$
2 // Author: Philippe Canal 06/06/2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. *
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_TBranchProxyClassDescriptor
13 #define ROOT_TBranchProxyClassDescriptor
14 
15 #include "TList.h"
16 #include "TNamed.h"
17 
18 class TTree;
20 
21 namespace ROOT {
22 namespace Internal {
23 
24  class TBranchProxyDescriptor;
25 
27 
28  public:
29  enum ELocation { kOut=0, kClones, kSTL, kInsideClones, kInsideSTL }; // for IsClones
30  private:
33  ELocation fIsClones; // 0 for the general case, 1 when this a split clases inside a TClonesArray, 2 when this is a split classes inside an STL container.
34  TString fContainerName; // Name of the container if any
35  Bool_t fIsLeafList; // true if the branch was constructed from a leaf list.
37 
41  TVirtualStreamerInfo *fInfo; // TVirtualStreamerInfo describing this class
42 
44 
45  void NameToSymbol();
46 
49 
50  public:
51 
52  TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
53  ELocation isclones, UInt_t splitlevel, const TString &containerName);
54  TBranchProxyClassDescriptor(const char *branchname);
55 
56  TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
57  const char *branchPrefix, ELocation isclones,
58  UInt_t splitlevel, const TString &containerName);
59 
60  const char* GetBranchName() const;
61  const char* GetSubBranchPrefix() const;
62 
63  const char* GetRawSymbol() const;
64 
65  TVirtualStreamerInfo *GetInfo() const { return fInfo; }
66 
67  UInt_t GetSplitLevel() const;
68 
69  virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor* other);
70 
71  void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase);
72  Bool_t IsLoaded() const;
73  static Bool_t IsLoaded(const char*);
74  Bool_t IsClones() const;
75  Bool_t IsSTL() const;
76  ELocation GetIsClones() const;
77  TString GetContainerName() const;
78 
79  void OutputDecl(FILE *hf, int offset, UInt_t /* maxVarname */);
80 
81  ClassDef(TBranchProxyClassDescriptor,0); // Class to cache the information we gathered about the branch and its content
82  };
83 
84 } // namespace Internal
85 } // namespace ROOT
86 
87 #endif
ROOT::Internal::TBranchProxyClassDescriptor::fListOfBaseProxies
TList fListOfBaseProxies
Definition: TBranchProxyClassDescriptor.h:32
ROOT::Internal::TBranchProxyClassDescriptor::fIsLeafList
Bool_t fIsLeafList
Definition: TBranchProxyClassDescriptor.h:35
ROOT::Internal::TBranchProxyClassDescriptor::GetIsClones
ELocation GetIsClones() const
Definition: TBranchProxyClassDescriptor.cxx:237
ROOT::Internal::TBranchProxyClassDescriptor::kSTL
@ kSTL
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::IsEquivalent
virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor *other)
Definition: TBranchProxyClassDescriptor.cxx:144
TNamed.h
ROOT::Internal::TBranchProxyClassDescriptor::fRawSymbol
TString fRawSymbol
Definition: TBranchProxyClassDescriptor.h:38
TTree
A TTree represents a columnar dataset.
Definition: TTree.h:79
ROOT::Internal::TBranchProxyClassDescriptor::IsClones
Bool_t IsClones() const
Definition: TBranchProxyClassDescriptor.cxx:225
TList.h
ROOT::Internal::TBranchProxyClassDescriptor::IsSTL
Bool_t IsSTL() const
Definition: TBranchProxyClassDescriptor.cxx:231
ROOT::Internal::TBranchProxyClassDescriptor::GetContainerName
TString GetContainerName() const
Definition: TBranchProxyClassDescriptor.cxx:243
TString
Basic string class.
Definition: TString.h:136
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
b
#define b(i)
Definition: RSha256.hxx:100
TVirtualStreamerInfo
Abstract Interface class describing Streamer information for one class.
Definition: TVirtualStreamerInfo.h:37
bool
ROOT::Internal::TBranchProxyClassDescriptor::AddDescriptor
void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase)
Definition: TBranchProxyClassDescriptor.cxx:191
ROOT::Internal::TBranchProxyClassDescriptor::fInfo
TVirtualStreamerInfo * fInfo
Definition: TBranchProxyClassDescriptor.h:41
ROOT::Internal::TBranchProxyClassDescriptor::kClones
@ kClones
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::GetSubBranchPrefix
const char * GetSubBranchPrefix() const
Definition: TBranchProxyClassDescriptor.cxx:126
ROOT::Internal::TBranchProxyClassDescriptor::fBranchName
TString fBranchName
Definition: TBranchProxyClassDescriptor.h:39
ROOT::Internal::TBranchProxyClassDescriptor::IsLoaded
Bool_t IsLoaded() const
Definition: TBranchProxyClassDescriptor.cxx:206
ROOT::Internal::TBranchProxyClassDescriptor::kOut
@ kOut
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::fListOfSubProxies
TList fListOfSubProxies
Definition: TBranchProxyClassDescriptor.h:31
ROOT::Internal::TBranchProxyClassDescriptor::kInsideClones
@ kInsideClones
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::NameToSymbol
void NameToSymbol()
Definition: TBranchProxyClassDescriptor.cxx:33
ROOT::Internal::TBranchProxyClassDescriptor::fContainerName
TString fContainerName
Definition: TBranchProxyClassDescriptor.h:34
ROOT::Internal::TBranchProxyClassDescriptor::GetSplitLevel
UInt_t GetSplitLevel() const
Definition: TBranchProxyClassDescriptor.cxx:139
TNamed
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
ROOT::Internal::TBranchProxyClassDescriptor::GetInfo
TVirtualStreamerInfo * GetInfo() const
Definition: TBranchProxyClassDescriptor.h:65
UInt_t
unsigned int UInt_t
Definition: RtypesCore.h:46
ROOT::Internal::TBranchProxyDescriptor
Definition: TBranchProxyDescriptor.h:21
ROOT::Internal::TBranchProxyClassDescriptor::operator=
TBranchProxyClassDescriptor & operator=(const TBranchProxyClassDescriptor &)
Definition: TBranchProxyClassDescriptor.h:48
ROOT::Internal::TBranchProxyClassDescriptor::fIsClones
ELocation fIsClones
Definition: TBranchProxyClassDescriptor.h:33
unsigned int
ROOT::Internal::ELocation
ELocation
Definition: TTreeReaderGenerator.h:38
ROOT::Internal::TBranchProxyClassDescriptor::ELocation
ELocation
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::kInsideSTL
@ kInsideSTL
Definition: TBranchProxyClassDescriptor.h:29
ROOT::Internal::TBranchProxyClassDescriptor::TBranchProxyClassDescriptor
TBranchProxyClassDescriptor(const TBranchProxyClassDescriptor &b)
Definition: TBranchProxyClassDescriptor.h:47
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
ROOT::Internal::TBranchProxyClassDescriptor::fSubBranchPrefix
TString fSubBranchPrefix
Definition: TBranchProxyClassDescriptor.h:40
ROOT::Internal::TBranchProxyClassDescriptor::fMaxDatamemberType
UInt_t fMaxDatamemberType
Definition: TBranchProxyClassDescriptor.h:43
ROOT::Internal::TBranchProxyClassDescriptor::GetBranchName
const char * GetBranchName() const
Definition: TBranchProxyClassDescriptor.cxx:120
ROOT::Internal::TBranchProxyClassDescriptor::GetRawSymbol
const char * GetRawSymbol() const
Definition: TBranchProxyClassDescriptor.cxx:132
ROOT::Internal::TBranchProxyClassDescriptor::OutputDecl
void OutputDecl(FILE *hf, int offset, UInt_t)
Definition: TBranchProxyClassDescriptor.cxx:249
type
int type
Definition: TGX11.cxx:121
ROOT::Internal::TBranchProxyClassDescriptor::fSplitLevel
UInt_t fSplitLevel
Definition: TBranchProxyClassDescriptor.h:36
ROOT
VSD Structures.
Definition: StringConv.hxx:21
TList
A doubly linked list.
Definition: TList.h:44
ROOT::Internal::TBranchProxyClassDescriptor
Definition: TBranchProxyClassDescriptor.h:26