]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/cull_list.h
Document SendTopic.
[user/henk/code/inspircd.git] / include / cull_list.h
index d2a4d15e474b92d81cfbba2a3f851fe29cb3c36a..ff22880b4e499c9597529abb36cb679d84347b0e 100644 (file)
 #ifndef __CULLLIST_H__
 #define __CULLLIST_H__
 
-// include the common header files
-
-#include <string>
-#include <deque>
-#include <vector>
-
-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<User*, User*> exempt;
-
        /** Holds a list of users being quit.
         * See the information for CullItem for
         * more information.
         */
-       std::vector<CullItem> list;
+       std::vector<User *> 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)
         */