Warning, file /include/root/TBranchProxyClassDescriptor.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TBranchProxyClassDescriptor
0013 #define ROOT_TBranchProxyClassDescriptor
0014
0015 #include "TList.h"
0016 #include "TNamed.h"
0017
0018 class TTree;
0019 class TVirtualStreamerInfo;
0020
0021 namespace ROOT {
0022 namespace Internal {
0023
0024 class TBranchProxyDescriptor;
0025
0026 class TBranchProxyClassDescriptor : public TNamed {
0027
0028 public:
0029 enum ELocation { kOut=0, kClones, kSTL, kInsideClones, kInsideSTL };
0030 private:
0031 TList fListOfSubProxies;
0032 TList fListOfBaseProxies;
0033 ELocation fIsClones;
0034 TString fContainerName;
0035 bool fIsLeafList;
0036 UInt_t fSplitLevel;
0037
0038 TString fRawSymbol;
0039 TString fBranchName;
0040 TString fSubBranchPrefix;
0041 TVirtualStreamerInfo *fInfo;
0042
0043 UInt_t fMaxDatamemberType;
0044
0045 void NameToSymbol();
0046
0047 TBranchProxyClassDescriptor(const TBranchProxyClassDescriptor &b) :TNamed(b){}
0048 TBranchProxyClassDescriptor& operator=(const TBranchProxyClassDescriptor&) {return *this;}
0049
0050 public:
0051
0052 TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
0053 ELocation isclones, UInt_t splitlevel, const TString &containerName);
0054 TBranchProxyClassDescriptor(const char *branchname);
0055
0056 TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname,
0057 const char *branchPrefix, ELocation isclones,
0058 UInt_t splitlevel, const TString &containerName);
0059
0060 const char* GetBranchName() const;
0061 const char* GetSubBranchPrefix() const;
0062
0063 const char* GetRawSymbol() const;
0064
0065 TVirtualStreamerInfo *GetInfo() const { return fInfo; }
0066
0067 UInt_t GetSplitLevel() const;
0068
0069 virtual bool IsEquivalent(const TBranchProxyClassDescriptor* other);
0070
0071 void AddDescriptor(TBranchProxyDescriptor *desc, bool isBase);
0072 bool IsLoaded() const;
0073 static bool IsLoaded(const char*);
0074 bool IsClones() const;
0075 bool IsSTL() const;
0076 ELocation GetIsClones() const;
0077 TString GetContainerName() const;
0078
0079 void OutputDecl(FILE *hf, int offset, UInt_t );
0080
0081 ClassDefOverride(TBranchProxyClassDescriptor,0);
0082 };
0083
0084 }
0085 }
0086
0087 #endif