]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/hashcomp.h
Refactor port binding, warning not yet tested fully
[user/henk/code/inspircd.git] / include / hashcomp.h
index b7f8d95389533af87118baa622fbd4c5198e4dad..b903f774885540c407b36f54faa2f6e42b4b5f8f 100644 (file)
@@ -185,12 +185,20 @@ namespace irc
                /** Return zero or more elements which form the
                 * mode line. This will be clamped to a max of
                 * MAXMODES+1 items (MAXMODES mode parameters and
-                * one mode sequence string).
+                * one mode sequence string), and max_line_size
+                * characters. As specified below, this function
+                * should be called in a loop until it returns zero,
+                * indicating there are no more modes to return.
                 * @param result The deque to populate. This will
                 * be cleared before it is used.
-                * @return The number of elements in the deque
-                */
-               int GetStackedLine(std::deque<std::string> &result);
+                * @param max_line_size The maximum size of the line
+                * to build, in characters, seperate to MAXMODES.
+                * @return The number of elements in the deque.
+                * The function should be called repeatedly until it
+                * returns 0, in case there are multiple lines of
+                * mode changes to be obtained.
+                */
+               int GetStackedLine(std::deque<std::string> &result, int max_line_size = 360);
        };
 
        /** irc::tokenstream reads a string formatted as per RFC1459 and RFC2812.
@@ -229,7 +237,7 @@ namespace irc
                /** Fetch the next token from the stream
                 * @return The next token is returned, or an empty string if none remain
                 */
-               const std::string GetToken();
+               bool GetToken(std::string &token);
        };
 
        /** irc::sepstream allows for splitting token seperated lists.
@@ -522,11 +530,12 @@ std::istream& operator>>(std::istream &is, irc::string &str);
  */
 std::string operator+ (std::string& leftval, irc::string& rightval);
 irc::string operator+ (irc::string& leftval, std::string& rightval);
-bool operator== (std::string& leftval, irc::string& rightval);
-bool operator== (irc::string& leftval, std::string& rightval);
+bool operator== (const std::string& leftval, const irc::string& rightval);
+bool operator== (const irc::string& leftval, const std::string& rightval);
 
 std::string assign(const irc::string &other);
 irc::string assign(const std::string &other);
+std::string& trim(std::string &str);
 
 namespace nspace
 {