From cb640ffea4a51a10db2e379ada8dc0487378ba09 Mon Sep 17 00:00:00 2001 From: bibo38 Date: Wed, 12 Oct 2016 14:38:45 +0200 Subject: Spectators added (#2852) --- src/ByteBuffer.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/ByteBuffer.cpp') diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp index b5f862a73..6cfb66f9a 100644 --- a/src/ByteBuffer.cpp +++ b/src/ByteBuffer.cpp @@ -53,6 +53,16 @@ Unfortunately it is very slow, so it is disabled even for regular DEBUG builds. +static char ValueToHexDigit(UInt8 digit) +{ + ASSERT(digit < 16); + return "0123456789abcdef"[digit]; +} + + + + + #ifdef DEBUG_SINGLE_THREAD_ACCESS /** Simple RAII class that is used for checking that no two threads are using an object simultanously. @@ -517,6 +527,29 @@ bool cByteBuffer::ReadPosition64(int & a_BlockX, int & a_BlockY, int & a_BlockZ) +bool cByteBuffer::ReadUUID(AString & a_Value) +{ + CHECK_THREAD + + if (!ReadString(a_Value, 16)) + { + return false; + } + + a_Value.resize(32); + for (unsigned int i = 15; i < 16; i--) + { + a_Value[i * 2 + 1] = ValueToHexDigit(a_Value[i] & 0xf); + a_Value[i * 2] = ValueToHexDigit(static_cast(a_Value[i]) >> 4); + } + + return true; +} + + + + + bool cByteBuffer::WriteBEInt8(Int8 a_Value) { CHECK_THREAD -- cgit v1.2.3