blob: e413d045f9582030b1c7e9ead3bb629973a8cef0 [file] [log] [blame]
Aron Virginas-Tar56055192018-11-12 18:10:43 +00001//
Teresa Charlinfc8978f2020-08-06 11:30:46 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Aron Virginas-Tar56055192018-11-12 18:10:43 +00003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <backendsCommon/test/WorkloadFactoryHelper.hpp>
9
10#include <reference/RefBackend.hpp>
11#include <reference/RefWorkloadFactory.hpp>
Teresa Charlinfc8978f2020-08-06 11:30:46 +010012#include "reference/RefTensorHandleFactory.hpp"
Aron Virginas-Tar56055192018-11-12 18:10:43 +000013
14namespace
15{
16
17template<>
18struct WorkloadFactoryHelper<armnn::RefWorkloadFactory>
19{
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000020 static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
21 {
22 armnn::RefBackend backend;
23 return backend.CreateMemoryManager();
24 }
25
26 static armnn::RefWorkloadFactory GetFactory(
27 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
Aron Virginas-Tar56055192018-11-12 18:10:43 +000028 {
Jan Eilers8eb25602020-03-09 12:13:48 +000029 IgnoreUnused(memoryManager);
Aron Virginas-Tar56055192018-11-12 18:10:43 +000030 return armnn::RefWorkloadFactory();
31 }
Teresa Charlinfc8978f2020-08-06 11:30:46 +010032
33 static armnn::RefTensorHandleFactory GetTensorHandleFactory(
34 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
35 {
36
37 return armnn::RefTensorHandleFactory(std::static_pointer_cast<armnn::RefMemoryManager>(memoryManager));
38 }
Aron Virginas-Tar56055192018-11-12 18:10:43 +000039};
40
41using RefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::RefWorkloadFactory>;
42
43} // anonymous namespace