// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "BackendRegistry.hpp" #include namespace armnn { BackendRegistry& BackendRegistry::Instance() { static BackendRegistry instance; return instance; } void BackendRegistry::Register(const std::string& name, FactoryFunction factory) { if (m_BackendFactories.count(name) > 0) { throw InvalidArgumentException(name + " already registered as backend"); } m_BackendFactories[name] = factory; } BackendRegistry::FactoryFunction BackendRegistry::GetFactory(const std::string& name) const { auto it = m_BackendFactories.find(name); if (it == m_BackendFactories.end()) { throw InvalidArgumentException(name + " has no backend factory registered"); } return it->second; } void BackendRegistry::Swap(BackendRegistry::FactoryStorage& other) { BackendRegistry& instance = Instance(); std::swap(instance.m_BackendFactories, other); } }