00001 // $Id: EventConsumerSelector.h,v 1.9 2011/03/07 15:31:31 mommsen Exp $ 00003 00004 #ifndef EventFilter_StorageManager_EventConsumerSelector_h 00005 #define EventFilter_StorageManager_EventConsumerSelector_h 00006 00007 #include <boost/shared_ptr.hpp> 00008 00009 #include "EventFilter/StorageManager/interface/EventConsumerRegistrationInfo.h" 00010 #include "EventFilter/StorageManager/interface/I2OChain.h" 00011 #include "EventFilter/StorageManager/interface/TriggerSelector.h" 00012 #include "IOPool/Streamer/interface/InitMessage.h" 00013 00014 namespace stor { 00015 00025 class EventConsumerSelector 00026 { 00027 00028 public: 00029 00034 EventConsumerSelector( const EventConsRegPtr registrationInfo ): 00035 initialized_( false ), 00036 outputModuleId_( 0 ), 00037 registrationInfo_( registrationInfo ), 00038 acceptedEvents_( 0 ) 00039 {} 00040 00044 ~EventConsumerSelector() {} 00045 00051 void initialize( const InitMsgView& ); 00052 00057 bool acceptEvent( const I2OChain& ); 00058 00062 QueueID const queueId() const { return registrationInfo_->queueId(); } 00063 00067 bool isInitialized() const { return initialized_; } 00068 00072 bool operator<(const EventConsumerSelector& other) const; 00073 00074 private: 00075 00076 bool initialized_; 00077 unsigned int outputModuleId_; 00078 const EventConsRegPtr registrationInfo_; 00079 TriggerSelectorPtr eventSelector_; 00080 unsigned long acceptedEvents_; 00081 00082 }; 00083 00084 } // namespace stor 00085 00086 #endif // EventFilter_StorageManager_EventConsumerSelector_h 00087 00088