ArmNN
 20.02
RefTensorHandleFactory.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "RefMemoryManager.hpp"
9 
11 
12 namespace armnn
13 {
14 
15 constexpr const char * RefTensorHandleFactoryId() { return "Arm/Ref/TensorHandleFactory"; }
16 
18 {
19 
20 public:
21  RefTensorHandleFactory(std::shared_ptr<RefMemoryManager> mgr)
22  : m_MemoryManager(mgr),
23  m_ImportFlags(static_cast<MemorySourceFlags>(MemorySource::Malloc)),
24  m_ExportFlags(static_cast<MemorySourceFlags>(MemorySource::Malloc))
25  {}
26 
27  std::unique_ptr<ITensorHandle> CreateSubTensorHandle(ITensorHandle& parent,
28  TensorShape const& subTensorShape,
29  unsigned int const* subTensorOrigin) const override;
30 
31  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo) const override;
32 
33  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
34  DataLayout dataLayout) const override;
35 
36  static const FactoryId& GetIdStatic();
37 
38  const FactoryId& GetId() const override;
39 
40  bool SupportsSubTensors() const override;
41 
42  MemorySourceFlags GetExportFlags() const override;
43 
44  MemorySourceFlags GetImportFlags() const override;
45 
46 private:
47  mutable std::shared_ptr<RefMemoryManager> m_MemoryManager;
48  MemorySourceFlags m_ImportFlags;
49  MemorySourceFlags m_ExportFlags;
50 
51 };
52 
53 } // namespace armnn
54 
static const FactoryId & GetIdStatic()
bool SupportsSubTensors() const override
DataLayout
Definition: Types.hpp:49
std::unique_ptr< ITensorHandle > CreateSubTensorHandle(ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
unsigned int MemorySourceFlags
Copyright (c) 2020 ARM Limited.
MemorySourceFlags GetImportFlags() const override
RefTensorHandleFactory(std::shared_ptr< RefMemoryManager > mgr)
const FactoryId & GetId() const override
MemorySourceFlags GetExportFlags() const override
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const override
constexpr const char * RefTensorHandleFactoryId()