A Factory singleton class for creating objects whose class derives from BinsBase. More...
#include <BinsFactory.h>
Public Member Functions | |
void | add (BinsBase *) |
Adds a prototype object to the list of prototypes. | |
BinsBase * | create (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. | |
BinsBase * | prototype (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 BinsFactory * | instance () |
Returns a pointer to the singleton instance. | |
Protected Member Functions | |
BinsFactory () | |
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, BinsBase * > | m_types |
A list of available types. | |
Private Member Functions | |
BinsFactory (const BinsFactory &) | |
A private copy constructor to prevent copying. | |
void | initialize () |
Initializes the factory with a set of default functions. | |
Static Private Attributes | |
static BinsFactory * | s_instance = 0 |
A pointer to the singleton object. |
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 Projected Value objects. Some may take the accumulated total as the value while other may take the mean of the accumulation.
Definition at line 31 of file BinsFactory.h.
BinsFactory | ( | const BinsFactory & | ) | [private] |
A private copy constructor to prevent copying.
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().
Adds a prototype object to the list of prototypes.
Referenced by BinsFactory::initialize().
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 BinsFactory.cxx.
References Factory< BinsBase >::add().
Referenced by BinsFactory::instance().
BinsFactory * instance | ( | ) | [static] |
Returns a pointer to the singleton instance.
Definition at line 33 of file BinsFactory.cxx.
References BinsFactory::BinsFactory(), BinsFactory::initialize(), and BinsFactory::s_instance.
Referenced by BinsBaseXML::createObject(), Hist1DProjImp::Hist1DProjImp(), Hist2DProjImp::Hist2DProjImp(), Profile2DProjector::Profile2DProjector(), and ProfileProjector::ProfileProjector().
const std::vector< std::string >& names | ( | ) | const [inherited] |
Returns the list of available prototype names.
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.
std::vector< std::string > m_names [mutable, protected, inherited] |
BinsFactory * s_instance = 0 [static, private] |
A pointer to the singleton object.
Definition at line 37 of file BinsFactory.h.
Referenced by BinsFactory::instance().