X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fbase.cpp;h=4111451f8893a2b11b29b1ddbeaad5f356498c00;hb=90ab8cf4258a25e8403465ed86296fc74405620d;hp=0441217d1c474a44ad3a11129960e871aa1152b2;hpb=4fc2f7199e964ba5112ecdb2613c6fd5c2eee638;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/base.cpp b/src/base.cpp index 0441217d1..4111451f8 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -23,7 +23,9 @@ #include "inspircd.h" #include "base.h" #include +#ifdef INSPIRCD_ENABLE_RTTI #include +#endif classbase::classbase() { @@ -34,8 +36,12 @@ classbase::classbase() CullResult classbase::cull() { if (ServerInstance) +#ifdef INSPIRCD_ENABLE_RTTI ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "classbase::-%s @%p", typeid(*this).name(), (void*)this); +#else + ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "classbase::- @%p", (void*)this); +#endif return CullResult(); } @@ -89,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) @@ -134,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;