// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include namespace armnn { class DeviceSpec : public IDeviceSpec { public: DeviceSpec() {} DeviceSpec(const BackendIdSet& supportedBackends) : m_SupportedBackends{supportedBackends} {} virtual ~DeviceSpec() {} virtual const BackendIdSet& GetSupportedBackends() const override { return m_SupportedBackends; } void AddSupportedBackends(const BackendIdSet& backendIds, bool isDynamic = false) { m_SupportedBackends.insert(backendIds.begin(), backendIds.end()); if (isDynamic) { m_DynamicBackends.insert(backendIds.begin(), backendIds.end()); } } void ClearDynamicBackends() { for (const auto& id : m_DynamicBackends) { m_SupportedBackends.erase(id); } m_DynamicBackends.clear(); } const BackendIdSet& GetDynamicBackends() const { return m_DynamicBackends; } private: BackendIdSet m_SupportedBackends; BackendIdSet m_DynamicBackends; }; } // namespace armnn