blob: 560192a3a8ead5ae4e2add9f4cec50c958ee162c [file] [log] [blame]
Francis Murtagh9270d9e2022-08-12 13:54:17 +01001//
2// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <backendsCommon/test/WorkloadFactoryHelper.hpp>
9
10#include <armnn/utility/PolymorphicDowncast.hpp>
11
12#include <tosaReference/TosaRefBackend.hpp>
13#include <tosaReference/TosaRefWorkloadFactory.hpp>
14#include "tosaReference/TosaRefTensorHandleFactory.hpp"
15
16namespace
17{
18
19template<>
20struct WorkloadFactoryHelper<armnn::TosaRefWorkloadFactory>
21{
22 static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
23 {
24 armnn::TosaRefBackend backend;
25 return backend.CreateMemoryManager();
26 }
27
28 static armnn::TosaRefWorkloadFactory GetFactory(
29 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
30 {
31 IgnoreUnused(memoryManager);
32 return armnn::TosaRefWorkloadFactory();
33 }
34
35 static armnn::TosaRefTensorHandleFactory GetTensorHandleFactory(
36 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
37 {
38
39 return armnn::TosaRefTensorHandleFactory(
40 armnn::PolymorphicPointerDowncast<armnn::TosaRefMemoryManager>(memoryManager));
41 }
42};
43
44using TosaRefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::TosaRefWorkloadFactory>;
45
46} // anonymous namespace