evio  6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IEvioFilter.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_IEVIOFILTER_H
12 #define EVIO_6_0_IEVIOFILTER_H
13 
14 
15 #include <memory>
16 
17 #include "StructureType.h"
18 
19 
20 namespace evio {
21 
22  // forward declaration so we can compile
23  class BaseStructure;
24 
40  class IEvioFilter {
41 
42  public:
54  virtual bool accept(StructureType const & structureType, std::shared_ptr<BaseStructure> structure) = 0;
55  };
56 
57 }
58 
59 
60 #endif //EVIO_6_0_IEVIOFILTER_H
This interface allows applications to create filters so that they only receive certain structures whe...
Definition: IEvioFilter.h:40
virtual bool accept(StructureType const &structureType, std::shared_ptr< BaseStructure > structure)=0
Accept or reject the given structure.
Numerical values associated with evio structure types.
Definition: StructureType.h:34