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 <armnn/utility/PolymorphicDowncast.hpp> 11 12 #include <reference/RefBackend.hpp> 13 #include <reference/RefWorkloadFactory.hpp> 14 #include "reference/RefTensorHandleFactory.hpp" 15 16 namespace 17 { 18 19 template<> 20 struct WorkloadFactoryHelper<armnn::RefWorkloadFactory> 21 { GetMemoryManager__anone985d2ce0111::WorkloadFactoryHelper22 static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() 23 { 24 armnn::RefBackend backend; 25 return backend.CreateMemoryManager(); 26 } 27 GetFactory__anone985d2ce0111::WorkloadFactoryHelper28 static armnn::RefWorkloadFactory GetFactory( 29 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) 30 { 31 IgnoreUnused(memoryManager); 32 return armnn::RefWorkloadFactory(); 33 } 34 GetTensorHandleFactory__anone985d2ce0111::WorkloadFactoryHelper35 static armnn::RefTensorHandleFactory GetTensorHandleFactory( 36 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) 37 { 38 39 return armnn::RefTensorHandleFactory(armnn::PolymorphicPointerDowncast<armnn::RefMemoryManager>(memoryManager)); 40 } 41 }; 42 43 using RefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::RefWorkloadFactory>; 44 45 } // anonymous namespace 46