// // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "SampleMemoryManager.hpp" #include namespace sdb // sample dynamic backend { constexpr const char * SampleDynamicTensorHandleFactoryId() { return "Arm/SampleDynamic/TensorHandleFactory"; } class SampleDynamicTensorHandleFactory : public armnn::ITensorHandleFactory { public: SampleDynamicTensorHandleFactory(std::shared_ptr mgr) : m_MemoryManager(mgr), m_ImportFlags(static_cast(armnn::MemorySource::Malloc)), m_ExportFlags(static_cast(armnn::MemorySource::Malloc)) {} std::unique_ptr CreateSubTensorHandle(armnn::ITensorHandle& parent, armnn::TensorShape const& subTensorShape, unsigned int const* subTensorOrigin) const override; std::unique_ptr CreateTensorHandle(const armnn::TensorInfo& tensorInfo) const override; std::unique_ptr CreateTensorHandle(const armnn::TensorInfo& tensorInfo, armnn::DataLayout dataLayout) const override; std::unique_ptr CreateTensorHandle(const armnn::TensorInfo& tensorInfo, const bool IsMemoryManaged) const override; std::unique_ptr CreateTensorHandle(const armnn::TensorInfo& tensorInfo, armnn::DataLayout dataLayout, const bool IsMemoryManaged) const override; static const FactoryId& GetIdStatic(); const FactoryId& GetId() const override; bool SupportsSubTensors() const override; armnn::MemorySourceFlags GetExportFlags() const override; armnn::MemorySourceFlags GetImportFlags() const override; private: mutable std::shared_ptr m_MemoryManager; armnn::MemorySourceFlags m_ImportFlags; armnn::MemorySourceFlags m_ExportFlags; }; } // namespace sdb