#include <hebench_engine.h>
Definition at line 22 of file hebench_engine.h.
◆ Ptr
◆ ~Engine()
hebench::TestHarness::Engine::~Engine |
( |
| ) |
|
|
virtual |
◆ completeBenchmarkDescriptor()
Grants a guarded write access to hebench::TestHarness::BenchmarkDescription::Backend::m_descriptor::cat_params
.
- Parameters
-
| backend_description | Backend description to complete. All members of hebench::TestHarness::BenchmarkDescription::Backend::descriptor must be set, except for, perhaps, cat_params which will be overwriten in this call. |
[in] | completed_descriptor | Descriptor from which to copy the cat_params . All other fields must match that of backend_description .descriptor . |
- Exceptions
-
Instance | of std::exception if input and output descriptors are incompatible. |
If both backend descriptors are compatible, this method copies the category parameters from completed_descriptor
to backend_descriptor
.
Definition at line 198 of file hebench_engine.cpp.
◆ countBenchmarks()
std::size_t hebench::TestHarness::Engine::countBenchmarks |
( |
| ) |
const |
|
inline |
Number of benchmarks for which backend is registered to perform.
Definition at line 71 of file hebench_engine.h.
◆ create()
Engine::Ptr hebench::TestHarness::Engine::create |
( |
const std::vector< std::int8_t > & |
data | ) |
|
|
static |
Creates a new backend engine.
- Parameters
-
[in] | data | External data to pass to the backend engine for initialization, if any. Otherwise, empty array. |
- Returns
- A pointer to the engine wrapper.
This method calls APIBridge::initEngine()
passing the specified data to create and initialize the loaded backend engine.
Definition at line 58 of file hebench_engine.cpp.
◆ createBenchmark()
Creates the the benchmark workload represented by the specified token.
- Parameters
-
[in] | p_token | Token of the described benchmark workload as returned by describeBenchmark(). Cannot be null . |
- Returns
- Smart pointer to the created benchmark workload.
- Exceptions
-
std::logic_error | when creating a new benchmark without destroying previously existing benchmark. |
std::invalid_argument | on invalid p_token . |
As long as the returned benchmark exists, this engine cannot be destroyed. This method ensures that only one benchmark from this engine exists at a time.
The returned object is to be used by Test Harness to execute the benchmark.
Definition at line 167 of file hebench_engine.cpp.
◆ describeBenchmark()
Describes a benchmark workload that matches the specified description from the benchmarks registered by the backend.
- Parameters
-
[in] | index | Index of the registered backend benchmark description for which to create a benchmark workload. |
[in] | config | Configuration for the benchmark to describe. See details. |
- Returns
- A token describing the benchmark to be executed given the workload and parameters.
- Exceptions
-
Instance | of std::exception on errors. |
The token returned by this method is to be used in a call to createBenchmark() to instantiate the actual benchmark to run.
The token returned by this method contains the correct full description for the benchmark.
For parameter config
only the workload parameters are required to be correct. The returned token will contain the information passed on the other fields corrected to the number of operation parameters for the workload.
Definition at line 177 of file hebench_engine.cpp.
◆ getDefaultWorkloadParams()
Retrieves the list of default parameters for a workload as specified by the backend.
- Parameters
-
[in] | index | Index of the benchmark to query for default parameters. |
- Returns
- A vector with the list of default arguments for the parameters of the workload. Vector is empty if workload does not support parameters.
Definition at line 215 of file hebench_engine.cpp.
◆ getErrorDescription()
◆ getExtraDescription()
◆ getLastErrorDescription()
std::string hebench::TestHarness::Engine::getLastErrorDescription |
( |
| ) |
const |
◆ getSchemeName()
◆ getSecurityName()
◆ handle()
◆ validateRetCode()
The documentation for this class was generated from the following files: