From 4e488cb54d72fb4a1caa580f6756a6f4687beaf6 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 2 Mar 2021 05:39:12 +0000 Subject: Refactor classbase/CullResult into Cullable/Cullable::Result. --- src/cull_list.cpp | 90 ------------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 src/cull_list.cpp (limited to 'src/cull_list.cpp') diff --git a/src/cull_list.cpp b/src/cull_list.cpp deleted file mode 100644 index 0f9c24f15..000000000 --- a/src/cull_list.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2015 Attila Molnar - * Copyright (C) 2013, 2020 Sadie Powell - * Copyright (C) 2012 Robby - * Copyright (C) 2011 jackmcbarn - * Copyright (C) 2009 Uli Schlachter - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2007, 2010 Craig Edwards - * Copyright (C) 2007 Dennis Friis - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include "inspircd.h" -#ifdef INSPIRCD_ENABLE_RTTI -#include -#endif - -void CullList::Apply() -{ - std::vector working; - while (!SQlist.empty()) - { - working.swap(SQlist); - for(std::vector::iterator a = working.begin(); a != working.end(); a++) - { - LocalUser *u = *a; - ServerInstance->SNO.WriteGlobalSno('a', "User %s SendQ exceeds connect class maximum of %lu", - u->nick.c_str(), u->GetClass()->GetSendqHardMax()); - ServerInstance->Users.QuitUser(u, "SendQ exceeded"); - } - working.clear(); - } - std::set gone; - std::vector queue; - queue.reserve(list.size() + 32); - for(unsigned int i=0; i < list.size(); i++) - { - classbase* c = list[i]; - if (gone.insert(c).second) - { -#ifdef INSPIRCD_ENABLE_RTTI - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Deleting %s @%p", typeid(*c).name(), - (void*)c); -#else - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "Deleting @%p", (void*)c); -#endif - c->cull(); - queue.push_back(c); - } - else - { - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "WARNING: Object @%p culled twice!", - (void*)c); - } - } - list.clear(); - for(unsigned int i=0; i < queue.size(); i++) - { - classbase* c = queue[i]; - delete c; - } - if (!list.empty()) - { - ServerInstance->Logs.Log("CULLLIST", LOG_DEBUG, "WARNING: Objects added to cull list in a destructor"); - Apply(); - } -} - -void ActionList::Run() -{ - for(unsigned int i=0; i < list.size(); i++) - { - list[i]->Call(); - } - list.clear(); -} -- cgit v1.3.1-10-gc9f91