summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-03 13:46:28 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-03 13:46:28 +0000
commit9716d24be9e3e567308f6d144a65eeaccd65484a (patch)
tree78d19137cdc1a87133741c65c397207651f7d4f1 /include
parentab58b38578dfaeda2f53ba84e475ed9638e5f6da (diff)
New helper class irc::stringjoiner - it pwns you.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5403 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include')
-rw-r--r--include/hashcomp.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/hashcomp.h b/include/hashcomp.h
index f4b690caf..a99b5e76b 100644
--- a/include/hashcomp.h
+++ b/include/hashcomp.h
@@ -123,6 +123,29 @@ namespace irc
bool operator()(const insp_inaddr &s1, const insp_inaddr &s2) const;
};
+ /** irc::stringjoiner joins string lists into a string, using
+ * the given seperator string.
+ */
+ class stringjoiner
+ {
+ private:
+ std::string joined;
+ public:
+ /** Join elements of a vector, between (and including) begin and end
+ */
+ stringjoiner(const std::string &seperator, const std::vector<std::string> &sequence, int begin, int end);
+ /** Join elements of a deque, between (and including) begin and end
+ */
+ stringjoiner(const std::string &seperator, const std::deque<std::string> &sequence, int begin, int end);
+ /** Join elements of an array of char arrays, between (and including) begin and end
+ */
+ stringjoiner(const std::string &seperator, const char** sequence, int begin, int end);
+
+ /** Get the joined sequence
+ */
+ std::string& GetJoined();
+ };
+
/** irc::modestacker stacks mode sequences into a list.
* It can then reproduce this list, clamped to a maximum of MAXMODES
* values per line.