// Copyright © Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include namespace hipblaslt_plugin { class EngineManager; /* * Container class to manage the intantiation and ownership of all hipBLASlt plan builders and engines. * The class designs use dependency injection to get the components they need in order to function. * This makes it easier to test and maintain the code as you can swap out implementations. * * The construction sequence should contain no logic other than the creation of various classes. * If logic is needed, it should be placed in a separate function that can be called after the * container has finished constructing all its components. */ class HipblasltContainer { public: HipblasltContainer(); ~HipblasltContainer(); EngineManager& getEngineManager(); private: std::unique_ptr _engineManager; }; } // namespace hipblaslt_plugin