summaryrefslogtreecommitdiff
path: root/include/hashcomp.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/hashcomp.h')
-rw-r--r--include/hashcomp.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/include/hashcomp.h b/include/hashcomp.h
index 9a3169435..b9c568135 100644
--- a/include/hashcomp.h
+++ b/include/hashcomp.h
@@ -186,18 +186,30 @@ namespace irc
* list will be ":item". This is to allow for parsing 'source' fields
* from data.
*/
- class CoreExport tokenstream : private spacesepstream
+ class CoreExport tokenstream
{
+ private:
+ /** The message we are parsing tokens from. */
+ std::string message;
+
+ /** The current position within the message. */
+ size_t position;
+
public:
- /** Create a tokenstream and fill it with the provided data
+ /** Create a tokenstream and fill it with the provided data. */
+ tokenstream(const std::string& msg, size_t start = 0);
+
+ /** Retrieve the next <middle> token in the token stream.
+ * @param token The next token available, or an empty string if none remain.
+ * @return True if tokens are left to be read, false if the last token was just retrieved.
*/
- tokenstream(const std::string &source);
+ bool GetMiddle(std::string& token);
- /** Fetch the next token from the stream as a std::string
- * @param token The next token available, or an empty string if none remain
+ /** Retrieve the next <trailing> token in the token stream.
+ * @param token The next token available, or an empty string if none remain.
* @return True if tokens are left to be read, false if the last token was just retrieved.
*/
- bool GetToken(std::string &token);
+ bool GetTrailing(std::string& token);
};
/** The portparser class seperates out a port range into integers.