00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/IObjManager.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $ 00002 #ifndef GAUDIKERNEL_IOBJMANAGER_H 00003 #define GAUDIKERNEL_IOBJMANAGER_H 00004 00005 // Include files 00006 #include <string> 00007 #include <vector> 00008 00009 #include "GaudiKernel/IInterface.h" 00010 00011 // Forward class declaration 00012 class IFactory; 00013 class ISvcLocator; 00014 00015 // Declaration of the interface ID ( interface id, major version, minor version) 00016 static const InterfaceID IID_IObjManager(17, 1 , 0); 00017 00028 class IObjManager : virtual public IInterface { 00029 public: 00030 typedef std::vector<const IFactory*> Container; 00032 typedef const IFactory** ObjIterator; 00033 00035 static const InterfaceID& interfaceID() { return IID_IObjManager; } 00036 00037 // Declare an abastract Converter factory to be used to create instances of a given Converter type 00038 virtual StatusCode declareObjFactory( const IFactory& factory // Reference to the abastract factory 00039 ) = 0; 00040 // Check the existance of an Converter with a given name in the list of known Converters 00041 virtual bool existsObjFactory(const std::string& objtype // Factory's object type 00042 ) const = 0; 00043 // Get an existing converter factory 00044 virtual const IFactory* objFactory(const std::string& objtype // Factory's object type 00045 ) const = 0; 00046 // Allow to iterate through all entries of the Converter manager 00047 // Start of iteration 00048 virtual ObjIterator objBegin() = 0; 00049 // End of iteration 00050 virtual ObjIterator objEnd() = 0; 00051 }; 00052 00053 #endif // GAUDI_INTERFACES_IOBJMANAGER_H
1.2.3 written by Dimitri van Heesch,
© 1997-2000