Go to the documentation of this file.00001
00003
00004 #ifndef EventFilter_SMProxyServer_SMProxyServer_h
00005 #define EventFilter_SMProxyServer_SMProxyServer_h
00006
00007 #include "EventFilter/SMProxyServer/interface/StateMachine.h"
00008 #include "EventFilter/SMProxyServer/interface/SMPSWebPageHelper.h"
00009 #include "EventFilter/StorageManager/interface/ConsumerUtils.h"
00010
00011 #include "xdaq/Application.h"
00012 #include "xgi/exception/Exception.h"
00013 #include "xoap/MessageReference.h"
00014
00015
00016 namespace xgi {
00017 class Input;
00018 class Output;
00019 }
00020
00021 namespace smproxy {
00022
00031 class SMProxyServer: public xdaq::Application
00032 {
00033
00034 public:
00035
00036 SMProxyServer( xdaq::ApplicationStub* s );
00037
00038
00039 private:
00040
00041 SMProxyServer(SMProxyServer const&);
00042 SMProxyServer& operator=(SMProxyServer const&);
00043
00047 void bindStateMachineCallbacks();
00048
00053 xoap::MessageReference handleFSMSoapMessage( xoap::MessageReference )
00054 throw( xoap::exception::Exception );
00055
00056
00060 void bindWebInterfaceCallbacks();
00061
00065 void css(xgi::Input *in, xgi::Output *out)
00066 throw (xgi::exception::Exception);
00067
00071 void defaultWebPage(xgi::Input *in, xgi::Output *out)
00072 throw (xgi::exception::Exception);
00073
00077 void dataRetrieverWebPage( xgi::Input* in, xgi::Output* out )
00078 throw( xgi::exception::Exception );
00079
00083 void consumerStatisticsWebPage( xgi::Input* in, xgi::Output* out )
00084 throw( xgi::exception::Exception );
00085
00090 void dqmEventStatisticsWebPage(xgi::Input *in, xgi::Output *out)
00091 throw (xgi::exception::Exception);
00092
00096 void bindConsumerCallbacks();
00097
00101 void processConsumerRegistrationRequest( xgi::Input* in, xgi::Output* out )
00102 throw( xgi::exception::Exception );
00103
00107 void processConsumerHeaderRequest( xgi::Input* in, xgi::Output* out )
00108 throw( xgi::exception::Exception );
00109
00113 void processConsumerEventRequest( xgi::Input* in, xgi::Output* out )
00114 throw( xgi::exception::Exception );
00115
00119 void processDQMConsumerRegistrationRequest( xgi::Input* in, xgi::Output* out )
00120 throw( xgi::exception::Exception );
00121
00125 void processDQMConsumerEventRequest( xgi::Input* in, xgi::Output* out )
00126 throw( xgi::exception::Exception );
00127
00131 void initializeSharedResources();
00132
00136 void startWorkerThreads();
00137
00138 StateMachinePtr stateMachine_;
00139
00140 typedef stor::ConsumerUtils<Configuration,EventQueueCollection> ConsumerUtils_t;
00141 boost::scoped_ptr<ConsumerUtils_t> consumerUtils_;
00142
00143
00144 boost::scoped_ptr<SMPSWebPageHelper> smpsWebPageHelper_;
00145
00146 };
00147
00148 }
00149
00150 #endif // EventFilter_SMProxyServer_SMProxyServer_h
00151
00152