| // |
| // Copyright © 2017 Arm Ltd. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "RefTensorHandleFactory.hpp" |
| #include "RefTensorHandle.hpp" |
| |
| #include <armnn/utility/IgnoreUnused.hpp> |
| |
| namespace armnn |
| { |
| |
| using FactoryId = ITensorHandleFactory::FactoryId; |
| |
| const FactoryId& RefTensorHandleFactory::GetIdStatic() |
| { |
| static const FactoryId s_Id(RefTensorHandleFactoryId()); |
| return s_Id; |
| } |
| |
| std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateSubTensorHandle(ITensorHandle& parent, |
| TensorShape const& subTensorShape, |
| unsigned int const* subTensorOrigin) const |
| { |
| IgnoreUnused(parent, subTensorShape, subTensorOrigin); |
| return nullptr; |
| } |
| |
| std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const |
| { |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager); |
| } |
| |
| std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, |
| DataLayout dataLayout) const |
| { |
| IgnoreUnused(dataLayout); |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager); |
| } |
| |
| std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, |
| const bool IsMemoryManaged) const |
| { |
| if (IsMemoryManaged) |
| { |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager); |
| } |
| else |
| { |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_ImportFlags); |
| } |
| } |
| |
| std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, |
| DataLayout dataLayout, |
| const bool IsMemoryManaged) const |
| { |
| IgnoreUnused(dataLayout); |
| if (IsMemoryManaged) |
| { |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager); |
| } |
| else |
| { |
| return std::make_unique<RefTensorHandle>(tensorInfo, m_ImportFlags); |
| } |
| } |
| |
| const FactoryId& RefTensorHandleFactory::GetId() const |
| { |
| return GetIdStatic(); |
| } |
| |
| bool RefTensorHandleFactory::SupportsSubTensors() const |
| { |
| return false; |
| } |
| |
| MemorySourceFlags RefTensorHandleFactory::GetExportFlags() const |
| { |
| return m_ExportFlags; |
| } |
| |
| MemorySourceFlags RefTensorHandleFactory::GetImportFlags() const |
| { |
| return m_ImportFlags; |
| } |
| |
| } // namespace armnn |