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

#include <factory.hh>

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

Public Types

typedef std::map< std::string, const base_registrar< XBaseType > * > 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)
 
XBaseType * create (const FactoryCIt &iter)
 
void register_class (const std::string &a_class_name, const base_registrar< XBaseType > *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 > >
 singleton ()
 
 ~singleton ()
 

Protected Attributes

FactoryMapfMap
 
std::mutex f_factory_mutex
 

Friends

class singleton< factory >
 
class destroyer< factory >
 

Additional Inherited Members

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

Detailed Description

template<class XBaseType>
class scarab::factory< XBaseType, void >

Definition at line 133 of file factory.hh.

Member Typedef Documentation

typedef FactoryMap::const_iterator FactoryCIt

Definition at line 139 of file factory.hh.

typedef FactoryMap::value_type FactoryEntry

Definition at line 137 of file factory.hh.

typedef FactoryMap::iterator FactoryIt

Definition at line 138 of file factory.hh.

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

Definition at line 136 of file factory.hh.

Constructor & Destructor Documentation

factory ( )
protected

Definition at line 349 of file factory.hh.

~factory ( )
protected

Definition at line 355 of file factory.hh.

Member Function Documentation

factory< XBaseType, void >::FactoryCIt begin ( ) const

Definition at line 361 of file factory.hh.

XBaseType * create ( const std::string &  a_class_name)

Definition at line 298 of file factory.hh.

XBaseType * create ( const FactoryCIt iter)

Definition at line 291 of file factory.hh.

factory< XBaseType, void >::FactoryCIt end ( ) const

Definition at line 368 of file factory.hh.

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

Definition at line 334 of file factory.hh.

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

Definition at line 317 of file factory.hh.

void remove_class ( const std::string &  a_class_name)

Definition at line 340 of file factory.hh.

Friends And Related Function Documentation

friend class destroyer< factory >
friend

Definition at line 158 of file factory.hh.

friend class singleton< factory >
friend

Definition at line 157 of file factory.hh.

Member Data Documentation

std::mutex f_factory_mutex
protected

Definition at line 154 of file factory.hh.

FactoryMap* fMap
protected

Definition at line 153 of file factory.hh.


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