From e88167264991b8debe56f095abbc262f7266c5d4 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Wed, 5 Aug 2020 17:43:54 +0100 Subject: IVGCVSW-5013 Add TensorHandleFactory to Sample Dynamic Tensor Signed-off-by: Teresa Charlin Change-Id: I9f8367ebb59a73570a1a2de68aaadba98abef11c --- .../sample/SampleDynamicTensorHandleFactory.cpp | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp (limited to 'src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp') diff --git a/src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp b/src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp new file mode 100644 index 0000000000..0852bed720 --- /dev/null +++ b/src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp @@ -0,0 +1,91 @@ +// +// Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "SampleDynamicTensorHandleFactory.hpp" +#include "SampleTensorHandle.hpp" + +#include + +namespace armnn +{ + +using FactoryId = ITensorHandleFactory::FactoryId; + +const FactoryId& SampleDynamicTensorHandleFactory::GetIdStatic() +{ + static const FactoryId s_Id(SampleDynamicTensorHandleFactoryId()); + return s_Id; +} + +std::unique_ptr +SampleDynamicTensorHandleFactory::CreateSubTensorHandle(ITensorHandle& parent, + TensorShape const& subTensorShape, + unsigned int const* subTensorOrigin) const +{ + IgnoreUnused(parent, subTensorShape, subTensorOrigin); + return nullptr; +} + +std::unique_ptr SampleDynamicTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const +{ + return std::make_unique(tensorInfo, m_MemoryManager); +} + +std::unique_ptr SampleDynamicTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + DataLayout dataLayout) const +{ + IgnoreUnused(dataLayout); + return std::make_unique(tensorInfo, m_MemoryManager); +} + +std::unique_ptr SampleDynamicTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged) const +{ + if (IsMemoryManaged) + { + return std::make_unique(tensorInfo, m_MemoryManager); + } + else + { + return std::make_unique(tensorInfo, m_ImportFlags); + } +} + +std::unique_ptr SampleDynamicTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + DataLayout dataLayout, + const bool IsMemoryManaged) const +{ + IgnoreUnused(dataLayout); + if (IsMemoryManaged) + { + return std::make_unique(tensorInfo, m_MemoryManager); + } + else + { + return std::make_unique(tensorInfo, m_ImportFlags); + } +} + +const FactoryId& SampleDynamicTensorHandleFactory::GetId() const +{ + return GetIdStatic(); +} + +bool SampleDynamicTensorHandleFactory::SupportsSubTensors() const +{ + return false; +} + +MemorySourceFlags SampleDynamicTensorHandleFactory::GetExportFlags() const +{ + return m_ExportFlags; +} + +MemorySourceFlags SampleDynamicTensorHandleFactory::GetImportFlags() const +{ + return m_ImportFlags; +} + +} // namespace armnn \ No newline at end of file -- cgit v1.2.1