Logo ROOT   6.12/07
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
virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor *other)
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
Basic string class.
Definition: TString.h:125
bool Bool_t
Definition: RtypesCore.h:59
void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase)
#define ClassDef(name, id)
Definition: Rtypes.h:320
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
A doubly linked list.
Definition: TList.h:44
unsigned int UInt_t
Definition: RtypesCore.h:42
TBranchProxyClassDescriptor & operator=(const TBranchProxyClassDescriptor &)
int type
Definition: TGX11.cxx:120
TBranchProxyClassDescriptor(const TBranchProxyClassDescriptor &b)
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
A TTree object has a header with a name and a title.
Definition: TTree.h:70
Abstract Interface class describing Streamer information for one class.