ArmNN
 22.02
RefWorkloadFactoryHelper.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 
11 
12 #include <reference/RefBackend.hpp>
15 
16 namespace
17 {
18 
19 template<>
20 struct WorkloadFactoryHelper<armnn::RefWorkloadFactory>
21 {
22  static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
23  {
24  armnn::RefBackend backend;
25  return backend.CreateMemoryManager();
26  }
27 
28  static armnn::RefWorkloadFactory GetFactory(
29  const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
30  {
31  IgnoreUnused(memoryManager);
33  }
34 
35  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
IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override
Definition: RefBackend.cpp:62
Copyright (c) 2021 ARM Limited and Contributors.
void IgnoreUnused(Ts &&...)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr