diff options
author | Richard van der Hoff <richard@matrix.org> | 2016-04-26 11:44:32 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2016-04-26 17:55:26 +0100 |
commit | 9848f8445292ad3f7ff92bd4abfeb8f2d08ec32d (patch) | |
tree | 36f1f030f71bd16b85e0fe1aa77c42f457a3b168 /include/olm/memory.hh | |
parent | e7a2af1ede768589e612bad1c61b10186a1bb686 (diff) |
Add some logging to help understand what's going on
Diffstat (limited to 'include/olm/memory.hh')
-rw-r--r-- | include/olm/memory.hh | 24 |
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 |