CMS 3D CMS Logo

PluginFactoryManager.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: PluginManager
4 // Class : PluginFactoryManager
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: Chris Jones
10 // Created: Wed Apr 4 13:09:31 EDT 2007
11 //
12 
13 // system include files
14 
15 // user include files
17 
18 namespace edmplugin{
19 //
20 // constants, enums and typedefs
21 //
22 
23 //
24 // static data member definitions
25 //
26 
27 //
28 // constructors and destructor
29 //
31 {
32 }
33 
34 // PluginFactoryManager::PluginFactoryManager(const PluginFactoryManager& rhs)
35 // {
36 // // do actual copying here;
37 // }
38 
40 {
41 }
42 
43 //
44 // assignment operators
45 //
46 // const PluginFactoryManager& PluginFactoryManager::operator=(const PluginFactoryManager& rhs)
47 // {
48 // //An exception safe implementation is
49 // PluginFactoryManager temp(rhs);
50 // swap(rhs);
51 //
52 // return *this;
53 // }
54 
55 //
56 // member functions
57 //
58 void
60 {
61  factories_.push_back(iFactory);
62  newFactory_(iFactory);
63 }
64 
65 //
66 // const member functions
67 //
70 {
71  return factories_.begin();
72 }
73 
76 {
77  return factories_.end();
78 }
79 
80 //
81 // static member functions
82 //
85 {
86  [[cms::thread_safe]] static PluginFactoryManager s_instance;
87  return &s_instance;
88 }
89 }
edm::signalslot::Signal< void(const PluginFactoryBase *)> newFactory_
void addFactory(const PluginFactoryBase *)
std::vector< const PluginFactoryBase * > factories_
std::vector< const PluginFactoryBase * >::const_iterator const_iterator
static PluginFactoryManager * get()