diff options
Diffstat (limited to 'Swiften/StringCodecs/Hexify.cpp')
-rw-r--r-- | Swiften/StringCodecs/Hexify.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Swiften/StringCodecs/Hexify.cpp b/Swiften/StringCodecs/Hexify.cpp new file mode 100644 index 0000000..504e314 --- /dev/null +++ b/Swiften/StringCodecs/Hexify.cpp @@ -0,0 +1,22 @@ +#include "Swiften/StringCodecs/Hexify.h" + +#include <sstream> +#include <iomanip> +#include <boost/numeric/conversion/cast.hpp> + +#include "Swiften/Base/String.h" +#include "Swiften/Base/ByteArray.h" + +namespace Swift { + +String Hexify::hexify(const ByteArray& data) { + std::ostringstream result; + result << std::hex; + + for (unsigned int i = 0; i < data.getSize(); ++i) { + result << std::setw(2) << std::setfill('0') << boost::numeric_cast<unsigned int>(static_cast<unsigned char>(data[i])); + } + return String(result.str()); +} + +} |