CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/EventFilter/StorageManager/interface/StorageManager.h

Go to the documentation of this file.
00001 // $Id: StorageManager.h,v 1.61 2011/11/17 17:35:40 mommsen Exp $
00003 
00004 #ifndef EventFilter_StorageManager_StorageManager_h
00005 #define EventFilter_StorageManager_StorageManager_h
00006 
00007 #include <string>
00008 
00009 #include "boost/scoped_ptr.hpp"
00010 
00011 #include "EventFilter/StorageManager/interface/ConsumerUtils.h"
00012 #include "EventFilter/StorageManager/interface/SharedResources.h"
00013 #include "EventFilter/StorageManager/interface/SMWebPageHelper.h"
00014 
00015 #include "xdaq/Application.h"
00016 #include "xgi/exception/Exception.h"
00017 #include "xoap/MessageReference.h"
00018 
00019 
00020 namespace toolbox { 
00021   namespace mem {
00022     class Reference;
00023   }
00024 }
00025 
00026 namespace xgi {
00027   class Input;
00028   class Output;
00029 }
00030 
00031 namespace stor {
00032 
00033   class DiskWriter;
00034   class DQMEventProcessor;
00035   class FragmentProcessor;
00036 
00037 
00046   class StorageManager: public xdaq::Application
00047   {
00048 
00049   public:
00050   
00051     StorageManager( xdaq::ApplicationStub* s );
00052 
00053 
00054   private:  
00055   
00056     StorageManager(StorageManager const&); // not implemented
00057     StorageManager& operator=(StorageManager const&); // not implemented
00058 
00062     void bindI2OCallbacks();
00063 
00067     void receiveRegistryMessage(toolbox::mem::Reference *ref);
00068 
00072     void receiveDataMessage(toolbox::mem::Reference *ref);
00073 
00077     void receiveErrorDataMessage(toolbox::mem::Reference *ref);
00078 
00082     void receiveDQMMessage(toolbox::mem::Reference *ref);
00083 
00087     void receiveEndOfLumiSectionMessage(toolbox::mem::Reference *ref);
00088 
00092     void bindStateMachineCallbacks();
00093 
00098     xoap::MessageReference handleFSMSoapMessage( xoap::MessageReference )
00099       throw( xoap::exception::Exception );
00100 
00101 
00105     void bindWebInterfaceCallbacks();
00106 
00110     void css(xgi::Input *in, xgi::Output *out)
00111       throw (xgi::exception::Exception);
00112 
00116     void defaultWebPage(xgi::Input *in, xgi::Output *out)
00117       throw (xgi::exception::Exception);
00118 
00122     void inputWebPage(xgi::Input *in, xgi::Output *out)
00123       throw (xgi::exception::Exception);
00124 
00128     void storedDataWebPage(xgi::Input *in, xgi::Output *out)
00129       throw (xgi::exception::Exception);
00130 
00135     void fileStatisticsWebPage(xgi::Input *in, xgi::Output *out)
00136       throw (xgi::exception::Exception);
00137 
00142     void rbsenderWebPage(xgi::Input *in, xgi::Output *out)
00143       throw (xgi::exception::Exception);
00144 
00149     void rbsenderDetailWebPage(xgi::Input *in, xgi::Output *out)
00150       throw (xgi::exception::Exception);
00151 
00155     void consumerStatisticsPage( xgi::Input* in, xgi::Output* out )
00156       throw( xgi::exception::Exception );
00157 
00162     void dqmEventStatisticsWebPage(xgi::Input *in, xgi::Output *out)
00163       throw (xgi::exception::Exception);
00164 
00169     void throughputWebPage(xgi::Input *in, xgi::Output *out)
00170       throw (xgi::exception::Exception);
00171 
00176     void consumerListWebPage(xgi::Input *in, xgi::Output *out)
00177       throw (xgi::exception::Exception);
00178 
00182     void bindConsumerCallbacks();
00183 
00187     void processConsumerRegistrationRequest( xgi::Input* in, xgi::Output* out )
00188       throw( xgi::exception::Exception );
00189 
00193     void processConsumerHeaderRequest( xgi::Input* in, xgi::Output* out )
00194       throw( xgi::exception::Exception );
00195 
00199     void processConsumerEventRequest( xgi::Input* in, xgi::Output* out )
00200       throw( xgi::exception::Exception );
00201  
00205     void processDQMConsumerRegistrationRequest( xgi::Input* in, xgi::Output* out )
00206       throw( xgi::exception::Exception );
00207 
00211     void processDQMConsumerEventRequest( xgi::Input* in, xgi::Output* out )
00212       throw( xgi::exception::Exception );
00213 
00217     void initializeSharedResources();
00218 
00222     void startWorkerThreads();
00223 
00224     SharedResourcesPtr sharedResources_;
00225 
00226     boost::scoped_ptr<FragmentProcessor> fragmentProcessor_;
00227     boost::scoped_ptr<DiskWriter> diskWriter_;
00228     boost::scoped_ptr<DQMEventProcessor> dqmEventProcessor_;
00229 
00230     typedef ConsumerUtils<Configuration,EventQueueCollection> ConsumerUtils_t;
00231     boost::scoped_ptr<ConsumerUtils_t> consumerUtils_;
00232     boost::scoped_ptr<SMWebPageHelper> smWebPageHelper_;
00233 
00234   };
00235 
00236 } // namespace stor
00237 
00238 #endif // EventFilter_StorageManager_StorageManager_h
00239 
00240