Scarab  v2.4.11
Project 8 C++ Utility Library
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
factory< XBaseType, XArgs > Class Template Reference

#include <factory.hh>

Inheritance diagram for factory< XBaseType, XArgs >:
Inheritance graph

Public Types

typedef std::map< std::string, const base_registrar< XBaseType, XArgs... > *> FactoryMap
 
typedef FactoryMap::value_type FactoryEntry
 
typedef FactoryMap::iterator FactoryIt
 
typedef FactoryMap::const_iterator FactoryCIt
 

Public Member Functions

XBaseType * create (const std::string &a_class_name, XArgs ... args)
 
XBaseType * create (const FactoryCIt &iter, XArgs ... args)
 
void register_class (const std::string &a_class_name, const base_registrar< XBaseType, XArgs... > *base_registrar)
 
bool has_class (const std::string &a_class_name) const
 
void remove_class (const std::string &a_class_name)
 
FactoryCIt begin () const
 
FactoryCIt end () const
 

Protected Member Functions

 factory ()
 
 ~factory ()
 
- Protected Member Functions inherited from singleton< factory< XBaseType, XArgs... > >
 singleton ()
 
 ~singleton ()
 

Protected Attributes

FactoryMapfMap
 
std::mutex f_factory_mutex
 

Friends

class scarab::singleton< factory >
 
class scarab::destroyer< factory >
 

Additional Inherited Members

- Static Public Member Functions inherited from singleton< factory< XBaseType, XArgs... > >
static factory< XBaseType, XArgs... > * get_instance ()
 
static void kill_instance ()
 
static factory< XBaseType, XArgs... > * create_instance (x_args... args)
 

Detailed Description

template<class XBaseType, typename ... XArgs>
class scarab::factory< XBaseType, XArgs >

Definition at line 28 of file factory.hh.

Member Typedef Documentation

◆ FactoryCIt

typedef FactoryMap::const_iterator FactoryCIt

Definition at line 73 of file factory.hh.

◆ FactoryEntry

typedef FactoryMap::value_type FactoryEntry

Definition at line 71 of file factory.hh.

◆ FactoryIt

typedef FactoryMap::iterator FactoryIt

Definition at line 72 of file factory.hh.

◆ FactoryMap

typedef std::map< std::string, const base_registrar< XBaseType, XArgs... >* > FactoryMap

Definition at line 70 of file factory.hh.

Constructor & Destructor Documentation

◆ factory()

factory ( )
protected

Definition at line 229 of file factory.hh.

◆ ~factory()

~factory ( )
protected

Definition at line 235 of file factory.hh.

Member Function Documentation

◆ begin()

factory< XBaseType, XArgs... >::FactoryCIt begin ( ) const

Definition at line 241 of file factory.hh.

◆ create() [1/2]

XBaseType * create ( const std::string &  a_class_name,
XArgs ...  args 
)

Definition at line 178 of file factory.hh.

◆ create() [2/2]

XBaseType * create ( const FactoryCIt iter,
XArgs ...  args 
)

Definition at line 171 of file factory.hh.

◆ end()

factory< XBaseType, XArgs... >::FactoryCIt end ( ) const

Definition at line 248 of file factory.hh.

◆ has_class()

bool has_class ( const std::string &  a_class_name) const

Definition at line 214 of file factory.hh.

◆ register_class()

void register_class ( const std::string &  a_class_name,
const base_registrar< XBaseType, XArgs... > *  base_registrar 
)

Definition at line 197 of file factory.hh.

◆ remove_class()

void remove_class ( const std::string &  a_class_name)

Definition at line 220 of file factory.hh.

Friends And Related Function Documentation

◆ scarab::destroyer< factory >

friend class scarab::destroyer< factory >
friend

Definition at line 91 of file factory.hh.

◆ scarab::singleton< factory >

friend class scarab::singleton< factory >
friend

Definition at line 91 of file factory.hh.

Member Data Documentation

◆ f_factory_mutex

std::mutex f_factory_mutex
protected

Definition at line 88 of file factory.hh.

◆ fMap

FactoryMap* fMap
protected

Definition at line 87 of file factory.hh.


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