Go to the documentation of this file.00001
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&);
00057 StorageManager& operator=(StorageManager const&);
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 }
00237
00238 #endif // EventFilter_StorageManager_StorageManager_h
00239
00240