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::CustomAlgoFactory Class Reference

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

#include <CustomAlgoFactory.h>

Public Member Functions

 ~CustomAlgoFactory ()
 Default dtor. More...
 
void add_factory (const std::string name, flashmatch::CustomAlgoFactoryBase *factory)
 Factory registration method (should be called by global factory instance in algorithm header) More...
 
BaseAlgorithmcreate (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 CustomAlgoFactoryget ()
 Static sharable instance getter. More...
 

Private Member Functions

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

Private Attributes

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

Static Private Attributes

static CustomAlgoFactory_me = nullptr
 Static self. More...
 

Detailed Description

Factory class for instantiating flash algorithm instance.

Definition at line 40 of file CustomAlgoFactory.h.

Constructor & Destructor Documentation

flashmatch::CustomAlgoFactory::CustomAlgoFactory ( )
inlineprivate

Default ctor, shouldn't be used.

Definition at line 43 of file CustomAlgoFactory.h.

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

Default dtor.

Definition at line 46 of file CustomAlgoFactory.h.

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

Member Function Documentation

void flashmatch::CustomAlgoFactory::add_factory ( const std::string  name,
flashmatch::CustomAlgoFactoryBase factory 
)
inline

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

Definition at line 51 of file CustomAlgoFactory.h.

52  { _factory_map[name] = factory; }
std::map< std::string, flashmatch::CustomAlgoFactoryBase * > _factory_map
Static factory container.
then echo fcl name
BaseAlgorithm* flashmatch::CustomAlgoFactory::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 CustomAlgoFactory.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
std::map< std::string, flashmatch::CustomAlgoFactoryBase * > _factory_map
Static factory container.
then echo fcl name
static CustomAlgoFactory& flashmatch::CustomAlgoFactory::get ( )
inlinestatic

Static sharable instance getter.

Definition at line 48 of file CustomAlgoFactory.h.

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

Member Data Documentation

std::map<std::string,flashmatch::CustomAlgoFactoryBase*> flashmatch::CustomAlgoFactory::_factory_map
private

Static factory container.

Definition at line 66 of file CustomAlgoFactory.h.

flashmatch::CustomAlgoFactory * flashmatch::CustomAlgoFactory::_me = nullptr
staticprivate

Static self.

Definition at line 68 of file CustomAlgoFactory.h.


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