// SPDX-License-Identifier: BSD-2-Clause /* Copyright (C) 2015 - 2020 Intel Corporation. */ #pragma once #include "Workload.hpp" #include "FunctionCalls.hpp" #include "Allocator.hpp" #include "AllocatorFactory.hpp" #include class ScenarioWorkload : public Workload { public: ScenarioWorkload(VectorIterator *a, VectorIterator *as, VectorIterator *fc); ~ScenarioWorkload(void); double get_time_costs(); const std::vector &get_allocations_info() const { return allocations; } bool run(); memory_operation *get_allocated_memory(); void enable_touch_memory_on_allocation(bool enable) { touch_memory_on_allocation = enable; } void post_allocation_check(const memory_operation &data); private: AllocatorFactory allocator_factory; std::vector allocations; bool touch_memory_on_allocation; VectorIterator *func_calls; VectorIterator *alloc_sizes; VectorIterator *allocators; };