The Gaudi Framework  v33r0 (d5ea422b)
IEvtSelector.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_IEVTSELECTOR_H
12 #define GAUDIKERNEL_IEVTSELECTOR_H 1
13 
14 // Include files
15 #include "GaudiKernel/IInterface.h"
17 #include "GaudiKernel/StatusCode.h"
18 #include <string>
19 
28 class GAUDI_API IEvtSelector : virtual public IInterface {
29 public:
32 
33  class Context {
34  public:
35  virtual ~Context() = default;
36  virtual void* identifier() const = 0;
37  };
38 
44  virtual StatusCode createContext( Context*& c ) const = 0;
45 
53  virtual StatusCode next( Context& c ) const = 0;
54 
60  virtual StatusCode next( Context& c, int jump ) const = 0;
61 
68  virtual StatusCode previous( Context& c ) const = 0;
69 
75  virtual StatusCode previous( Context& c, int jump ) const = 0;
76 
80  virtual StatusCode last( Context& refContext ) const = 0;
81 
87  virtual StatusCode rewind( Context& c ) const = 0;
88 
95  virtual StatusCode createAddress( const Context& c, IOpaqueAddress*& iop ) const = 0;
96 
101  virtual StatusCode releaseContext( Context*& ) const = 0;
102 
109  virtual StatusCode resetCriteria( const std::string& cr, Context& c ) const = 0;
110 };
111 
112 #endif // GAUDIKERNEL_IEVTSELECTOR_H
The Event Selector Interface.
Definition: IEvtSelector.h:28
STL class.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
Definition of the basic interface.
Definition: IInterface.h:254
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:81