]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/listmode.h
Replace the deprecated MAXBANS token with MAXLIST.
[user/henk/code/inspircd.git] / include / listmode.h
index 75385588bb406636c85e21cb4563793b10924d79..f49c5b3c8ed825ab9df3be277fc41092eb699fa2 100644 (file)
@@ -37,7 +37,7 @@ class CoreExport ListModeBase : public ModeHandler
 
        /** Items stored in the channel's list
         */
-       typedef std::list<ListItem> ModeList;
+       typedef std::vector<ListItem> ModeList;
 
  private:
        class ChanData
@@ -63,6 +63,9 @@ class CoreExport ListModeBase : public ModeHandler
         */
        typedef std::vector<ListLimit> limitlist;
 
+       /** The default maximum list size. */
+       static const unsigned int DEFAULT_LIST_SIZE = 64;
+
        /** Finds the limit of modes that can be placed on the given channel name according to the config
         * @param channame The channel name to find the limit for
         * @return The maximum number of modes of this type that we allow to be set on the given channel name
@@ -123,6 +126,10 @@ class CoreExport ListModeBase : public ModeHandler
         */
        unsigned int GetLimit(Channel* channel);
 
+       /** Gets the lower list limit for this listmode.
+        */
+       unsigned int GetLowerLimit();
+
        /** Retrieves the list of all modes set on the given channel
         * @param channel Channel to get the list from
         * @return A list with all modes of this type set on the given channel, can be NULL
@@ -149,13 +156,13 @@ class CoreExport ListModeBase : public ModeHandler
         * this mode from the channel.
         * See mode.h for more details.
         * @param channel The channel to remove all instances of the mode from
-        * @param stack The mode stack to add the mode change to
+        * @param changelist Mode change list to populate with the removal of this mode
         */
-       virtual void RemoveMode(Channel* channel, irc::modestacker& stack);
+       virtual void RemoveMode(Channel* channel, Modes::ChangeList& changelist);
 
        /** Perform a rehash of this mode's configuration data
         */
-       virtual void DoRehash();
+       void DoRehash();
 
        /** Handle the list mode.
         * See mode.h