// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "SampleMemoryManager.hpp" #include #include namespace armnn { // Sample Dynamic workload factory. class SampleDynamicWorkloadFactory : public IWorkloadFactory { public: explicit SampleDynamicWorkloadFactory(const std::shared_ptr& memoryManager); SampleDynamicWorkloadFactory(); ~SampleDynamicWorkloadFactory() {} const BackendId& GetBackendId() const override; static bool IsLayerSupported(const IConnectableLayer& layer, Optional dataType, std::string& outReasonIfUnsupported); bool SupportsSubTensors() const override { return false; } std::unique_ptr CreateSubTensorHandle(ITensorHandle& parent, TensorShape const& subTensorShape, unsigned int const* subTensorOrigin) const override { boost::ignore_unused(parent, subTensorShape, subTensorOrigin); return nullptr; } std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, const bool IsMemoryManaged = true) const override; std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, DataLayout dataLayout, const bool IsMemoryManaged = true) const override; std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, const WorkloadInfo& info) const override; std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, const WorkloadInfo& info) const override; std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, const WorkloadInfo& info) const override; private: mutable std::shared_ptr m_MemoryManager; }; } // namespace armnn