evio  6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IEvioListener.h
Go to the documentation of this file.
1 //
2 // Copyright 2020, Jefferson Science Associates, LLC.
3 // Subject to the terms in the LICENSE file found in the top-level directory.
4 //
5 // EPSCI Group
6 // Thomas Jefferson National Accelerator Facility
7 // 12000, Jefferson Ave, Newport News, VA 23606
8 // (757)-269-7100
9 
10 
11 #ifndef EVIO_6_0_IEVIOLISTENER_H
12 #define EVIO_6_0_IEVIOLISTENER_H
13 
14 
15 #include <memory>
16 
17 
18 namespace evio {
19 
20  // forward declaration so we can compile
21  class BaseStructure;
22 
29  class IEvioListener {
30 
31  public:
32 
42  virtual void gotStructure(std::shared_ptr<BaseStructure> topStructure,
43  std::shared_ptr<BaseStructure> structure) = 0;
44 
49  virtual void startEventParse(std::shared_ptr<BaseStructure> structure) = 0;
50 
55  virtual void endEventParse(std::shared_ptr<BaseStructure> structure) = 0;
56 
57  };
58 
59 }
60 
61 #endif //EVIO_6_0_IEVIOLISTENER_H
virtual void gotStructure(std::shared_ptr< BaseStructure > topStructure, std::shared_ptr< BaseStructure > structure)=0
Called after a structure is read in while parsing or searching an event and any filter has accepted i...
virtual void endEventParse(std::shared_ptr< BaseStructure > structure)=0
Done parsing a new event structure.
virtual void startEventParse(std::shared_ptr< BaseStructure > structure)=0
Starting to parse a new event structure.
In SAX like behavior, implementors will listen for structures encountered when an event is parsed...
Definition: IEvioListener.h:29