// // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include #include #include namespace armnn { constexpr const char* MockBackendId() { return "CpuMock"; } namespace { static const BackendId s_Id{ MockBackendId() }; } MockWorkloadFactory::MockWorkloadFactory(const std::shared_ptr& memoryManager) : m_MemoryManager(memoryManager) {} MockWorkloadFactory::MockWorkloadFactory() : m_MemoryManager(new MockMemoryManager()) {} const BackendId& MockWorkloadFactory::GetBackendId() const { return s_Id; } std::unique_ptr MockWorkloadFactory::CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const { switch (type) { case LayerType::MemCopy: { auto memCopyQueueDescriptor = PolymorphicDowncast(&descriptor); if (descriptor.m_Inputs.empty()) { throw InvalidArgumentException("MockWorkloadFactory: CreateMemCopy() expected an input tensor."); } return std::make_unique(*memCopyQueueDescriptor, info); } default: return nullptr; } } } // namespace armnn