diff options
Diffstat (limited to 'src/backends/BackendRegistry.hpp')
-rw-r--r-- | src/backends/BackendRegistry.hpp | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/src/backends/BackendRegistry.hpp b/src/backends/BackendRegistry.hpp index e2c526d293..23cb37da99 100644 --- a/src/backends/BackendRegistry.hpp +++ b/src/backends/BackendRegistry.hpp @@ -5,49 +5,19 @@ #pragma once #include <armnn/Types.hpp> -#include <functional> -#include <memory> -#include <unordered_map> +#include "RegistryCommon.hpp" namespace armnn { -class IBackend; +using BackendRegistry = RegistryCommon<IBackend, IBackendUniquePtr>; -class BackendRegistry -{ -public: - using FactoryFunction = std::function<IBackendUniquePtr()>; - - static BackendRegistry& Instance(); - - void Register(const BackendId& id, FactoryFunction factory); - FactoryFunction GetFactory(const BackendId& id) const; - - struct Helper - { - Helper(const BackendId& id, FactoryFunction factory) - { - BackendRegistry::Instance().Register(id, factory); - } - }; - - size_t Size() const { return m_BackendFactories.size(); } - BackendIdSet GetBackendIds() const; +BackendRegistry& BackendRegistryInstance(); -protected: - using FactoryStorage = std::unordered_map<BackendId, FactoryFunction>; - - // For testing only - static void Swap(FactoryStorage& other); - BackendRegistry() {} - ~BackendRegistry() {} - -private: - BackendRegistry(const BackendRegistry&) = delete; - BackendRegistry& operator=(const BackendRegistry&) = delete; - - FactoryStorage m_BackendFactories; +template <> +struct RegisteredTypeName<IBackend> +{ + static const char * Name() { return "IBackend"; } }; } // namespace armnn |