blob: e90f318296858984bc1a139e5c4ec18e3720f78f [file] [log] [blame]
Colm Donelan17948b52022-02-01 23:37:04 +00001//
2// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "MockTensorHandleFactory.hpp"
7#include <armnnTestUtils/MockTensorHandle.hpp>
8
9namespace armnn
10{
11
12using FactoryId = ITensorHandleFactory::FactoryId;
13
14const FactoryId& MockTensorHandleFactory::GetIdStatic()
15{
16 static const FactoryId s_Id(MockTensorHandleFactoryId());
17 return s_Id;
18}
19
20std::unique_ptr<ITensorHandle> MockTensorHandleFactory::CreateSubTensorHandle(ITensorHandle&,
21 TensorShape const&,
22 unsigned int const*) const
23{
24 return nullptr;
25}
26
27std::unique_ptr<ITensorHandle> MockTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const
28{
29 return std::make_unique<MockTensorHandle>(tensorInfo, m_MemoryManager);
30}
31
32std::unique_ptr<ITensorHandle> MockTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
33 DataLayout dataLayout) const
34{
35 IgnoreUnused(dataLayout);
36 return std::make_unique<MockTensorHandle>(tensorInfo, m_MemoryManager);
37}
38
39std::unique_ptr<ITensorHandle> MockTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
40 const bool IsMemoryManaged) const
41{
42 if (IsMemoryManaged)
43 {
44 return std::make_unique<MockTensorHandle>(tensorInfo, m_MemoryManager);
45 }
46 else
47 {
48 return std::make_unique<MockTensorHandle>(tensorInfo, m_ImportFlags);
49 }
50}
51
52std::unique_ptr<ITensorHandle> MockTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
53 DataLayout dataLayout,
54 const bool IsMemoryManaged) const
55{
56 IgnoreUnused(dataLayout);
57 if (IsMemoryManaged)
58 {
59 return std::make_unique<MockTensorHandle>(tensorInfo, m_MemoryManager);
60 }
61 else
62 {
63 return std::make_unique<MockTensorHandle>(tensorInfo, m_ImportFlags);
64 }
65}
66
67const FactoryId& MockTensorHandleFactory::GetId() const
68{
69 return GetIdStatic();
70}
71
72bool MockTensorHandleFactory::SupportsSubTensors() const
73{
74 return false;
75}
76
77MemorySourceFlags MockTensorHandleFactory::GetExportFlags() const
78{
79 return m_ExportFlags;
80}
81
82MemorySourceFlags MockTensorHandleFactory::GetImportFlags() const
83{
84 return m_ImportFlags;
85}
86
87} // namespace armnn