X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fcull_list.h;h=ff22880b4e499c9597529abb36cb679d84347b0e;hb=b76777dfb4d2eea9d7b223d0eb6acdd560cc1858;hp=d2a4d15e474b92d81cfbba2a3f851fe29cb3c36a;hpb=e4acbc95b8b6cd5b28d38a2242c02e8ff4991e4a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/cull_list.h b/include/cull_list.h index d2a4d15e4..ff22880b4 100644 --- a/include/cull_list.h +++ b/include/cull_list.h @@ -14,81 +14,8 @@ #ifndef __CULLLIST_H__ #define __CULLLIST_H__ -// include the common header files - -#include -#include -#include - -class InspIRCd; - -/** The CullItem class holds a user and their quitmessage, - * and is used internally by the CullList class to compile - * a list of users which are to be culled when a long - * operation (such as a netsplit) has completed. - */ -class CoreExport CullItem : public classbase -{ - private: - /** Holds a pointer to the user, - * must be valid and can be a local or remote user. - */ - User* user; - /** Holds the quit reason to use for this user. - */ - std::string reason; - /** Holds the quit reason opers see, if different from users - */ - std::string oper_reason; - /** Silent items dont generate an snotice. - */ - bool silent; - public: - /** Constrcutor. - * Initializes the CullItem with a user pointer - * and their quit reason - * @param u The user to add - * @param r The quit reason of the added user - * @param ro The quit reason to show to opers only - */ - CullItem(User* u, std::string &r, const char* ro = ""); - /** Constrcutor. - * Initializes the CullItem with a user pointer - * and their quit reason - * @param u The user to add - * @param r The quit reason of the added user - * @param ro The quit reason to show to opers only - */ - CullItem(User* u, const char* r, const char* ro = ""); - - /** Make the quit silent a module is dealing with - * displaying this users quit, so we shouldn't - * send anything out. - */ - void MakeSilent(); - - /** Returns true if the quit for this user has been set - * to silent. - */ - bool IsSilent(); - - /** Destructor - */ - ~CullItem(); - - /** Returns a pointer to the user - */ - User* GetUser(); - /** Returns the user's quit reason - */ - std::string& GetReason(); - /** Returns oper reason - */ - std::string& GetOperReason(); -}; - -/** The CullList class can be used by modules, and is used - * by the core, to compile large lists of users in preperation +/** The CullList class is used by the core to create lists of users + * prior to actually quitting (and deleting the objects) all at once. * to quitting them all at once. This is faster than quitting * them within the loop, as the loops become tighter with * little or no comparisons within them. The CullList class @@ -99,6 +26,8 @@ class CoreExport CullItem : public classbase * or remote users, but it may only hold each user once. If * you attempt to add the same user twice, then the second * attempt will be ignored. + * + * NOTE: Don't use this outside core, use the QuitUser method like everyone else! */ class CoreExport CullList : public classbase { @@ -107,20 +36,14 @@ class CoreExport CullList : public classbase */ InspIRCd* ServerInstance; - /** Holds a list of users already added for quick lookup - */ - std::map exempt; - /** Holds a list of users being quit. * See the information for CullItem for * more information. */ - std::vector list; + std::vector list; public: /** Constructor. - * Clears the CullList::list and CullList::exempt - * items. * @param Instance Creator of this CullList object */ CullList(InspIRCd* Instance); @@ -131,15 +54,7 @@ class CoreExport CullList : public classbase * @param reason The quit reason of the user being added * @param o_reason The quit reason to show only to opers */ - void AddItem(User* user, std::string &reason, const char* o_reason = ""); - - /** Adds a user to the cull list for later - * removal via QUIT. - * @param user The user to add - * @param reason The quit reason of the user being added - * @param o_reason The quit reason to show only to opers - */ - void AddItem(User* user, const char* reason, const char* o_reason = ""); + void AddItem(User* user); /* Turn an item into a silent item (don't send out QUIT for this user) */