HEBench
hebench_benchmark_latency.h
Go to the documentation of this file.
1 
2 // Copyright (C) 2021 Intel Corporation
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #ifndef _HEBench_Harness_Benchmark_Latency_H_0596d40a3cce4b108a81595c50eb286d
6 #define _HEBench_Harness_Benchmark_Latency_H_0596d40a3cce4b108a81595c50eb286d
7 
8 #include <memory>
9 #include <string>
10 #include <vector>
11 
12 #include "hebench/modules/general/include/nocopy.h"
13 #include "hebench/modules/logging/include/logging.h"
14 
16 
17 namespace hebench {
18 namespace TestHarness {
19 
20 class Engine;
21 
30 {
31 public:
32  DISABLE_COPY(BenchmarkLatency)
33  DISABLE_MOVE(BenchmarkLatency)
34 private:
35  IL_DECLARE_CLASS_NAME(BenchmarkLatency)
36 
37 public:
38  typedef std::shared_ptr<BenchmarkLatency> Ptr;
39 
40  ~BenchmarkLatency() override;
41 
58  bool run(hebench::Utilities::TimingReportEx &out_report, IBenchmark::RunConfig &config) override;
59 
60 protected:
61  BenchmarkLatency(std::shared_ptr<Engine> p_engine,
62  const IBenchmarkDescriptor::DescriptionToken &description_token);
63 
64 private:
65  bool run(hebench::Utilities::TimingReportEx &out_report,
66  IDataLoader::Ptr p_dataset,
67  IBenchmark::RunConfig &run_config);
68 };
69 
70 } // namespace TestHarness
71 } // namespace hebench
72 
73 #endif // defined _HEBench_Harness_Benchmark_Latency_H_0596d40a3cce4b108a81595c50eb286d
Base class for workload benchmarks in the latency category.
std::shared_ptr< BenchmarkLatency > Ptr
BenchmarkLatency(std::shared_ptr< Engine > p_engine, const IBenchmarkDescriptor::DescriptionToken &description_token)
bool run(hebench::Utilities::TimingReportEx &out_report, IBenchmark::RunConfig &config) override
Executes the benchmark latency test.
Token returned by a successful call to IBenchmarkDescriptor::matchBenchmarkDescriptor().
Provides configuration to and retrieves data from a benchmark run.
std::shared_ptr< IDataLoader > Ptr