blob: e1f9111cd310405c6ae1c1cd2ef047b6c380e78a [file] [log] [blame]
Jim Flynne1fdd282021-10-26 21:26:10 +01001//
2// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
7#include <armnn/Types.hpp>
8#include <armnn/Exceptions.hpp>
9#include <armnn/backends/IMemoryOptimizerStrategy.hpp>
10
11namespace armnn
12{
13
14class StrategyValidator : public IMemoryOptimizerStrategy
15{
16public:
17
18 void SetStrategy(std::shared_ptr<IMemoryOptimizerStrategy> strategy)
19 {
20 m_Strategy = strategy;
21 m_MemBlockStrategyType = strategy->GetMemBlockStrategyType();
22 }
23
24 std::string GetName() const override
25 {
26 return "StrategyValidator";
27 }
28
29 MemBlockStrategyType GetMemBlockStrategyType() const override
30 {
31 return m_MemBlockStrategyType;
32 }
33
34 std::vector<MemBin> Optimize(std::vector<MemBlock>& memBlocks) override;
35
36private:
37 std::shared_ptr<IMemoryOptimizerStrategy> m_Strategy;
38 MemBlockStrategyType m_MemBlockStrategyType;
39};
40
41} // namespace armnn