All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
flashmatch::FlashProhibitFactory Class Reference

Factory class for instantiating flash algorithm instance. More...

#include <FlashProhibitFactory.h>

Public Member Functions

 ~FlashProhibitFactory ()
 Default dtor. More...
 
void add_factory (const std::string name, flashmatch::FlashProhibitFactoryBase *factory)
 Factory registration method (should be called by global factory instance in algorithm header) More...
 
BaseProhibitAlgocreate (const std::string name, const std::string instance_name)
 Factory creation method (should be called by clients, possibly you!) More...
 

Static Public Member Functions

static FlashProhibitFactoryget ()
 Static sharable instance getter. More...
 

Private Member Functions

 FlashProhibitFactory ()
 Default ctor, shouldn't be used. More...
 

Private Attributes

std::map< std::string,
flashmatch::FlashProhibitFactoryBase * > 
_factory_map
 Static factory container. More...
 

Static Private Attributes

static FlashProhibitFactory_me = nullptr
 Static self. More...
 

Detailed Description

Factory class for instantiating flash algorithm instance.

Definition at line 40 of file FlashProhibitFactory.h.

Constructor & Destructor Documentation

flashmatch::FlashProhibitFactory::FlashProhibitFactory ( )
inlineprivate

Default ctor, shouldn't be used.

Definition at line 43 of file FlashProhibitFactory.h.

43 {}
flashmatch::FlashProhibitFactory::~FlashProhibitFactory ( )
inline

Default dtor.

Definition at line 46 of file FlashProhibitFactory.h.

46 {_factory_map.clear();}
std::map< std::string, flashmatch::FlashProhibitFactoryBase * > _factory_map
Static factory container.

Member Function Documentation

void flashmatch::FlashProhibitFactory::add_factory ( const std::string  name,
flashmatch::FlashProhibitFactoryBase factory 
)
inline

Factory registration method (should be called by global factory instance in algorithm header)

Definition at line 51 of file FlashProhibitFactory.h.

52  { _factory_map[name] = factory; }
then echo fcl name
std::map< std::string, flashmatch::FlashProhibitFactoryBase * > _factory_map
Static factory container.
BaseProhibitAlgo* flashmatch::FlashProhibitFactory::create ( const std::string  name,
const std::string  instance_name 
)
inline

Factory creation method (should be called by clients, possibly you!)

Definition at line 54 of file FlashProhibitFactory.h.

54  {
55  auto iter = _factory_map.find(name);
56  if(iter == _factory_map.end() || !((*iter).second)) {
57  std::cerr << "Found no registered class " << name << std::endl;
58  return nullptr;
59  }
60  auto ptr = (*iter).second->create(instance_name);
61  return ptr;
62  }
BEGIN_PROLOG could also be cerr
then echo fcl name
std::map< std::string, flashmatch::FlashProhibitFactoryBase * > _factory_map
Static factory container.
static FlashProhibitFactory& flashmatch::FlashProhibitFactory::get ( )
inlinestatic

Static sharable instance getter.

Definition at line 48 of file FlashProhibitFactory.h.

49  { if(!_me) _me = new FlashProhibitFactory; return *_me; }
static FlashProhibitFactory * _me
Static self.
FlashProhibitFactory()
Default ctor, shouldn&#39;t be used.

Member Data Documentation

std::map<std::string,flashmatch::FlashProhibitFactoryBase*> flashmatch::FlashProhibitFactory::_factory_map
private

Static factory container.

Definition at line 66 of file FlashProhibitFactory.h.

flashmatch::FlashProhibitFactory * flashmatch::FlashProhibitFactory::_me = nullptr
staticprivate

Static self.

Definition at line 68 of file FlashProhibitFactory.h.


The documentation for this class was generated from the following files: