00001 // @(#)root/base:$Id: TClassGenerator.h 30751 2009-10-15 16:45:32Z pcanal $ 00002 // Author: Philippe Canal 24/06/2003 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2003, Rene Brun and Fons Rademakers, and al. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TClassGenerator 00013 #define ROOT_TClassGenerator 00014 00015 ////////////////////////////////////////////////////////////////////////// 00016 // // 00017 // TClassGenerator // 00018 // // 00019 // Objects following this interface can be passed onto the TROOT object // 00020 // to implement a user customized way to create the TClass objects. // 00021 // // 00022 ////////////////////////////////////////////////////////////////////////// 00023 00024 #ifndef ROOT_TObject 00025 #include "TObject.h" 00026 #endif 00027 00028 class TClass; 00029 00030 class TClassGenerator : public TObject { 00031 00032 protected: 00033 TClassGenerator() : TObject() { } 00034 virtual ~TClassGenerator() { } 00035 00036 public: 00037 virtual TClass *GetClass(const char* classname, Bool_t load) = 0; 00038 virtual TClass *GetClass(const type_info& typeinfo, Bool_t load) = 0; 00039 virtual TClass *GetClass(const char* classname, Bool_t load, Bool_t silent); 00040 virtual TClass *GetClass(const type_info& typeinfo, Bool_t load, Bool_t silent); 00041 00042 ClassDef(TClassGenerator,1); // interface for TClass generators 00043 }; 00044 00045 #endif