Logo ROOT   6.07/09
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 #ifndef ROOT_TList
16 #include "TList.h"
17 #endif
18 #ifndef ROOT_TNamed
19 #include "TNamed.h"
20 #endif
21 
22 class TTree;
24 
25 namespace ROOT {
26 namespace Internal {
27 
28  class TBranchProxyDescriptor;
29 
31 
32  public:
33  enum ELocation { kOut=0, kClones, kSTL, kInsideClones, kInsideSTL }; // for IsClones
34  private:
37  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.
38  TString fContainerName; // Name of the container if any
39  Bool_t fIsLeafList; // true if the branch was constructed from a leaf list.
41 
45  TVirtualStreamerInfo *fInfo; // TVirtualStreamerInfo describing this class
46 
48 
49  void NameToSymbol();
50 
53 
54  public:
55 
56  TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
57  ELocation isclones, UInt_t splitlevel, const TString &containerName);
58  TBranchProxyClassDescriptor(const char *branchname);
59 
60  TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
61  const char *branchPrefix, ELocation isclones,
62  UInt_t splitlevel, const TString &containerName);
63 
64  const char* GetBranchName() const;
65  const char* GetSubBranchPrefix() const;
66 
67  const char* GetRawSymbol() const;
68 
69  TVirtualStreamerInfo *GetInfo() const { return fInfo; }
70 
71  UInt_t GetSplitLevel() const;
72 
73  virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor* other);
74 
75  void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase);
76  Bool_t IsLoaded() const;
77  static Bool_t IsLoaded(const char*);
78  Bool_t IsClones() const;
79  Bool_t IsSTL() const;
80  ELocation GetIsClones() const;
81  TString GetContainerName() const;
82 
83  void OutputDecl(FILE *hf, int offset, UInt_t /* maxVarname */);
84 
85  ClassDef(TBranchProxyClassDescriptor,0); // Class to cache the information we gathered about the branch and its content
86  };
87 
88 } // namespace Internal
89 } // namespace ROOT
90 
91 #endif
virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor *other)
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Definition: StringConv.hxx:21
Basic string class.
Definition: TString.h:137
bool Bool_t
Definition: RtypesCore.h:59
void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase)
#define ClassDef(name, id)
Definition: Rtypes.h:254
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
A doubly linked list.
Definition: TList.h:47
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:98
Abstract Interface class describing Streamer information for one class.