00001
00002 #ifndef GAUDISVC_OBJECTMANAGER_H
00003 #define GAUDISVC_OBJECTMANAGER_H
00004
00005 #include "GaudiKernel/IObjManager.h"
00006
00007
00008 class ISvcLocator;
00009 class IMessageSvc;
00010
00020 class ObjectManager : virtual public IObjManager {
00021 unsigned long m_refcount;
00022 ISvcLocator* m_svclocator;
00023 IMessageSvc* m_msgsvc;
00024 Container* m_objects;
00025 public:
00026
00027 ObjectManager( ISvcLocator* svclocator );
00028
00029 virtual ~ObjectManager();
00030
00031
00032 virtual unsigned long addRef();
00033
00034 virtual unsigned long release();
00035
00036 virtual StatusCode queryInterface(const IID& iid, void** pinterface);
00037
00038 virtual StatusCode declareObjFactory( const IFactory& factory
00039 );
00040
00041 virtual bool existsObjFactory(const std::string& objtype
00042 ) const;
00043
00044 virtual const IFactory* objFactory(const std::string& objtype
00045 ) const;
00046
00047
00048 virtual ObjIterator objBegin() {
00049 return m_objects->begin();
00050 }
00051
00052 virtual ObjIterator objEnd() {
00053 return m_objects->end();
00054 }
00055 };
00056
00057
00058 #endif // GAUDI_APPLICATIONMGR_OBJECTMANAGER_H