aboutsummaryrefslogtreecommitdiff
path: root/src/base.cpp
diff options
context:
space:
mode:
authorGravatar Attila Molnar2015-12-02 13:30:24 +0100
committerGravatar Attila Molnar2015-12-02 13:30:24 +0100
commit860f5cbf1ea159d7d1c3fce2364747a822c50461 (patch)
treecc4f7e8bb3efc944b8ce101c5db46162b31f2834 /src/base.cpp
parentMerge branch 'master+reloadmod' (diff)
parentAdd SERVICE_CUSTOM for services managed by a module (diff)
Merge branch 'master+serviceinit'
Diffstat (limited to 'src/base.cpp')
-rw-r--r--src/base.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/base.cpp b/src/base.cpp
index 496b23ef5..0ff3fbe4c 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)
@@ -140,6 +144,12 @@ void* ExtensionItem::unset_raw(Extensible* container)
return rv;
}
+void ExtensionItem::RegisterService()
+{
+ if (!ServerInstance->Extensions.Register(this))
+ throw ModuleException("Extension already exists: " + name);
+}
+
bool ExtensionManager::Register(ExtensionItem* item)
{
return types.insert(std::make_pair(item->name, item)).second;