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
18class TTree;
20
21namespace ROOT {
22namespace Internal {
23
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
70
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;
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
#define b(i)
Definition: RSha256.hxx:100
unsigned int UInt_t
Definition: RtypesCore.h:46
bool Bool_t
Definition: RtypesCore.h:63
#define ClassDef(name, id)
Definition: Rtypes.h:325
int type
Definition: TGX11.cxx:121
Bool_t IsLoaded() const
Return true if the class needed by the branch is loaded.
const char * GetBranchName() const
Get the branch name.
const char * GetRawSymbol() const
Get the real symbol name.
const char * GetSubBranchPrefix() const
Get the prefix from the branch name.
ELocation GetIsClones() const
Return whether the branch is inside, nested in or outside of a TClonesArray.
TBranchProxyClassDescriptor(const TBranchProxyClassDescriptor &b)
Bool_t IsClones() const
Return true if this proxy is for a TClonesArray.
void AddDescriptor(TBranchProxyDescriptor *desc, Bool_t isBase)
Add a descriptor to this proxy.
void OutputDecl(FILE *hf, int offset, UInt_t)
Output the declaration and implementation of this emulation class.
void NameToSymbol()
Make the typename a proper class name without having the really deal with namespace and templates.
virtual Bool_t IsEquivalent(const TBranchProxyClassDescriptor *other)
Return true if this description is the 'same' as the other decription.
UInt_t GetSplitLevel() const
Return the split level of the branch.
TString GetContainerName() const
Return the name of the container holding this class, if any.
TBranchProxyClassDescriptor & operator=(const TBranchProxyClassDescriptor &)
Bool_t IsSTL() const
Return true if this proxy is for a TClonesArray.
/Hold the processed information about a TBranch while /TTreeProxyGenerator is parsing the TTree infor...
A doubly linked list.
Definition: TList.h:44
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
Basic string class.
Definition: TString.h:136
A TTree represents a columnar dataset.
Definition: TTree.h:79
Abstract Interface class describing Streamer information for one class.
ELocation
0 for the general case, 1 when this a split clases inside a TClonesArray, 2 when this is a split clas...
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.