From 4e05484ab2475cd50572a81e831235f916e8b7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Mon, 23 May 2011 21:09:49 +0200 Subject: Added makeString(). diff --git a/Swiften/Base/String.h b/Swiften/Base/String.h index 0de6cac..db6c28b 100644 --- a/Swiften/Base/String.h +++ b/Swiften/Base/String.h @@ -8,6 +8,7 @@ #include #include +#include #define SWIFTEN_STRING_TO_CFSTRING(a) \ CFStringCreateWithBytes(NULL, reinterpret_cast(a.c_str()), a.size(), kCFStringEncodingUTF8, false) @@ -18,11 +19,28 @@ namespace Swift { std::pair getSplittedAtFirst(const std::string&, char c); std::vector split(const std::string&, char c); void replaceAll(std::string&, char c, const std::string& s); + inline bool beginsWith(const std::string& s, char c) { return s.size() > 0 && s[0] == c; } + inline bool endsWith(const std::string& s, char c) { return s.size() > 0 && s[s.size()-1] == c; } }; + + class makeString { + public: + template makeString& operator<<(T const& v) { + stream << v; + return *this; + } + + operator std::string() const { + return stream.str(); + } + + private: + std::ostringstream stream; + }; } diff --git a/Swiften/JID/JID.cpp b/Swiften/JID/JID.cpp index 9fa0574..2ebbdd6 100644 --- a/Swiften/JID/JID.cpp +++ b/Swiften/JID/JID.cpp @@ -24,6 +24,8 @@ #include #include +using namespace Swift; + #ifdef SWIFTEN_CACHE_JID_PREP typedef boost::unordered_map PrepCache; @@ -35,9 +37,7 @@ static PrepCache resourcePrepCache; static const std::list escapedChars = boost::assign::list_of(' ')('"')('&')('\'')('/')('<')('>')('@')(':'); static std::string getEscaped(char c) { - std::ostringstream s; - s << '\\' << std::hex << static_cast(c); - return s.str(); + return makeString() << '\\' << std::hex << static_cast(c); } static bool getEscapeSequenceValue(const std::string& sequence, unsigned char& value) { @@ -110,8 +110,6 @@ struct EscapedCharacterFormatter { }; #endif -using namespace Swift; - JID::JID(const char* jid) { initializeFromString(std::string(jid)); } -- cgit v0.10.2-6-g49f6