geopm  3.1.1.dev214+gba4f9f6d
GEOPM - Global Extensible Open Power Manager
RecordFilter.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 - 2024 Intel Corporation
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 #ifndef RECORDFILTER_HPP_INCLUDE
7 #define RECORDFILTER_HPP_INCLUDE
8 
9 #include <vector>
10 #include <memory>
11 
12 namespace geopm
13 {
14  struct record_s;
19  {
20  public:
21  static std::unique_ptr<RecordFilter> make_unique(const std::string &name);
23  RecordFilter() = default;
25  virtual ~RecordFilter() = default;
38  virtual std::vector<record_s> filter(const record_s &record) = 0;
39  };
40 }
41 
42 #endif
Base class for filters that can be applied to ApplicationSampler record streams produced by a single ...
Definition: RecordFilter.hpp:19
virtual ~RecordFilter()=default
Default destructor for pure virtual interface.
virtual std::vector< record_s > filter(const record_s &record)=0
Apply a filter to a stream of records.
static std::unique_ptr< RecordFilter > make_unique(const std::string &name)
Definition: RecordFilter.cpp:15
RecordFilter()=default
Default constructor for pure virtual interface.
Definition: Accumulator.cpp:12
Record of an application event.
Definition: record.hpp:61