#ifndef ROOT_TDictionary
#define ROOT_TDictionary
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#include "Property.h"
class TDictAttributeMap;
typedef void CallFunc_t;
typedef void ClassInfo_t;
typedef void BaseClassInfo_t;
typedef void DataMemberInfo_t;
typedef void MethodInfo_t;
typedef void MethodArgInfo_t;
typedef void MethodArgInfo_t;
typedef void TypeInfo_t;
typedef void TypedefInfo_t;
#ifndef ROOT_ESTLType
#include "ESTLType.h"
#endif
enum EProperty {
kIsClass = G__BIT_ISCLASS,
kIsStruct = G__BIT_ISSTRUCT,
kIsUnion = G__BIT_ISUNION,
kIsEnum = G__BIT_ISENUM,
kIsNamespace = G__BIT_ISNAMESPACE,
kIsTypedef = G__BIT_ISTYPEDEF,
kIsFundamental = G__BIT_ISFUNDAMENTAL,
kIsAbstract = G__BIT_ISABSTRACT,
kIsVirtual = G__BIT_ISVIRTUAL,
kIsPureVirtual = G__BIT_ISPUREVIRTUAL,
kIsPublic = G__BIT_ISPUBLIC,
kIsProtected = G__BIT_ISPROTECTED,
kIsPrivate = G__BIT_ISPRIVATE,
kIsPointer = G__BIT_ISPOINTER,
kIsArray = G__BIT_ISARRAY,
kIsStatic = G__BIT_ISSTATIC,
kIsUsingVariable= G__BIT_ISUSINGVARIABLE,
kIsDefault = G__BIT_ISDEFAULT,
kIsReference = G__BIT_ISREFERENCE,
kIsConstant = G__BIT_ISCONSTANT,
kIsConstPointer = G__BIT_ISPCONSTANT,
kIsMethConst = G__BIT_ISMETHCONSTANT
};
class TDictionary : public TNamed {
private:
TDictAttributeMap *fAttributeMap;
public:
TDictionary(): fAttributeMap(0) { }
TDictionary(const char* name): TNamed(name, ""), fAttributeMap(0) { }
TDictionary(const TDictionary& dict);
virtual ~TDictionary();
TDictionary& operator=(const TDictionary& other);
void CreateAttributeMap();
TDictAttributeMap *GetAttributeMap() const
{
return fAttributeMap;
}
virtual Long_t Property() const = 0;
static TDictionary* GetDictionary(const char* name);
static TDictionary* GetDictionary(const type_info &typeinfo);
enum ESTLType {
kNone = ROOT::kNotSTL,
kVector = ROOT::kSTLvector,
kList = ROOT::kSTLlist,
kDeque = ROOT::kSTLdeque,
kMap = ROOT::kSTLmap,
kMultimap = ROOT::kSTLmultimap,
kSet = ROOT::kSTLset,
kMultiset = ROOT::kSTLmultiset,
kBitset = ROOT::kSTLbitset
};
ClassDef(TDictionary,0)
};
#endif