RangeSetHandler.h
Go to the documentation of this file.
1 #ifndef art_Framework_Principal_RangeSetHandler_h
2 #define art_Framework_Principal_RangeSetHandler_h
3 // vim: set sw=2 expandtab :
4 
6 
7 namespace art {
8 
9  class EventID;
10 
12 
13  public: // TYPES
14  enum class HandlerType { Open = 1, Closed = 2 };
15 
16  public: // MEMBER FUNCTIONS -- Special Member Functions
17  virtual ~RangeSetHandler() noexcept;
18 
19  public: // MEMBER FUNCTIONS -- API for the user
20  HandlerType type() const;
21  RangeSet seenRanges() const;
22  void update(EventID const& id, bool const lastInSubRun);
23  void flushRanges();
24  void maybeSplitRange();
25  void rebase();
26  RangeSetHandler* clone() const;
27 
28  private: // MEMBER FUNCTIONS -- API subclasses are required to provide
29  virtual HandlerType do_type() const = 0;
30  virtual RangeSet do_getSeenRanges() const = 0;
31  virtual void do_update(EventID const&, bool lastInSubRun) = 0;
32  virtual void do_flushRanges() = 0;
33  virtual void do_maybeSplitRange() = 0;
34  virtual void do_rebase() = 0;
35  virtual RangeSetHandler* do_clone() const = 0;
36  };
37 
38 } // namespace art
39 
40 #endif /* art_Framework_Principal_RangeSetHandler_h */
41 
42 // Local variables:
43 // mode: c++
44 // End:
HandlerType type() const
virtual RangeSetHandler * do_clone() const =0
virtual HandlerType do_type() const =0
void update(EventID const &id, bool const lastInSubRun)
RangeSet seenRanges() const
virtual void do_maybeSplitRange()=0
RangeSetHandler * clone() const
virtual ~RangeSetHandler() noexcept
virtual void do_update(EventID const &, bool lastInSubRun)=0
virtual void do_rebase()=0
virtual void do_flushRanges()=0
virtual RangeSet do_getSeenRanges() const =0