DataRepFactory Class Reference

#include <DataRepFactory.h>

Inheritance diagram for DataRepFactory:

Inheritance graph
Factory\< hippodraw::DataRep \>Factory
[legend]
Collaboration diagram for DataRepFactory:

Collaboration graph
Factory\< hippodraw::DataRep \>Factory
[legend]

List of all members.


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.


Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Static Private Attributes

static DataRepFactorys_instance = 0
 The pointer to the singleton object.

Constructor & Destructor Documentation

DataRepFactory ( const DataRepFactory  )  [private]

A private copy constructor to avoid copying.

DataRepFactory (  )  [protected]

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

Definition at line 42 of file DataRepFactory.cxx.

Referenced by DataRepFactory::instance().

~DataRepFactory (  ) 

The destructor.

Definition at line 47 of file DataRepFactory.cxx.


Member Function Documentation

void add ( hippodraw::DataRep  )  [inherited]

Adds a prototype object to the list of prototypes.

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.

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

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

void initialize (  )  [private]

Initializes the factory with a set of default DataReps.

Definition at line 61 of file DataRepFactory.cxx.

Referenced by DataRepFactory::instance().

DataRepFactory * instance (  )  [static]

Returns the pointer to the singleton instance.

Definition at line 51 of file DataRepFactory.cxx.

References DataRepFactory::DataRepFactory(), DataRepFactory::initialize(), and DataRepFactory::s_instance.

Referenced by DisplayController::bindingOptions(), DataRepController::bindingOptions(), DataRepController::createDataRep(), DisplayController::createDisplay(), DisplayController::getDisplayTypes(), DisplayController::isCompatible(), DataRepController::names(), and DataRepController::~DataRepController().

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

Returns the list of available prototype names.

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.

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

Removes the named prototype object from the list of prototypes.


Member Data Documentation

std::vector< std::string > m_names [mutable, protected, inherited]

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.

std::map< std::string, hippodraw::DataRep * > m_types [protected, inherited]

A list of available types.

Definition at line 53 of file Factory.h.

DataRepFactory * s_instance = 0 [static, private]

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