ROOT logo
// @(#)root/meta:$Id: TDictionary.h 27287 2009-01-29 04:52:36Z pcanal $
// Author: Fons Rademakers   20/06/96

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/


#ifndef ROOT_TDictionary
#define ROOT_TDictionary

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TDictionary                                                          //
//                                                                      //
// This class defines an abstract interface that must be implemented    //
// by all classes that contain dictionary information.                  //
//                                                                      //
// The dictionary is defined by the followling classes:                 //
// TDataType                              (typedef definitions)         //
// TGlobal                                (global variables)            //
// TFunction                              (global functions)            //
// TClass                                 (classes)                     //
//    TBaseClass                          (base classes)                //
//    TDataMember                         (class datamembers)           //
//    TMethod                             (class methods)               //
//       TMethodArg                       (method arguments)            //
//                                                                      //
// All the above classes implement the TDictionary abstract interface   //
// (note: the indentation shows aggregation not inheritance).           //
// The ROOT dictionary system provides a very extensive RTTI            //
// environment that facilitates a.o. object inspectors, object I/O,     //
// ROOT Trees, etc. Most of the type information is provided by the     //
// CINT C++ interpreter.                                                //
//                                                                      //
// TMethodCall                            (method call environment)     //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

#ifndef R__BUILDING_CINT7
#include "Property.h"
#else
#include "cint7/Property.h"
#endif

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;

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,
   kIsDefault      = G__BIT_ISDEFAULT,
   kIsReference    = G__BIT_ISREFERENCE,
   kIsConstant     = G__BIT_ISCONSTANT,
   kIsConstPointer = G__BIT_ISPCONSTANT,
   kIsMethConst    = G__BIT_ISMETHCONSTANT
};


class TDictionary : public TNamed {

public:
   TDictionary() { }
   TDictionary(const char* name): TNamed(name, "") { }
   virtual ~TDictionary() { }

   virtual Long_t      Property() const = 0;

   // Type of STL container (returned by IsSTLContainer).
   enum ESTLType {kNone=0, kVector=1, kList, kDeque, kMap, kMultimap, kSet, kMultiset};

   ClassDef(TDictionary,0)  //ABC defining interface to dictionary
};

#endif
 TDictionary.h:1
 TDictionary.h:2
 TDictionary.h:3
 TDictionary.h:4
 TDictionary.h:5
 TDictionary.h:6
 TDictionary.h:7
 TDictionary.h:8
 TDictionary.h:9
 TDictionary.h:10
 TDictionary.h:11
 TDictionary.h:12
 TDictionary.h:13
 TDictionary.h:14
 TDictionary.h:15
 TDictionary.h:16
 TDictionary.h:17
 TDictionary.h:18
 TDictionary.h:19
 TDictionary.h:20
 TDictionary.h:21
 TDictionary.h:22
 TDictionary.h:23
 TDictionary.h:24
 TDictionary.h:25
 TDictionary.h:26
 TDictionary.h:27
 TDictionary.h:28
 TDictionary.h:29
 TDictionary.h:30
 TDictionary.h:31
 TDictionary.h:32
 TDictionary.h:33
 TDictionary.h:34
 TDictionary.h:35
 TDictionary.h:36
 TDictionary.h:37
 TDictionary.h:38
 TDictionary.h:39
 TDictionary.h:40
 TDictionary.h:41
 TDictionary.h:42
 TDictionary.h:43
 TDictionary.h:44
 TDictionary.h:45
 TDictionary.h:46
 TDictionary.h:47
 TDictionary.h:48
 TDictionary.h:49
 TDictionary.h:50
 TDictionary.h:51
 TDictionary.h:52
 TDictionary.h:53
 TDictionary.h:54
 TDictionary.h:55
 TDictionary.h:56
 TDictionary.h:57
 TDictionary.h:58
 TDictionary.h:59
 TDictionary.h:60
 TDictionary.h:61
 TDictionary.h:62
 TDictionary.h:63
 TDictionary.h:64
 TDictionary.h:65
 TDictionary.h:66
 TDictionary.h:67
 TDictionary.h:68
 TDictionary.h:69
 TDictionary.h:70
 TDictionary.h:71
 TDictionary.h:72
 TDictionary.h:73
 TDictionary.h:74
 TDictionary.h:75
 TDictionary.h:76
 TDictionary.h:77
 TDictionary.h:78
 TDictionary.h:79
 TDictionary.h:80
 TDictionary.h:81
 TDictionary.h:82
 TDictionary.h:83
 TDictionary.h:84
 TDictionary.h:85
 TDictionary.h:86
 TDictionary.h:87
 TDictionary.h:88
 TDictionary.h:89
 TDictionary.h:90
 TDictionary.h:91
 TDictionary.h:92
 TDictionary.h:93
 TDictionary.h:94
 TDictionary.h:95
 TDictionary.h:96
 TDictionary.h:97
 TDictionary.h:98
 TDictionary.h:99
 TDictionary.h:100
 TDictionary.h:101
 TDictionary.h:102
 TDictionary.h:103
 TDictionary.h:104