Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes

BinnerAxisFactory Class Reference

A Factory singleton class for creating objects whose class derives from BinnerAxis. More...

#include <BinnerAxisFactory.h>

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

List of all members.

Public Member Functions

void add (BinnerAxis *)
 Adds a prototype object to the list of prototypes.
BinnerAxiscreate (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.
BinnerAxisprototype (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 BinnerAxisFactoryinstance ()
 Returns a pointer to the singleton instance.

Protected Member Functions

 BinnerAxisFactory ()
 A default constructor for prevent creation except by the itself or the derived classes.

Protected Attributes

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

Private Member Functions

 BinnerAxisFactory (const BinnerAxisFactory &)
 A private copy constructor to prevent copying.
void initialize ()
 Initializes the factory with a set of default functions.

Static Private Attributes

static BinnerAxisFactorys_instance = 0
 A pointer to the singleton object.

Detailed Description

A Factory singleton class for creating objects whose class derives from BinnerAxis.

These classes are used by BinsBase objects to calculate a bin index. They differ in how the bin edges are determined. An example would be equal width bins which would be used by a simple histogram. However, the bin sizes do not have to be equal width.

Author:
Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Definition at line 31 of file BinnerAxisFactory.h.


Constructor & Destructor Documentation

BinnerAxisFactory ( const BinnerAxisFactory ) [private]

A private copy constructor to prevent copying.

BinnerAxisFactory ( ) [protected]

A default constructor for prevent creation except by the itself or the derived classes.

Definition at line 29 of file BinnerAxisFactory.cxx.

References BinnerAxisFactory::s_instance.


Member Function Documentation

void add ( BinnerAxis ) [inherited]

Adds a prototype object to the list of prototypes.

BinnerAxis * 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 functions.

Definition at line 42 of file BinnerAxisFactory.cxx.

BinnerAxisFactory * instance ( ) [static]
const std::vector< std::string >& names ( ) const [inherited]

Returns the list of available prototype names.

BinnerAxis * 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 59 of file Factory.h.

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

A list of available types.

Definition at line 54 of file Factory.h.

builddir build BUILD HippoDraw binners BinnerAxisFactory cxx builddir build BUILD HippoDraw binners BinnerAxisFactory cxx builddir build BUILD HippoDraw binners BinnerAxisFactory cxx BinnerAxisFactory * s_instance = 0 [static, private]

A pointer to the singleton object.

Definition at line 37 of file BinnerAxisFactory.h.

Referenced by BinnerAxisFactory::BinnerAxisFactory().


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

Generated for HippoDraw Class Library by doxygen