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 class ModuleWeb;
00026 class ModuleWebRegistry
00027 {
00028 public:
00029 ModuleWebRegistry(const edm::ParameterSet &);
00030
00031 void registerWeb(std::string &name, ModuleWeb *cl)
00032 {
00033 clm_.insert(std::pair<std::string, ModuleWeb*>(name,cl));
00034
00035
00036 }
00037 void invoke(xgi::Input *, xgi::Output *, const std::string &);
00038 void publish(xdata::InfoSpace *);
00039 void publishToXmas(xdata::InfoSpace *);
00040 bool checkWeb(const std::string &);
00041
00042 private:
00043 typedef std::map<std::string, ModuleWeb*> dct;
00044 typedef dct::iterator idct;
00045 void openBackDoor(const std::string &, unsigned int timeout_sec = 0);
00046 void closeBackDoor(const std::string &);
00047 void clear();
00048 dct clm_;
00049 friend class FUEventProcessor;
00050 };
00051 }
00052 #endif
00053