From 820f229a9efe2678d1e85578aa086a1efdd73a30 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Mon, 23 Nov 2015 12:50:02 +0100 Subject: Add ServiceProvider::RegisterService(), call it from ModuleManager::AddService() --- include/base.h | 4 ++++ src/base.cpp | 4 ++++ src/modules.cpp | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/base.h b/include/base.h index dcbb2e5c7..8aa6269d3 100644 --- a/include/base.h +++ b/include/base.h @@ -251,6 +251,10 @@ class CoreExport ServiceProvider : public classbase ServiceProvider(Module* Creator, const std::string& Name, ServiceType Type); virtual ~ServiceProvider(); + /** Register this service in the appropriate registrar + */ + virtual void RegisterService(); + /** If called, this ServiceProvider won't be registered automatically */ void DisableAutoRegister(); diff --git a/src/base.cpp b/src/base.cpp index 67b136ec8..63b14256e 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -95,6 +95,10 @@ ServiceProvider::~ServiceProvider() { } +void ServiceProvider::RegisterService() +{ +} + ExtensionItem::ExtensionItem(const std::string& Key, ExtensibleType exttype, Module* mod) : ServiceProvider(mod, Key, SERVICE_METADATA) , type(exttype) diff --git a/src/modules.cpp b/src/modules.cpp index 0223d12f1..3ff8aad14 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -588,7 +588,7 @@ void ModuleManager::AddService(ServiceProvider& item) return; } default: - throw ModuleException("Cannot add unknown service type"); + item.RegisterService(); } } -- cgit v1.2.3