1 // 2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include <armnn/backends/IMemoryOptimizerStrategy.hpp> 9 10 #include <algorithm> 11 12 namespace armnn 13 { 14 15 struct IMemoryOptimizerStrategyFactory 16 { 17 virtual ~IMemoryOptimizerStrategyFactory() = default; 18 virtual std::unique_ptr<IMemoryOptimizerStrategy> CreateMemoryOptimizerStrategy() = 0; 19 }; 20 21 template <typename T> 22 struct StrategyFactory : public IMemoryOptimizerStrategyFactory 23 { CreateMemoryOptimizerStrategyarmnn::StrategyFactory24 std::unique_ptr<IMemoryOptimizerStrategy> CreateMemoryOptimizerStrategy() override 25 { 26 return std::make_unique<T>(); 27 } 28 }; 29 30 } // namespace armnn