aboutsummaryrefslogtreecommitdiff
path: root/include/olm/memory.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/olm/memory.hh')
-rw-r--r--include/olm/memory.hh24
1 files changed, 23 insertions, 1 deletions
diff --git a/include/olm/memory.hh b/include/olm/memory.hh
index 128990a..89afd99 100644
--- a/include/olm/memory.hh
+++ b/include/olm/memory.hh
@@ -1,4 +1,4 @@
-/* Copyright 2015 OpenMarket Ltd
+/* Copyright 2015, 2016 OpenMarket Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,9 @@
#include <cstddef>
#include <cstdint>
#include <cstring>
+#include <iomanip>
+#include <iostream>
+#include <sstream>
#include <type_traits>
namespace olm {
@@ -84,4 +87,23 @@ std::uint8_t * store_array(
return destination + sizeof(T);
}
+/** convert an array of bytes to a string representation */
+template<typename T>
+std::string bytes_to_string(T start, T end) {
+ std::ostringstream ss;
+ ss << std::hex << std::setfill('0');
+ while (start != end) {
+ ss << std::setw(2) << static_cast<int>(*start++);
+ if (start != end) {
+ ss << ":";
+ }
+ }
+ return ss.str();
+}
+
+template<typename T>
+std::string bytes_to_string(T start, size_t len) {
+ return bytes_to_string(start, start+len);
+}
+
} // namespace olm