CMS 3D CMS Logo

Public Types | Static Public Member Functions | Static Protected Member Functions

ComponentFactoryByName< B > Class Template Reference

#include <ComponentFactoryByName.h>

List of all members.

Public Types

typedef std::map< std::string,
B * > 
BuilderMapType

Static Public Member Functions

static BgetBuilder (const std::string &name)
static void setBuilder (B *in, const std::string &name)

Static Protected Member Functions

static BuilderMapTypemyMap ()

Detailed Description

template<class B>
class ComponentFactoryByName< B >

Definition at line 10 of file ComponentFactoryByName.h.


Member Typedef Documentation

template<class B >
typedef std::map<std::string,B *> ComponentFactoryByName< B >::BuilderMapType

Definition at line 27 of file ComponentFactoryByName.h.


Member Function Documentation

template<class B >
static B* ComponentFactoryByName< B >::getBuilder ( const std::string &  name) [inline, static]

Definition at line 13 of file ComponentFactoryByName.h.

References end, spr::find(), ComponentFactoryByName< B >::myMap(), and findQualityFiles::size.

    {
        if (myMap().size() == 0)
            throw SimG4Exception("No Builder registered to the Factory.");
        if (myMap().find(name) == myMap().end())
            throw SimG4Exception("The Component "+name+" is not registered to the Factory.");
        return (myMap()[name]);
    }
template<class B >
static BuilderMapType& ComponentFactoryByName< B >::myMap ( ) [inline, static, protected]

Definition at line 29 of file ComponentFactoryByName.h.

Referenced by ComponentFactoryByName< B >::getBuilder(), and ComponentFactoryByName< B >::setBuilder().

    {
        static BuilderMapType me_;
        return me_;
    }
template<class B >
static void ComponentFactoryByName< B >::setBuilder ( B in,
const std::string &  name 
) [inline, static]

Definition at line 21 of file ComponentFactoryByName.h.

References recoMuon::in, ComponentFactoryByName< B >::myMap(), and mergeVDriftHistosByStation::name.

    {
        if (name.empty())
            throw SimG4Exception("The registration of Components without name is not allowed.");
        myMap()[name] = in;
    }