// @(#)root/meta:$Id$
// Author: Fons Rademakers   08/02/95

/*************************************************************************
 * 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_TBaseClass
#define ROOT_TBaseClass


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TBaseClass                                                           //
//                                                                      //
// Description of a base class.                                         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#ifndef ROOT_TDictionary
#include "TDictionary.h"
#endif
#ifndef ROOT_TClassRef
#include "TClassRef.h"
#endif

class TBrowser;
class TClass;

class TBaseClass : public TDictionary {

private:
   TBaseClass(const TBaseClass &);          // Not implemented
   TBaseClass&operator=(const TBaseClass&); // Not implemented

private:
   BaseClassInfo_t   *fInfo;      //!pointer to CINT base class info
   TClassRef          fClassPtr;  // pointer to the base class TClass
   TClass            *fClass;     //!pointer to parent class
   Int_t              fDelta;     // BaseClassInfo_t offset (INT_MAX if unset)
   mutable Int_t      fProperty;  // BaseClassInfo_t's properties
   Int_t              fSTLType;   // cache of IsSTLContainer()

public:
   TBaseClass(BaseClassInfo_t *info = 0, TClass *cl = 0);
   virtual     ~TBaseClass();
   virtual void   Browse(TBrowser *b);
   const char    *GetTitle() const;
   TClass        *GetClassPointer(Bool_t load=kTRUE);
   Int_t          GetDelta();
   Bool_t         IsFolder() const {return kTRUE;}
   ROOT::ESTLType IsSTLContainer();
   Long_t         Property() const;
   void           SetClass(TClass* cl) { fClass = cl; }

   ClassDef(TBaseClass,2)  //Description of a base class
};

#endif
 TBaseClass.h:1
 TBaseClass.h:2
 TBaseClass.h:3
 TBaseClass.h:4
 TBaseClass.h:5
 TBaseClass.h:6
 TBaseClass.h:7
 TBaseClass.h:8
 TBaseClass.h:9
 TBaseClass.h:10
 TBaseClass.h:11
 TBaseClass.h:12
 TBaseClass.h:13
 TBaseClass.h:14
 TBaseClass.h:15
 TBaseClass.h:16
 TBaseClass.h:17
 TBaseClass.h:18
 TBaseClass.h:19
 TBaseClass.h:20
 TBaseClass.h:21
 TBaseClass.h:22
 TBaseClass.h:23
 TBaseClass.h:24
 TBaseClass.h:25
 TBaseClass.h:26
 TBaseClass.h:27
 TBaseClass.h:28
 TBaseClass.h:29
 TBaseClass.h:30
 TBaseClass.h:31
 TBaseClass.h:32
 TBaseClass.h:33
 TBaseClass.h:34
 TBaseClass.h:35
 TBaseClass.h:36
 TBaseClass.h:37
 TBaseClass.h:38
 TBaseClass.h:39
 TBaseClass.h:40
 TBaseClass.h:41
 TBaseClass.h:42
 TBaseClass.h:43
 TBaseClass.h:44
 TBaseClass.h:45
 TBaseClass.h:46
 TBaseClass.h:47
 TBaseClass.h:48
 TBaseClass.h:49
 TBaseClass.h:50
 TBaseClass.h:51
 TBaseClass.h:52
 TBaseClass.h:53
 TBaseClass.h:54
 TBaseClass.h:55
 TBaseClass.h:56
 TBaseClass.h:57
 TBaseClass.h:58
 TBaseClass.h:59
 TBaseClass.h:60
 TBaseClass.h:61
 TBaseClass.h:62
 TBaseClass.h:63
 TBaseClass.h:64