Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes | List of all members
DataRepFactory Class Reference

This Singleton class maintains a list of DataRep objects. More...

#include <DataRepFactory.h>

Inheritance diagram for DataRepFactory:
Inheritance graph
[legend]
Collaboration diagram for DataRepFactory:
Collaboration graph
[legend]

Public Member Functions

void add (hippodraw::DataRep *)
 Adds a prototype object to the list of prototypes. More...
 
hippodraw::DataRepcreate (const std::string &name)
 Creates a new object from a prototype named name. More...
 
bool exists (const std::string &name) const
 Returns true if prototype with name name exists in the factory, otherwise returns false. More...
 
const std::vector< std::string > & names () const
 Returns the list of available prototype names. More...
 
hippodraw::DataRepprototype (const std::string &name) const
 Returns a pointer to a prototype with name name. More...
 
void remove (const std::string &name)
 Removes the named prototype object from the list of prototypes. More...
 
 ~DataRepFactory ()
 The destructor. More...
 

Static Public Member Functions

static DataRepFactoryinstance ()
 Returns the pointer to the singleton instance. More...
 

Protected Member Functions

 DataRepFactory ()
 The default constructor for avoiding creation except by itself or with derived classes. More...
 

Protected Attributes

std::vector< std::string > m_names
 The list of available types by names. More...
 
std::map< std::string, hippodraw::DataRep * > m_types
 A list of available types. More...
 

Private Member Functions

 DataRepFactory (const DataRepFactory &)
 A private copy constructor to avoid copying. More...
 
void initialize ()
 Initializes the factory with a set of default DataReps. More...
 

Static Private Attributes

static DataRepFactorys_instance = 0
 The pointer to the singleton object. More...
 

Detailed Description

This Singleton class maintains a list of DataRep objects.

They can be looked up by their advertised name. New objects are created by cloning existing ones.

Definition at line 25 of file DataRepFactory.h.

Constructor & Destructor Documentation

◆ DataRepFactory() [1/2]

DataRepFactory ( const DataRepFactory )
private

A private copy constructor to avoid copying.

◆ DataRepFactory() [2/2]

DataRepFactory ( )
protected

The default constructor for avoiding creation except by itself or with derived classes.

Definition at line 42 of file DataRepFactory.cxx.

References DataRepFactory::~DataRepFactory().

Referenced by DataRepFactory::instance().

◆ ~DataRepFactory()

The destructor.

Definition at line 47 of file DataRepFactory.cxx.

Referenced by DataRepFactory::DataRepFactory().

Member Function Documentation

◆ add()

void add ( hippodraw::DataRep obj)
inherited

Adds a prototype object to the list of prototypes.

Definition at line 116 of file Factory.h.

Referenced by DataRepFactory::initialize().

◆ create()

hippodraw::DataRep * create ( const std::string &  name)
inherited

Creates a new object from a prototype named name.

If found, returns a new object by invoking the clone() member function of the prototype. If not found, throws a FactoryException object with the name not found.

Definition at line 160 of file Factory.h.

◆ exists()

bool exists ( const std::string &  name) const
inherited

Returns true if prototype with name name exists in the factory, otherwise returns false.

Definition at line 136 of file Factory.h.

◆ initialize()

void initialize ( )
private

Initializes the factory with a set of default DataReps.

Definition at line 61 of file DataRepFactory.cxx.

References Factory< hippodraw::DataRep >::add().

Referenced by DataRepFactory::instance().

◆ instance()

DataRepFactory * instance ( )
static

◆ names()

const std::vector< std::string > & names ( ) const
inherited

Returns the list of available prototype names.

Definition at line 170 of file Factory.h.

◆ prototype()

hippodraw::DataRep * prototype ( const std::string &  name) const
inherited

Returns a pointer to a prototype with name name.

If a prototype with name doesn't exit, throws a FactoryException object with the name not found.

Definition at line 148 of file Factory.h.

◆ remove()

void remove ( const std::string &  name)
inherited

Removes the named prototype object from the list of prototypes.

Definition at line 125 of file Factory.h.

Member Data Documentation

◆ m_names

std::vector< std::string > m_names
mutableprotectedinherited

The list of available types by names.

This list should be identical to the list of m_types keys. It is updated when the member function names is called.

Definition at line 58 of file Factory.h.

◆ m_types

std::map< std::string, hippodraw::DataRep * > m_types
protectedinherited

A list of available types.

Definition at line 53 of file Factory.h.

◆ s_instance

DataRepFactory * s_instance = 0
staticprivate

The pointer to the singleton object.

Definition at line 32 of file DataRepFactory.h.

Referenced by DataRepFactory::instance().


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

Generated for HippoDraw Class Library by doxygen