]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/cull_list.h
Change for reverse output of lists, most recent first, for bug #307. Also fix(Oms...
[user/henk/code/inspircd.git] / include / cull_list.h
index 64e6b3bdb3ca61f5b8839764bb704329e9f3df1c..8901c5ea4248be3f33bb013f34248e2c924c2bf1 100644 (file)
@@ -29,7 +29,7 @@ class InspIRCd;
  * a list of users which are to be culled when a long
  * operation (such as a netsplit) has completed.
  */
-class CullItem : public classbase
+class CoreExport CullItem : public classbase
 {
  private:
        /** Holds a pointer to the user,
@@ -39,6 +39,12 @@ class CullItem : public classbase
        /** 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
@@ -46,8 +52,11 @@ class CullItem : public classbase
        * @param u The user to add
        * @param r The quit reason of the added user
        */
-       CullItem(userrec* u, std::string &r);
-       CullItem(userrec* u, const char* r);
+       CullItem(userrec* u, std::string &r, const char* ro = "");
+       CullItem(userrec* u, const char* r, const char* ro = "");
+
+       void MakeSilent();
+       bool IsSilent();
 
        ~CullItem();
 
@@ -57,6 +66,9 @@ class CullItem : public classbase
        /** 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
@@ -72,7 +84,7 @@ class CullItem : public classbase
  * you attempt to add the same user twice, then the second
  * attempt will be ignored.
  */
-class CullList : public classbase
+class CoreExport CullList : public classbase
 {
  private:
        /** Creator of this CullList
@@ -102,8 +114,12 @@ class CullList : public classbase
        * @param user The user to add
        * @param reason The quit reason of the user being added
        */
-       void AddItem(userrec* user, std::string &reason);
-       void AddItem(userrec* user, const char* reason);
+       void AddItem(userrec* user, std::string &reason, const  char* o_reason = "");
+       void AddItem(userrec* user, const char* reason, const char* o_reason = "");
+
+       /* Turn an item into a silent item
+        */
+       void MakeSilent(userrec* user);
 
        /** Applies the cull list, quitting all the users
        * on the list with their quit reasons all at once.