13 #ifndef ROOT_TProtoClass
14 #define ROOT_TProtoClass
35 class TProtoClass:
public TNamed {
37 struct TProtoRealData {
46 kIsTransient = BIT(1),
52 bool IsAClass()
const {
return fClassIndex >= 0; }
53 TProtoRealData() : fOffset(0), fDMIndex(-1), fLevel(0), fClassIndex(-1), fStatusFlag(0) {}
54 TProtoRealData(
const TRealData *rd);
55 virtual ~TProtoRealData();
56 TRealData *CreateRealData(TClass *currentClass, TClass *parent, TRealData * parentData,
int prevLevel)
const;
58 Bool_t TestFlag(UInt_t f)
const {
return (Bool_t) ((fStatusFlag & f) != 0); }
59 void SetFlag(UInt_t f, Bool_t on = kTRUE) {
61 fStatusFlag |= f & kBitMask;
63 fStatusFlag &= ~(f & kBitMask);
66 ClassDef(TProtoRealData, 3);
72 std::vector<TProtoRealData> fPRealData;
73 std::vector<TDataMember *> fData;
74 std::vector<TString> fDepClasses;
80 Long_t fClassProperty;
81 Long_t fOffsetStreamer;
83 TProtoClass(
const TProtoClass &) =
delete;
84 TProtoClass &operator=(
const TProtoClass &) =
delete;
86 const char * GetClassName(Int_t index)
const {
return (index >= 0) ? fDepClasses[index].Data() : 0; }
89 static Int_t DataMemberIndex(TClass * cl,
const char * name);
91 static TDataMember * FindDataMember(TClass * cl, Int_t index);
95 fBase(0), fEnums(0), fSizeof(0), fCheckSum(0), fCanSplit(0),
96 fStreamerType(0), fProperty(0), fClassProperty(0),
100 TProtoClass(TProtoClass *pc);
101 TProtoClass(TClass *cl);
102 virtual ~TProtoClass();
104 Bool_t FillTClass(TClass *pcl);
105 const TList *GetListOfEnums() {
108 void Delete(Option_t *opt =
"");
110 int GetSize() {
return fSizeof; }
111 TList * GetBaseList() {
return fBase; }
113 TList * GetEnumList() {
return fEnums; }
114 std::vector<TProtoRealData> & GetPRDList() {
return fPRealData; }
115 std::vector<TDataMember *> & GetData() {
return fData; }
116 std::vector<TString> & GetDepClasses() {
return fDepClasses; }
119 ClassDef(TProtoClass, 2);