25 return m_default_params.empty() ? 0 : m_default_params.front().size();
40 if (!m_default_params.empty())
42 if (m_default_params.front().size() != default_params_set.size())
43 throw std::invalid_argument(
"Size of new default set of arguments differs from other existing default sets.");
45 m_default_params.push_back(default_params_set);
55 m_bench_description(bench_desc)
64 if (bench_params.
count > 0)
65 m_bench_params.assign(bench_params.
params, bench_params.
params + bench_params.
count);
70 (void)bench_desc_concrete;
74 std::uint64_t param_position)
82 retval = param_position;
95 std::uint64_t param_position)
105 std::uint64_t param_position)
Top level opaque benchmark class.
static const hebench::APIBridge::DataPack & findDataPack(const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position)
Searches the specified DataPackCollection for the DataPack in the corresponding position.
static std::uint64_t findDataPackIndex(const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position)
Searches the specified DataPackCollection for the DataPack in the corresponding position.
virtual void initialize(const hebench::APIBridge::BenchmarkDescriptor &bench_desc_concrete)
Called by Test Harness with the concrete values for the benchmark description.
BaseBenchmark(BaseEngine &engine, const hebench::APIBridge::BenchmarkDescriptor &bench_desc, const hebench::APIBridge::WorkloadParams &bench_params)
Constructs a new BaseBenchmark object for benchmarking a workload with flexible parameters.
Base class that encapsulates common behavior of backend engines.
void addDefaultParameters(const WorkloadParams::Common &default_params_set)
Adds a new set of default arguments for the parameters for this benchmark's workload.
const hebench::APIBridge::BenchmarkDescriptor & getBenchmarkDescriptor() const
Retrieves the HEBench benchmark descriptor represented by this BenchmarkDescription object.
virtual std::string getBenchmarkDescription(const hebench::APIBridge::WorkloadParams *p_w_params) const
Retrieves human-readable description specific to the represented benchmark.
std::size_t getWorkloadParameterCount() const
Retrieves the number of flexible parameters for this benchmark's workload.
Base wrapper around the flexible workload parameters.
const std::vector< hebench::APIBridge::WorkloadParam > & getParams() const
#define HEBERROR_MSG_CLASS(message)
std::uint64_t count
Number of workload parameters.
DataPack * p_data_packs
Collection of data packs.
std::uint64_t pack_count
Number of data packs in the collection.
WorkloadParam * params
Parameters for the workload.
std::uint64_t param_position
The 0-based position of this parameter in the corresponding function call.
Defines a benchmark test.
Defines a data package for an operation.
Defines a collection of data packs.
Specifies the parameters for a workload.
std::string to_string(const std::string_view &s)
#define HEBENCH_ECODE_CRITICAL_ERROR
Specifies a critical error.