00001 //==================================================================== 00002 // NTuple name space: Selector class definition 00003 //-------------------------------------------------------------------- 00004 // 00005 // Package : Gaudi/NTupleSvc ( The LHCb Offline System) 00006 // Author : M.Frank 00007 // 00008 // +---------+----------------------------------------------+--------+ 00009 // | Date | Comment | Who | 00010 // +---------+----------------------------------------------+--------+ 00011 // | 10/10/00| Initial version. | MF | 00012 // +---------+----------------------------------------------+--------+ 00013 //==================================================================== 00014 #ifndef GAUDI_NTUPLESVC_SELECTOR_H 00015 #define GAUDI_NTUPLESVC_SELECTOR_H 1 00016 00017 // Frameowk include files 00018 #include "GaudiKernel/SelectStatement.h" 00019 00020 // Forward declarations 00021 namespace NTuple { 00022 class Tuple; 00023 } 00024 00025 namespace NTuple { 00026 00029 class Selector : public SelectStatement { 00030 protected: 00032 IInterface* m_parent; 00034 bool m_firstCall; 00036 StatusCode m_status; 00037 public: 00039 Selector(IInterface* svc) : m_parent(svc), m_firstCall(true) 00040 { 00041 } 00043 virtual ~Selector() { 00044 } 00046 bool firstCall() const { 00047 return m_firstCall; 00048 } 00050 StatusCode initResult() const { 00051 return m_status; 00052 } 00054 virtual bool operator()(void* nt); 00056 virtual bool operator()(NTuple::Tuple* nt); 00058 virtual StatusCode initialize(NTuple::Tuple* nt); 00059 }; 00060 } 00061 #endif // GAUDI_NTUPLESVC_SELECTOR_H