|
Gaudi Framework, version v21r4 |
| Home | Generated: 7 Sep 2009 |
00001 //==================================================================== 00002 // EventSelectorDataStream.h 00003 //-------------------------------------------------------------------- 00004 // 00005 // Package : EventSelectorDataStream (LHCb Event Selector Package) 00006 // 00007 // Author : M.Frank 00008 // Created : 4/10/00 00009 // 00010 //==================================================================== 00011 #ifndef GAUDIKERNEL_EVENTSELECTORDATASTREAM_H 00012 #define GAUDIKERNEL_EVENTSELECTORDATASTREAM_H 1 00013 00014 // Include files 00015 #include "GaudiKernel/IEvtSelector.h" 00016 #include "GaudiKernel/Property.h" 00017 00018 // STL include files 00019 #include <vector> 00020 #include <iostream> 00021 00022 // Forward declarations 00023 class MsgStream; 00024 class ISvcLocator; 00025 class EventSelectorDataStream; 00026 00041 class GAUDI_API EventSelectorDataStream: public implements1<IInterface> { 00043 friend MsgStream& operator<<(MsgStream& s, const EventSelectorDataStream& obj); 00045 friend std::ostream& operator<<(std::ostream& s, const EventSelectorDataStream& obj); 00046 public: 00047 typedef std::vector< StringProperty > Properties; 00048 protected: 00050 std::string m_name; 00052 std::string m_definition; 00054 std::string m_criteria; 00056 std::string m_selectorType; 00058 IEvtSelector* m_pSelector; 00060 ISvcLocator* m_pSvcLocator; 00062 Properties* m_properties; 00064 bool m_initialized; 00066 virtual ~EventSelectorDataStream(); 00067 public: 00069 EventSelectorDataStream(const std::string& nam, const std::string& def, ISvcLocator* svcloc); 00071 virtual void setSelector(IEvtSelector* pSelector); 00073 virtual StatusCode initialize(); 00075 virtual StatusCode finalize(); 00077 StringProperty* property(const std::string& nam); 00079 const StringProperty* property(const std::string& nam) const; 00081 const Properties& properties() { 00082 return *m_properties; 00083 } 00085 const std::string& name() const { 00086 return m_name; 00087 } 00089 const std::string& criteria() const { 00090 return m_criteria; 00091 } 00093 const std::string& selectorType() const { 00094 return m_selectorType; 00095 } 00097 const std::string& definition() const { 00098 return m_definition; 00099 } 00101 IEvtSelector* selector() const { 00102 return m_pSelector; 00103 } 00105 bool isInitialized() const { 00106 return m_initialized; 00107 } 00108 }; 00109 00111 GAUDI_API MsgStream& operator<<(MsgStream& s, const EventSelectorDataStream& obj); 00113 GAUDI_API std::ostream& operator<<(std::ostream& s, const EventSelectorDataStream& obj); 00114 00115 #endif // GAUDIKERNEL_EVENTSELECTORDATASTREAM_H