// Copyright © Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include #include #include #include #include #include #include "engines/plans/PlanInterface.hpp" struct HipdnnEnginePluginExecutionContext { public: virtual ~HipdnnEnginePluginExecutionContext() = default; bool hasValidPlan() const { return _plan != nullptr; } void setPlan(std::unique_ptr plan) { _plan = std::move(plan); } virtual hipblaslt_plugin::IPlan& plan() const { if(!hasValidPlan()) { throw hipdnn_plugin_sdk::HipdnnPluginException( HIPDNN_PLUGIN_STATUS_INTERNAL_ERROR, "Cannot get plan in execution context, its not set"); } return *_plan; } private: std::unique_ptr _plan; };