00001 //$Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IEvtSelector.h,v 1.5 2006/11/30 15:22:07 dquarrie Exp $ 00002 #ifndef GAUDIKERNEL_IEVTSELECTOR_H 00003 #define GAUDIKERNEL_IEVTSELECTOR_H 1 00004 00005 // Include files 00006 00007 //#include "GaudiKernel/Kernel.h" 00008 #include "GaudiKernel/StatusCode.h" 00009 #include "GaudiKernel/IInterface.h" 00010 #include "GaudiKernel/IOpaqueAddress.h" 00011 #include "GaudiKernel/StatusCode.h" 00012 #include <string> 00013 00014 // Declaration of the interface ID ( interface id, major version, minor version) 00015 static const InterfaceID IID_IEvtSelector(41, 1 , 0); 00016 00025 class IEvtSelector : virtual public IInterface { 00026 public: 00027 class Context{ 00028 public: 00029 virtual ~Context() { } 00030 virtual void* identifier() const=0; 00031 }; 00033 static const InterfaceID& interfaceID() { return IID_IEvtSelector;} 00034 00040 virtual StatusCode createContext(Context*& c) const = 0; 00041 00049 virtual StatusCode next(Context& c) const = 0; 00050 00056 virtual StatusCode next(Context& c,int jump) const = 0; 00057 00064 virtual StatusCode previous(Context& c) const = 0; 00065 00071 virtual StatusCode previous(Context& c,int jump) const = 0; 00072 00076 virtual StatusCode last(Context& refContext) const = 0; 00077 00083 virtual StatusCode rewind(Context& c) const = 0; 00084 00091 virtual StatusCode createAddress(const Context& c,IOpaqueAddress*& iop) const = 0; 00092 00097 virtual StatusCode releaseContext(Context*&)const=0; 00098 00105 virtual StatusCode resetCriteria(const std::string& cr,Context& c)const=0; 00106 }; 00107 00108 #endif //GAUDIKERNEL_IEVTSELECTOR_H