33 class TEnum :
public TDictionary {
36 THashList fConstantList;
39 std::string fQualName;
42 kBitIsScopedEnum = BIT(14)
47 enum ESearchAction {kNone = 0,
50 kALoadAndInterpLookup = 3
53 TEnum(): fInfo(nullptr), fClass(nullptr) {}
54 TEnum(
const char *name, DeclId_t declid, TClass *cls);
57 void AddConstant(TEnumConstant *constant);
58 TClass *GetClass()
const {
return fClass; }
59 const TSeqCollection *GetConstants()
const {
return &fConstantList; }
60 const TEnumConstant *GetConstant(
const char *name)
const {
return (TEnumConstant *)fConstantList.FindObject(name); }
61 DeclId_t GetDeclId()
const;
62 EDataType GetUnderlyingType()
const;
64 Long_t Property()
const;
65 void SetClass(TClass *cl) { fClass = cl; }
66 void Update(DeclId_t
id);
67 const char* GetQualifiedName()
const {
return fQualName.c_str(); }
68 static TEnum *GetEnum(
const std::type_info &ti, ESearchAction sa = kALoadAndInterpLookup);
69 static TEnum *GetEnum(
const char *enumName, ESearchAction sa = kALoadAndInterpLookup);