00001 // $Id: DQMHttpSource.h,v 1.13 2011/04/04 16:05:37 mommsen Exp $ 00003 00004 #ifndef StorageManager_DQMHttpSource_h 00005 #define StorageManager_DQMHttpSource_h 00006 00007 #include "DQMServices/Core/interface/DQMStore.h" 00008 #include "EventFilter/StorageManager/interface/DQMEventConsumerRegistrationInfo.h" 00009 #include "EventFilter/StorageManager/interface/EventServerProxy.h" 00010 #include "FWCore/Framework/interface/InputSourceDescription.h" 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "FWCore/Sources/interface/RawInputSource.h" 00014 #include "IOPool/Streamer/interface/DQMEventMessage.h" 00015 00016 #include <boost/thread/mutex.hpp> 00017 00018 #include <memory> 00019 00020 00021 namespace edm 00022 { 00032 class DQMHttpSource : public edm::RawInputSource 00033 { 00034 public: 00035 DQMHttpSource 00036 ( 00037 const edm::ParameterSet&, 00038 const edm::InputSourceDescription& 00039 ); 00040 virtual ~DQMHttpSource() {}; 00041 00042 static void addEventToDQMBackend 00043 ( 00044 DQMStore*, 00045 const DQMEventMsgView&, 00046 const bool overwrite 00047 ); 00048 00049 00050 private: 00051 virtual std::auto_ptr<edm::Event> readOneEvent(); 00052 void initializeDQMStore(); 00053 00054 stor::EventServerProxy<stor::DQMEventConsumerRegistrationInfo> dqmEventServerProxy_; 00055 DQMStore* dqmStore_; 00056 00057 static boost::mutex mutex_; 00058 }; 00059 00060 } // namespace edm 00061 00062 #endif // StorageManager_DQMHttpSource_h 00063 00064