CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/EventFilter/SMProxyServer/interface/SMProxyServer.h

Go to the documentation of this file.
00001 // $Id: SMProxyServer.h,v 1.23 2011/03/07 15:41:54 mommsen Exp $
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&); // not implemented
00042     SMProxyServer& operator=(SMProxyServer const&); // not implemented
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 } // namespace smproxy
00149 
00150 #endif // EventFilter_SMProxyServer_SMProxyServer_h
00151 
00152