CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/EventFilter/StorageManager/interface/DQMEventProcessor.h

Go to the documentation of this file.
00001 // $Id: DQMEventProcessor.h,v 1.9 2012/04/20 10:48:18 mommsen Exp $
00003 
00004 #ifndef EventFilter_StorageManager_DQMEventProcessor_h
00005 #define EventFilter_StorageManager_DQMEventProcessor_h
00006 
00007 #include "toolbox/lang/Class.h"
00008 #include "toolbox/task/WaitingWorkLoop.h"
00009 #include "xdaq/Application.h"
00010 
00011 #include <boost/shared_ptr.hpp>
00012 
00013 #include "EventFilter/StorageManager/interface/AlarmHandler.h"
00014 #include "EventFilter/StorageManager/interface/DQMEventStore.h"
00015 #include "EventFilter/StorageManager/interface/I2OChain.h"
00016 #include "EventFilter/StorageManager/interface/SharedResources.h"
00017 
00018 
00019 namespace stor {
00020 
00021   class QueueID;
00022   class StatisticsReporter;
00023 
00024 
00039   class DQMEventProcessor : public toolbox::lang::Class
00040   {
00041   public:
00042     
00043     DQMEventProcessor(xdaq::Application*, SharedResourcesPtr sr);
00044     
00045     ~DQMEventProcessor();
00046 
00053     bool processDQMEvents(toolbox::task::WorkLoop*);
00054 
00058     void startWorkLoop(std::string workloopName);
00059 
00060 
00061   private:
00062 
00063     //Prevent copying of the DQMEventProcessor
00064     DQMEventProcessor(DQMEventProcessor const&);
00065     DQMEventProcessor& operator=(DQMEventProcessor const&);
00066 
00071     void processNextDQMEvent();
00072 
00076     void endOfRun();
00077  
00078 
00079     xdaq::Application* app_;
00080     SharedResourcesPtr sharedResources_;
00081 
00082     boost::posix_time::time_duration timeout_;
00083     bool actionIsActive_;
00084     uint32_t latestLumiSection_;
00085     unsigned int discardDQMUpdatesForOlderLS_;
00086 
00087     toolbox::task::WorkLoop* processWL_;      
00088 
00089     DQMEventStore<I2OChain,DataSenderMonitorCollection,AlarmHandler> dqmEventStore_;
00090 
00091   };
00092   
00093 } // namespace stor
00094 
00095 #endif // EventFilter_StorageManager_DQMEventProcessor_h 
00096 
00097