void DataKeeper::CreateModeList(ModeType modetype) { const ModeParser::ModeHandlerMap& modes = ServerInstance->Modes->GetModes(modetype); for (ModeParser::ModeHandlerMap::const_iterator i = modes.begin(); i != modes.end(); ++i) { ModeHandler* mh = i->second; if (mh->creator == mod) handledmodes[modetype].push_back(ProviderInfo(mh)); } }
size_t DataKeeper::GetSerializerIndex(ClientProtocol::Serializer* serializer) { for (size_t i = 0; i < handledserializers.size(); i++) { if (handledserializers[i].serializer == serializer) return i; } handledserializers.push_back(ProviderInfo(serializer)); return handledserializers.size()-1; }
void DataKeeper::Save(Module* currmod) { this->mod = currmod; const ExtensionManager::ExtMap& allexts = ServerInstance->Extensions.GetExts(); for (ExtensionManager::ExtMap::const_iterator i = allexts.begin(); i != allexts.end(); ++i) { ExtensionItem* ext = i->second; if (ext->creator == mod) handledexts.push_back(ProviderInfo(ext)); } CreateModeList(MODETYPE_USER); DoSaveUsers(); CreateModeList(MODETYPE_CHANNEL); DoSaveChans(); FOREACH_MOD_CUSTOM(*reloadevprov, ReloadModule::EventListener, OnReloadModuleSave, (mod, this->moddata)); ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Saved data about %lu users %lu chans %lu modules", (unsigned long)userdatalist.size(), (unsigned long)chandatalist.size(), (unsigned long)moddata.list.size()); }