#include <opentrep/factory/FacSupervisor.hpp>
Public Types | |
typedef std::vector< FacBomAbstract * > | BomFactoryPool_T |
typedef std::vector< FacServiceAbstract * > | ServiceFactoryPool_T |
Public Member Functions | |
void | registerBomFactory (FacBomAbstract *) |
void | registerServiceFactory (FacServiceAbstract *) |
void | registerXapianDBFactory (FacXapianDB *) |
void | registerLoggerService (Logger *) |
void | cleanBomLayer () |
void | cleanServiceLayer () |
void | cleanFacXapianDB () |
void | cleanLoggerService () |
~FacSupervisor () | |
Static Public Member Functions | |
static FacSupervisor & | instance () |
static void | cleanFactory () |
Protected Member Functions | |
FacSupervisor () | |
FacSupervisor (const FacSupervisor &) | |
Singleton class to register and clean all the factories.
Definition at line 21 of file FacSupervisor.hpp.
typedef std::vector<FacBomAbstract*> OPENTREP::FacSupervisor::BomFactoryPool_T |
Define the pool (list) of factories.
Definition at line 27 of file FacSupervisor.hpp.
typedef std::vector<FacServiceAbstract*> OPENTREP::FacSupervisor::ServiceFactoryPool_T |
Definition at line 28 of file FacSupervisor.hpp.
OPENTREP::FacSupervisor::~FacSupervisor | ( | ) |
Destructor The static instance is deleted (and reset to NULL) by the static cleanFactory() method.
Definition at line 52 of file FacSupervisor.cpp.
References cleanBomLayer(), cleanFactory(), cleanFacXapianDB(), cleanLoggerService(), and cleanServiceLayer().
|
protected |
Default Constructor. This constructor is protected to ensure the singleton pattern.
Definition at line 16 of file FacSupervisor.cpp.
Referenced by FacSupervisor(), and instance().
|
inlineprotected |
Definition at line 120 of file FacSupervisor.hpp.
References FacSupervisor().
|
static |
Provides the unique instance. The singleton is instantiated when first used.
Definition at line 21 of file FacSupervisor.cpp.
References FacSupervisor().
Referenced by OPENTREP::FacOpenTrepServiceContext::instance(), OPENTREP::FacPlace::instance(), OPENTREP::FacPlaceHolder::instance(), OPENTREP::FacResult::instance(), OPENTREP::FacResultCombination::instance(), OPENTREP::FacResultHolder::instance(), OPENTREP::FacWorld::instance(), OPENTREP::FacXapianDB::instance(), and OPENTREP::Logger::instance().
void OPENTREP::FacSupervisor::registerBomFactory | ( | FacBomAbstract * | ioFacBomAbstract_ptr | ) |
Register a newly instantiated concrete factory for the Bom layer. When a concrete Factory is firstly instantiated, this factory has to register itself to the FacSupervisor.
FacAbstract& | the concrete Factory to register. |
Definition at line 30 of file FacSupervisor.cpp.
Referenced by OPENTREP::FacPlace::instance(), OPENTREP::FacPlaceHolder::instance(), OPENTREP::FacResult::instance(), OPENTREP::FacResultCombination::instance(), OPENTREP::FacResultHolder::instance(), and OPENTREP::FacWorld::instance().
void OPENTREP::FacSupervisor::registerServiceFactory | ( | FacServiceAbstract * | ioFacServiceAbstract_ptr | ) |
Register a newly instantiated concrete factory for the Service layer. When a concrete Factory is firstly instantiated, this factory has to register itself to the FacSupervisor.
FacServiceAbstract& | the concrete Factory to register. |
Definition at line 36 of file FacSupervisor.cpp.
Referenced by OPENTREP::FacOpenTrepServiceContext::instance().
void OPENTREP::FacSupervisor::registerXapianDBFactory | ( | FacXapianDB * | ioFacXapianDB_ptr | ) |
Register a newly instantiated concrete factory for the FacXapianDB object. In fact, as the FacXapianDB object follows the singleton pattern, the concrete factory is the FacXapianDB object itself. When a concrete Factory is firstly instantiated, this factory has to register itself to the FacSupervisor.
FacXapianDB* | The concrete service/object to register. |
Definition at line 42 of file FacSupervisor.cpp.
Referenced by OPENTREP::FacXapianDB::instance().
void OPENTREP::FacSupervisor::registerLoggerService | ( | Logger * | ioLogger_ptr | ) |
Register a newly instantiated concrete factory for the Logger object. In fact, as the Logger object follows the singleton pattern, the concrete factory is the Logger object itself. When a concrete Factory is firstly instantiated, this factory has to register itself to the FacSupervisor.
Logger* | The concrete service/object to register. |
Definition at line 47 of file FacSupervisor.cpp.
void OPENTREP::FacSupervisor::cleanBomLayer | ( | ) |
Clean all created object. Call the clean method of all the instantiated factories for the Bom layer.
Definition at line 64 of file FacSupervisor.cpp.
Referenced by ~FacSupervisor().
void OPENTREP::FacSupervisor::cleanServiceLayer | ( | ) |
Clean all Service created object. Call the clean method of all the instantiated factories for the Service layer.
Definition at line 78 of file FacSupervisor.cpp.
Referenced by ~FacSupervisor().
void OPENTREP::FacSupervisor::cleanFacXapianDB | ( | ) |
Delete the FacXapianDB object.
Definition at line 92 of file FacSupervisor.cpp.
Referenced by ~FacSupervisor().
void OPENTREP::FacSupervisor::cleanLoggerService | ( | ) |
Delete the Logger object.
Definition at line 97 of file FacSupervisor.cpp.
Referenced by ~FacSupervisor().
|
static |
Clean the static instance. The singleton is deleted.
Definition at line 102 of file FacSupervisor.cpp.
Referenced by ~FacSupervisor().