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

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

#include <FlashFilterFactory.h>

Public Member Functions

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

Private Member Functions

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

Private Attributes

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

Static Private Attributes

static FlashFilterFactory_me = nullptr
 Static self. More...
 

Detailed Description

Factory class for instantiating flash algorithm instance.

Definition at line 40 of file FlashFilterFactory.h.

Constructor & Destructor Documentation

flashmatch::FlashFilterFactory::FlashFilterFactory ( )
inlineprivate

Default ctor, shouldn't be used.

Definition at line 43 of file FlashFilterFactory.h.

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

Default dtor.

Definition at line 46 of file FlashFilterFactory.h.

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

Member Function Documentation

void flashmatch::FlashFilterFactory::add_factory ( const std::string  name,
flashmatch::FlashFilterFactoryBase factory 
)
inline

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

Definition at line 51 of file FlashFilterFactory.h.

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

Static sharable instance getter.

Definition at line 48 of file FlashFilterFactory.h.

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

Member Data Documentation

std::map<std::string,flashmatch::FlashFilterFactoryBase*> flashmatch::FlashFilterFactory::_factory_map
private

Static factory container.

Definition at line 66 of file FlashFilterFactory.h.

flashmatch::FlashFilterFactory * flashmatch::FlashFilterFactory::_me = nullptr
staticprivate

Static self.

Definition at line 68 of file FlashFilterFactory.h.


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