]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/channels.h
Move user quit logic out of cull list
[user/henk/code/inspircd.git] / include / channels.h
index 220c56cf9532720620ac3e29e0d7637577c64707..82bf508539b171ebd1c834f0b598bdeca02266ae 100644 (file)
@@ -29,6 +29,7 @@ enum ChannelModes {
 
 /* Forward declarations - needed */
 class User;
+struct ModResult;
 
 /** Holds an entry for a ban list, exemption list, or invite list.
  * This class contains a single element in a channel list, such as a banlist.
@@ -136,6 +137,10 @@ class CoreExport Channel : public Extensible
         */
        std::string name; /* CHANMAX */
 
+       /** Time that the object was instantiated (used for TS calculation etc)
+       */
+       time_t age;
+
        /** Modes for the channel.
         * This is not a null terminated string! It is a bitset where
         * each item in it represents if a mode is set. For example
@@ -425,6 +430,8 @@ class CoreExport Channel : public Extensible
         * @param text A std::string containing the output line without prefix
         */
        void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const std::string& text);
+       /** Write a line of text that already includes the source */
+       void RawWriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const std::string& text);
 
        /** Returns the maximum number of bans allowed to be set on this channel
         * @return The maximum number of bans allowed
@@ -524,14 +531,12 @@ class CoreExport Channel : public Extensible
         * a given user for this channel.
         * @param u The user to match bans against
         * @param type The type of extban to check
-        * @returns 1 = exempt, 0 = no match, -1 = banned
         */
-       int GetExtBanStatus(User *u, char type);
+       ModResult GetExtBanStatus(User *u, char type);
 
        /** Overloaded version to check whether a particular string is extbanned
-        * @returns 1 = exempt, 0 = no match, -1 = banned
         */
-       int GetExtBanStatus(const std::string &str, char type);
+       ModResult GetExtBanStatus(const std::string &str, char type);
 
        /** Clears the cached max bans value
         */
@@ -542,18 +547,4 @@ class CoreExport Channel : public Extensible
        virtual ~Channel() { /* stub */ }
 };
 
-static inline int banmatch_reduce(int v1, int v2)
-{
-       int a1 = abs(v1);
-       int a2 = abs(v2);
-       if (a1 > a2)
-               return v1;
-       else if (a2 > a1)
-               return v2;
-       else if (v1 > v2)
-               return v1;
-       // otherwise v2 > v1 or equal
-       return v2;
-}
-
 #endif