CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/EventFilter/StorageManager/interface/ConsumerWebPageHelper.h

Go to the documentation of this file.
00001 // $Id: ConsumerWebPageHelper.h,v 1.2 2011/03/07 15:31:31 mommsen Exp $
00003 
00004 #ifndef EventFilter_StorageManager_ConsumerWebPageHelper_h
00005 #define EventFilter_StorageManager_ConsumerWebPageHelper_h
00006 
00007 #include "xdaq/ApplicationDescriptor.h"
00008 #include "xgi/Output.h"
00009 
00010 #include "EventFilter/StorageManager/interface/DQMConsumerMonitorCollection.h"
00011 #include "EventFilter/StorageManager/interface/DQMEventQueueCollection.h"
00012 #include "EventFilter/StorageManager/interface/EventConsumerMonitorCollection.h"
00013 #include "EventFilter/StorageManager/interface/EventQueueCollection.h"
00014 #include "EventFilter/StorageManager/interface/RegistrationCollection.h"
00015 #include "EventFilter/StorageManager/interface/StatisticsReporter.h"
00016 #include "EventFilter/StorageManager/interface/WebPageHelper.h"
00017 #include "EventFilter/StorageManager/interface/XHTMLMaker.h"
00018 
00019 #include <boost/function.hpp>
00020 
00021 namespace stor
00022 {
00023 
00032   template<typename WebPageHelper_t, typename EventQueueCollection_t, typename StatisticsReporter_t>
00033   class ConsumerWebPageHelper : public WebPageHelper<WebPageHelper_t>
00034   {
00035   public:
00036 
00037     ConsumerWebPageHelper
00038     (
00039       xdaq::ApplicationDescriptor* appDesc,
00040       const std::string& cvsVersion,
00041       WebPageHelper_t* webPageHelper,
00042       void (WebPageHelper_t::*addHyperLinks)(XHTMLMaker&, XHTMLMaker::Node*) const
00043     );
00044 
00048     void consumerStatistics
00049     (
00050       xgi::Output*,
00051       const std::string& externallyVisibleState,
00052       const std::string& innerStateName,
00053       const std::string& errorMsg,
00054       boost::shared_ptr<StatisticsReporter_t>,
00055       RegistrationCollectionPtr,
00056       boost::shared_ptr<EventQueueCollection_t>,
00057       DQMEventQueueCollectionPtr
00058     ) const;
00059     
00060     
00061   private:
00062 
00066     void addDOMforEventConsumers
00067     (
00068       XHTMLMaker& maker,
00069       XHTMLMaker::Node* parent,
00070       RegistrationCollectionPtr,
00071       boost::shared_ptr<EventQueueCollection_t>,
00072       const EventConsumerMonitorCollection&
00073     ) const;
00074 
00078     void addDOMforDQMEventConsumers
00079     (
00080       XHTMLMaker& maker,
00081       XHTMLMaker::Node* parent,
00082       RegistrationCollectionPtr,
00083       DQMEventQueueCollectionPtr,
00084       const DQMConsumerMonitorCollection&
00085     ) const;
00086 
00092     bool addDOMforConsumerName
00093     (
00094       stor::XHTMLMaker& maker,
00095       stor::XHTMLMaker::Node* tableRow,
00096       const std::string& consumerName
00097     ) const;
00098     
00099 
00100     //Prevent copying of the ConsumerWebPageHelper
00101     ConsumerWebPageHelper(ConsumerWebPageHelper const&);
00102     ConsumerWebPageHelper& operator=(ConsumerWebPageHelper const&);
00103 
00104     xdaq::ApplicationDescriptor* appDescriptor_;
00105 
00106   };
00107 
00108 } // namespace stor
00109 
00110 #endif // EventFilter_StorageManager_ConsumerWebPageHelper_h 
00111 
00112