Go to the documentation of this file.00001 #ifndef Framework_WorkerRegistry_h
00002 #define Framework_WorkerRegistry_h
00003
00012 #include "boost/shared_ptr.hpp"
00013 #include "boost/utility.hpp"
00014
00015 #include <map>
00016 #include <string>
00017
00018
00019 namespace edm {
00020
00021 class Worker;
00022 class ActivityRegistry;
00023 struct WorkerParams;
00024
00033 class WorkerRegistry : private boost::noncopyable {
00034
00035 public:
00036
00037 explicit WorkerRegistry(boost::shared_ptr<ActivityRegistry> areg);
00038 ~WorkerRegistry();
00039
00041
00044 Worker* getWorker(WorkerParams const& p, std::string const& moduleLabel);
00045 void clear();
00046
00047 private:
00049 typedef std::map<std::string, boost::shared_ptr<Worker> > WorkerMap;
00050
00052 WorkerMap m_workerMap;
00053 boost::shared_ptr<ActivityRegistry> actReg_;
00054
00055 };
00056
00057
00058 }
00059
00060
00061 #endif