Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes | List of all members
BinsFactory Class Reference

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

#include <BinsFactory.h>

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

Public Member Functions

void add (BinsBase *)
 Adds a prototype object to the list of prototypes. More...
 
BinsBasecreate (const std::string &name)
 Creates a new object from a prototype named name. More...
 
bool exists (const std::string &name) const
 Returns true if prototype with name name exists in the factory, otherwise returns false. More...
 
const std::vector< std::string > & names () const
 Returns the list of available prototype names. More...
 
BinsBaseprototype (const std::string &name) const
 Returns a pointer to a prototype with name name. More...
 
void remove (const std::string &name)
 Removes the named prototype object from the list of prototypes. More...
 

Static Public Member Functions

static BinsFactoryinstance ()
 Returns a pointer to the singleton instance. More...
 

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Static Private Attributes

static BinsFactorys_instance = 0
 A pointer to the singleton object. More...
 

Detailed Description

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

These classes are used by BinningProjector objects to accumulate data into bins. They differ in how they create overview_projectedvalue objects. Some may take the accumulated total as the value while other may take the mean of the accumulation.

Author
Paul F. Kunz Paul_.nosp@m.Kunz.nosp@m.@slac.nosp@m..sta.nosp@m.nford.nosp@m..edu

Definition at line 31 of file BinsFactory.h.

Constructor & Destructor Documentation

◆ BinsFactory() [1/2]

BinsFactory ( const BinsFactory )
private

A private copy constructor to prevent copying.

◆ BinsFactory() [2/2]

BinsFactory ( )
protected

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

Definition at line 29 of file BinsFactory.cxx.

Referenced by BinsFactory::instance().

Member Function Documentation

◆ add()

void add ( BinsBase obj)
inherited

Adds a prototype object to the list of prototypes.

Definition at line 116 of file Factory.h.

Referenced by BinsFactory::initialize().

◆ create()

BinsBase * 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.

Definition at line 160 of file Factory.h.

◆ exists()

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

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

Definition at line 136 of file Factory.h.

◆ initialize()

void initialize ( )
private

Initializes the factory with a set of default functions.

Definition at line 42 of file BinsFactory.cxx.

References Factory< BinsBase >::add().

Referenced by BinsFactory::instance().

◆ instance()

BinsFactory * instance ( )
static

◆ names()

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

Returns the list of available prototype names.

Definition at line 170 of file Factory.h.

◆ prototype()

BinsBase * 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.

Definition at line 148 of file Factory.h.

◆ remove()

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

Removes the named prototype object from the list of prototypes.

Definition at line 125 of file Factory.h.

Member Data Documentation

◆ m_names

std::vector< std::string > m_names
mutableprotectedinherited

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.

◆ m_types

std::map< std::string, BinsBase * > m_types
protectedinherited

A list of available types.

Definition at line 53 of file Factory.h.

◆ s_instance

BinsFactory * s_instance = 0
staticprivate

A pointer to the singleton object.

Definition at line 37 of file BinsFactory.h.

Referenced by BinsFactory::instance().


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

Generated for HippoDraw Class Library by doxygen