| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# EventSelectorDataStream.h

Go to the documentation of this file.

    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 EventSelectorDataStream : virtual public 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   long                    m_refCount;
    00052   std::string             m_name;
    00054   std::string             m_definition;
    00056   std::string             m_criteria;
    00058   std::string             m_selectorType;
    00060   IEvtSelector*           m_pSelector;
    00062   ISvcLocator*            m_pSvcLocator;
    00064   Properties*             m_properties;
    00066   bool                    m_initialized;
    00068   virtual ~EventSelectorDataStream();
    00069 public:
    00071   EventSelectorDataStream(const std::string& nam, const std::string& def, ISvcLocator* svcloc);
    00076   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown);
    00078   virtual unsigned long addRef();
    00080   virtual unsigned long release();
    00082   virtual void setSelector(IEvtSelector* pSelector);
    00084   virtual StatusCode initialize();
    00086   virtual StatusCode finalize();
    00088   StringProperty* property(const std::string& nam);
    00090   const StringProperty* property(const std::string& nam)  const;
    00092   const Properties& properties()    {
    00093     return *m_properties;
    00094   }
    00096   const std::string& name()   const   {
    00097     return m_name;
    00098   }
    00100   const std::string& criteria()   const   {
    00101     return m_criteria;
    00102   }
    00104   const std::string& selectorType()   const   {
    00105     return m_selectorType;
    00106   }
    00108   const std::string& definition() const   {
    00109     return m_definition;
    00110   }
    00112   IEvtSelector* selector()  const  {
    00113     return m_pSelector;
    00114   }
    00116   bool isInitialized()  const   {
    00117     return m_initialized;
    00118   }
    00119 };
    00120 #endif  // GAUDIKERNEL_EVENTSELECTORDATASTREAM_H