]> 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 149f4157867526393f1258bf104c622934cbee51..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
@@ -106,7 +109,8 @@ class CoreExport ListModeBase : public ModeHandler
 
  public:
        /** Constructor.
-        * @param Instance The creator of this class
+        * @param Creator The creator of this class
+        * @param Name Mode name
         * @param modechar Mode character
         * @param eolstr End of list string
         * @param lnum List numeric
@@ -122,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
@@ -148,34 +156,22 @@ 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();
-
-       /** Populate the Implements list with the correct events for a List Mode
-        */
-       virtual void DoImplements(Module* m);
+       void DoRehash();
 
        /** Handle the list mode.
         * See mode.h
         */
        virtual ModeAction OnModeChange(User* source, User*, Channel* channel, std::string &parameter, bool adding);
 
-       /** Syncronize channel item list with another server.
-        * See modules.h
-        * @param chan Channel to syncronize
-        * @param proto Protocol module pointer
-        * @param opaque Opaque connection handle
-        */
-       virtual void DoSyncChannel(Channel* chan, Module* proto, void* opaque);
-
        /** Validate parameters.
         * Overridden by implementing module.
-        * @param source Source user adding the parameter
+        * @param user Source user adding the parameter
         * @param channel Channel the parameter is being added to
         * @param parameter The actual parameter being added
         * @return true if the parameter is valid