PlotterFactory Class Reference

#include <PlotterFactory.h>

Inheritance diagram for PlotterFactory:

Inheritance graph
Factory\< PlotterBase \>Factory
[legend]
Collaboration diagram for PlotterFactory:

Collaboration graph
Factory\< PlotterBase \>Factory
[legend]
List of all members.

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.

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.


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 CutController::createCut(), PlotterBaseXML::createPlotter(), and DisplayController::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