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

ISvcManager Class Reference

The ISvcManager is the interface implemented by the Service Factory in the Application Manager to support management functions. More...

#include <GaudiKernel/ISvcManager.h>

Inheritance diagram for ISvcManager:

IInterface List of all members.

Public Types

typedef IService* (* SvcCreator )(const std::string& svcname, ISvcLocator* svcloc)
 Typedefs.


Public Methods

virtual StatusCode addService ( IService* svc ) = 0
 Add a service to the list of known services of the factory. More...

virtual StatusCode removeService ( IService* svc ) = 0
 Remove a service from the list of known services of the factory. More...

virtual StatusCode declareSvcCreator ( SvcCreator creator, const std::string& svctype ) = 0
 Declare a static creation function for a given service type. More...

virtual StatusCode declareSvcModule ( const std::string& module, const std::string& svctype ) = 0
 Declare a module name (shareable library) that implemennents the creation function for a given service type. More...

virtual StatusCode declareSvcFactory ( const ISvcFactory& factory, const std::string& svctype ) = 0
 Declare an abstract factory for a given service type. More...

virtual StatusCode createService ( const std::string& svctype, const std::string& svcname, IService*& svc ) = 0
 Creates and instance of a service type that has been declared beforehand and assigns it a name. More...


Static Public Methods

const InterfaceIDinterfaceID ()
 Retrieve interface ID. More...


Detailed Description

The ISvcManager is the interface implemented by the Service Factory in the Application Manager to support management functions.

Clients use this interface to declare abstract service factories, and to create concrete instances of services. There are currently 3 methods for the declaration: static creator method (creator). an abstract factory (factory) or a shareable library (module).

Author(s):
Pere Mato

Definition at line 28 of file ISvcManager.h.


Member Typedef Documentation

typedef IService *(* ISvcManager::SvcCreator)(const std::string &svcname,ISvcLocator *svcloc)
 

Typedefs.


Member Function Documentation

StatusCode ISvcManager::addService ( IService * svc ) [pure virtual]
 

Add a service to the list of known services of the factory.

Parameters:
svc   Pointer to the service

StatusCode ISvcManager::createService ( const std::string & svctype,
const std::string & svcname,
IService *& svc ) [pure virtual]
 

Creates and instance of a service type that has been declared beforehand and assigns it a name.

It returns a pointer to an IService.

Parameters:
svctype   Service type name
svcname   Service name to be set
svc   Returned service pointer

StatusCode ISvcManager::declareSvcCreator ( SvcCreator creator,
const std::string & svctype ) [pure virtual]
 

Declare a static creation function for a given service type.

Parameters:
creator   Static creator method
svctype   Service type name

StatusCode ISvcManager::declareSvcFactory ( const ISvcFactory & factory,
const std::string & svctype ) [pure virtual]
 

Declare an abstract factory for a given service type.

Parameters:
factory   Abstract factory reference
svctype   Service type name

StatusCode ISvcManager::declareSvcModule ( const std::string & module,
const std::string & svctype ) [pure virtual]
 

Declare a module name (shareable library) that implemennents the creation function for a given service type.

Parameters:
module   Shareable library name
svctype   Service type name

const InterfaceID & ISvcManager::interfaceID ( ) [inline, static]
 

Retrieve interface ID.

Reimplemented from IInterface.

Definition at line 34 of file ISvcManager.h.

StatusCode ISvcManager::removeService ( IService * svc ) [pure virtual]
 

Remove a service from the list of known services of the factory.

Parameters:
svc   Pointer to the service


The documentation for this class was generated from the following file:
Generated at Wed Nov 21 12:22:13 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000