CMS 3D CMS Logo

List of all members | Public Types | Static Public Member Functions | Static Protected Member Functions
ComponentFactoryByName< B > Class Template Reference

#include <ComponentFactoryByName.h>

Public Types

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

Static Public Member Functions

static B * getBuilder (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 30 of file ComponentFactoryByName.h.

Member Function Documentation

template<class B >
static B* ComponentFactoryByName< B >::getBuilder ( const std::string &  name)
inlinestatic

Definition at line 13 of file ComponentFactoryByName.h.

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

14  {
15  if (myMap().size() == 0) {
16  throw cms::Exception("SimG4CoreNotification", " ComponentFactoryByName::getBuilder: No Builder registered to the Factory.");
17  }
18  if (myMap().find(name) == myMap().end()) {
19  throw cms::Exception("SimG4CoreNotification", " ComponentFactoryByName::getBuilder: The Component "+name+" is not registered to the Factory.");
20  }
21  return (myMap()[name]);
22  }
size
Write out results.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
static BuilderMapType & myMap()
#define end
Definition: vmac.h:39
template<class B >
static BuilderMapType& ComponentFactoryByName< B >::myMap ( )
inlinestaticprotected

Definition at line 32 of file ComponentFactoryByName.h.

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

33  {
34  static BuilderMapType me_;
35  return me_;
36  }
std::map< std::string, B * > BuilderMapType
template<class B >
static void ComponentFactoryByName< B >::setBuilder ( B *  in,
const std::string &  name 
)
inlinestatic

Definition at line 23 of file ComponentFactoryByName.h.

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

24  {
25  if (name.empty()) {
26  throw cms::Exception("SimG4CoreNotification", " ComponentFactoryByName::setBuilder: The registration of Components without name is not allowed.");
27  }
28  myMap()[name] = in;
29  }
static BuilderMapType & myMap()