• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 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 <reference/RefBackend.hpp>
11 #include <reference/RefWorkloadFactory.hpp>
12 #include "reference/RefTensorHandleFactory.hpp"
13 
14 namespace
15 {
16 
17 template<>
18 struct WorkloadFactoryHelper<armnn::RefWorkloadFactory>
19 {
GetMemoryManager__anon594c32040111::WorkloadFactoryHelper20     static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
21     {
22         armnn::RefBackend backend;
23         return backend.CreateMemoryManager();
24     }
25 
GetFactory__anon594c32040111::WorkloadFactoryHelper26     static armnn::RefWorkloadFactory GetFactory(
27         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
28     {
29         IgnoreUnused(memoryManager);
30         return armnn::RefWorkloadFactory();
31     }
32 
GetTensorHandleFactory__anon594c32040111::WorkloadFactoryHelper33     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     }
39 };
40 
41 using RefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::RefWorkloadFactory>;
42 
43 } // anonymous namespace
44