5 #ifndef _HEBench_Harness_Engine_H_0596d40a3cce4b108a81595c50eb286d
6 #define _HEBench_Harness_Engine_H_0596d40a3cce4b108a81595c50eb286d
13 #include "hebench/modules/general/include/nocopy.h"
14 #include "hebench/modules/logging/include/logging.h"
20 namespace TestHarness {
22 class Engine :
public std::enable_shared_from_this<Engine>
28 IL_DECLARE_CLASS_NAME(
Engine)
31 typedef std::shared_ptr<Engine>
Ptr;
66 const std::vector<hebench::APIBridge::WorkloadParam> &w_params)
const;
127 std::vector<hebench::APIBridge::Handle> m_h_bench_desc;
128 std::weak_ptr<IBenchmark> m_last_benchmark;
131 void init(
const std::vector<std::int8_t> &data);
Specifies a benchmark configuration.
static Engine::Ptr create(const std::vector< std::int8_t > &data)
Creates a new backend engine.
std::string getSecurityName(hebench::APIBridge::Scheme s, hebench::APIBridge::Security sec) const
IBenchmarkDescriptor::DescriptionToken::Ptr describeBenchmark(std::size_t index, const BenchmarkDescription::Configuration &config) const
Describes a benchmark workload that matches the specified description from the benchmarks registered ...
static void completeBenchmarkDescriptor(hebench::TestHarness::BenchmarkDescription::Backend &backend_description, const hebench::APIBridge::BenchmarkDescriptor &completed_descriptor)
Grants a guarded write access to hebench::TestHarness::BenchmarkDescription::Backend::m_descriptor::c...
std::shared_ptr< Engine > Ptr
std::vector< std::vector< hebench::APIBridge::WorkloadParam > > getDefaultWorkloadParams(std::size_t index) const
Retrieves the list of default parameters for a workload as specified by the backend.
std::size_t countBenchmarks() const
Number of benchmarks for which backend is registered to perform.
const hebench::APIBridge::Handle & handle() const
std::string getExtraDescription(hebench::APIBridge::Handle h_bench_desc, const std::vector< hebench::APIBridge::WorkloadParam > &w_params) const
void validateRetCode(hebench::APIBridge::ErrorCode err_code, bool last_error=true) const
std::string getErrorDescription(hebench::APIBridge::ErrorCode err_code) const
std::string getLastErrorDescription() const
std::string getSchemeName(hebench::APIBridge::Scheme s) const
IBenchmark::Ptr createBenchmark(IBenchmarkDescriptor::DescriptionToken::Ptr p_token, hebench::Utilities::TimingReportEx &out_report)
Creates the the benchmark workload represented by the specified token.
std::shared_ptr< DescriptionToken > Ptr
std::shared_ptr< IBenchmark > Ptr
std::int32_t Scheme
Open-ended homomorphic encryption scheme ID.
std::int32_t Security
Open-ended homomorphic encryption scheme security ID.
std::int32_t ErrorCode
Return value for API bridge functions.
Defines a benchmark test.
Structure to contain flexible data.