summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-09-17 14:08:03 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-09-17 14:08:03 +0000
commit0e21e5b642562b199fb53b4f8302596ee592caa0 (patch)
tree340bb1fc98d544896028d6d2931af90974b70bca /include
parent3a7dd5b129450b94e0a87b8ad5009da70905b8e5 (diff)
Turn irc::commasepstream into a base class, irc::sepstream, inherit two classes from it: irc::commasepstream and irc::spacesepstream, to be used for the most common token seperators "," and " "
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5266 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include')
-rw-r--r--include/hashcomp.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/include/hashcomp.h b/include/hashcomp.h
index 0a39deb1f..69fa677b8 100644
--- a/include/hashcomp.h
+++ b/include/hashcomp.h
@@ -161,22 +161,39 @@ namespace irc
* the next token, until none remain, at which point the method returns
* an empty string.
*/
- class commasepstream
+ class sepstream : public classbase
{
private:
std::string tokens;
std::string::iterator last_starting_position;
std::string::iterator n;
+ char sep;
public:
/** Create a commasepstream and fill it with the provided data
*/
- commasepstream(const std::string &source);
- ~commasepstream();
+ sepstream(const std::string &source, char seperator);
+ virtual ~sepstream();
/** Fetch the next token from the stream
* @returns The next token is returned, or an empty string if none remain
*/
- const std::string GetToken();
+ virtual const std::string GetToken();
+ };
+
+ class commasepstream : public sepstream
+ {
+ public:
+ commasepstream(const std::string &source) : sepstream(source, ',')
+ {
+ }
+ };
+
+ class spacesepstream : public sepstream
+ {
+ public:
+ spacesepstream(const std::string &source) : sepstream(source, ' ')
+ {
+ }
};