Go to the documentation of this file.00001 #ifndef EVF_MODULE_WEB_REGISTRY_H
00002 #define EVF_MODULE_WEB_REGISTRY_H
00003
00004 #include <string>
00005 #include <map>
00006 #include <list>
00007 #include "xgi/Method.h"
00008 #include "xdata/InfoSpace.h"
00009
00010 namespace edm{
00011 class ParameterSet;
00012 }
00013
00014 namespace xgi{
00015 class Input;
00016 class Output;
00017 }
00018
00019 namespace xdaq{
00020 class Application;
00021 }
00022
00023 namespace evf
00024 {
00025 namespace moduleweb {
00026 class ForkInfoObj;
00027 }
00028 class ModuleWeb;
00029 class ModuleWebRegistry
00030 {
00031 public:
00032 ModuleWebRegistry(const edm::ParameterSet &);
00033
00034 void registerWeb(std::string &name, ModuleWeb *cl)
00035 {
00036 clm_.insert(std::pair<std::string, ModuleWeb*>(name,cl));
00037
00038
00039 }
00040 void invoke(xgi::Input *, xgi::Output *, const std::string &);
00041 void publish(xdata::InfoSpace *);
00042 void publishToXmas(xdata::InfoSpace *);
00043 bool checkWeb(const std::string &);
00044 void publishForkInfo(std::string name, moduleweb::ForkInfoObj *forkInfoObj);
00045
00046 private:
00047 typedef std::map<std::string, ModuleWeb*> dct;
00048 typedef dct::iterator idct;
00049 void openBackDoor(const std::string &, unsigned int timeout_sec = 0, bool * started = 0);
00050 void closeBackDoor(const std::string &);
00051 void clear();
00052 dct clm_;
00053 friend class FWEPWrapper;
00054 };
00055 }
00056 #endif
00057