PlotterFactory Class Reference

This Singleton class maintains a list of plotters. More...

#include <PlotterFactory.h>

Inheritance diagram for PlotterFactory:

Inheritance graph
[legend]
Collaboration diagram for PlotterFactory:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void add (PlotterBase *)
 Adds a prototype object to the list of prototypes.
PlotterBasecreate (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.
PlotterBaseprototype (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.

Static Public Member Functions

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

Protected Attributes

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

Private Member Functions

void initialize ()
 Initializes the factory with a set of default Plotters.
 PlotterFactory ()
 The default constructor for prevent creation except by itself.
 PlotterFactory (const PlotterFactory &)
 A private copy constructor to avoid copying.

Static Private Attributes

static PlotterFactorys_instance = 0
 The pointer to the singleton object.


Detailed Description

This Singleton class maintains a list of plotters.

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

Definition at line 24 of file PlotterFactory.h.


Constructor & Destructor Documentation

PlotterFactory ( const PlotterFactory  )  [private]

A private copy constructor to avoid copying.

PlotterFactory (  )  [private]

The default constructor for prevent creation except by itself.

Definition at line 27 of file PlotterFactory.cxx.

Referenced by PlotterFactory::instance().


Member Function Documentation

void add ( PlotterBase  )  [inherited]

Adds a prototype object to the list of prototypes.

PlotterBase * 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 Plotters.

Definition at line 40 of file PlotterFactory.cxx.

Referenced by PlotterFactory::instance().

PlotterFactory * instance (  )  [static]

Returns the pointer to the singleton instance.

Definition at line 31 of file PlotterFactory.cxx.

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

Referenced by PlotterBaseXML::createPlotter().

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

Returns the list of available prototype names.

PlotterBase * 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, PlotterBase * > m_types [protected, inherited]

A list of available types.

Definition at line 53 of file Factory.h.

PlotterFactory * s_instance = 0 [static, private]

The pointer to the singleton object.

Definition at line 30 of file PlotterFactory.h.

Referenced by PlotterFactory::instance().


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

Generated for HippoDraw Class Library by doxygen