summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ByteBuffer.cpp32
-rw-r--r--src/ByteBuffer.h2
2 files changed, 33 insertions, 1 deletions
diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp
index e1e5867a9..f3dc44d91 100644
--- a/src/ByteBuffer.cpp
+++ b/src/ByteBuffer.cpp
@@ -348,8 +348,24 @@ bool cByteBuffer::ReadBEShort(short & a_Value)
CHECK_THREAD
CheckValid();
NEEDBYTES(2);
+ Int16 val;
+ ReadBuf(&val, 2);
+ val = ntohs(val);
+ a_Value = *(reinterpret_cast<short *>(&val));
+ return true;
+}
+
+
+
+
+
+bool cByteBuffer::ReadBEUInt16(UInt16 & a_Value)
+{
+ CHECK_THREAD
+ CheckValid();
+ NEEDBYTES(2);
ReadBuf(&a_Value, 2);
- a_Value = (short)ntohs((u_short)a_Value);
+ a_Value = ntohs(a_Value);
return true;
}
@@ -371,6 +387,20 @@ bool cByteBuffer::ReadBEInt(int & a_Value)
+bool cByteBuffer::ReadBEUInt32(UInt32 & a_Value)
+{
+ CHECK_THREAD
+ CheckValid();
+ NEEDBYTES(4);
+ ReadBuf(&a_Value, 4);
+ a_Value = ntohl(a_Value);
+ return true;
+}
+
+
+
+
+
bool cByteBuffer::ReadBEInt64(Int64 & a_Value)
{
CHECK_THREAD
diff --git a/src/ByteBuffer.h b/src/ByteBuffer.h
index 2a316fa32..f480ad557 100644
--- a/src/ByteBuffer.h
+++ b/src/ByteBuffer.h
@@ -55,7 +55,9 @@ public:
bool ReadChar (char & a_Value);
bool ReadByte (unsigned char & a_Value);
bool ReadBEShort (short & a_Value);
+ bool ReadBEUInt16 (UInt16 & a_Value);
bool ReadBEInt (int & a_Value);
+ bool ReadBEUInt32 (UInt32 & a_Value);
bool ReadBEInt64 (Int64 & a_Value);
bool ReadBEFloat (float & a_Value);
bool ReadBEDouble (double & a_Value);