Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PlotterFactory Class Reference

#include <PlotterFactory.h>

Inheritance diagram for PlotterFactory:

Inheritance graph
[legend]
Collaboration diagram for PlotterFactory:

Collaboration graph
[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 22 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 ()
 Returns the list of available prototype names.
PlotterBaseprototype (const std::string &name) const
 Returns a pointer to a prototype with name name.

Static Public Member Functions

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

Protected Member Functions

 Factory ()
 The default constructor.

Protected Attributes

std::vector< std::stringm_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::PlotterFactory const PlotterFactory  )  [private]
 

A private copy constructor to avoid copying.

PlotterFactory::PlotterFactory  )  [private]
 

The default constructor for prevent creation except by itself.

Definition at line 25 of file PlotterFactory.cxx.

Referenced by instance().


Member Function Documentation

void Factory< PlotterBase >::add PlotterBase  )  [inherited]
 

Adds a prototype object to the list of prototypes.

Referenced by initialize().

PlotterBase * Factory< 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 Factory< PlotterBase >::exists const std::string name  )  const [inherited]
 

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

Factory< PlotterBase >::Factory  )  [protected, inherited]
 

The default constructor.

Since this constructor is protected, only derived classes of Factory can be created.

void PlotterFactory::initialize  )  [private]
 

Initializes the factory with a set of default Plotters.

Definition at line 38 of file PlotterFactory.cxx.

References Factory< PlotterBase >::add().

Referenced by instance().

PlotterFactory * PlotterFactory::instance  )  [static]
 

Returns the pointer to the singleton instance.

Definition at line 29 of file PlotterFactory.cxx.

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

Referenced by CutController::createCut(), PlotterBaseXML::createPlotter(), and DisplayController::createPlotter().

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

Returns the list of available prototype names.

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


Member Data Documentation

std::vector< std::string > Factory< PlotterBase >::m_names [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 56 of file Factory.h.

std::map< std::string, PlotterBase * > Factory< PlotterBase >::m_types [protected, inherited]
 

A list of available types.

Definition at line 51 of file Factory.h.

PlotterFactory * PlotterFactory::s_instance = 0 [static, private]
 

The pointer to the singleton object.

Definition at line 23 of file PlotterFactory.cxx.

Referenced by instance().


The documentation for this class was generated from the following files:
Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3