Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

IObjManager.h

Go to the documentation of this file.
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

Generated at Wed Nov 21 12:22:04 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000