summaryrefslogtreecommitdiffstats
path: root/src/ByteBuffer.cpp
diff options
context:
space:
mode:
authorTycho Bickerstaff <work.tycho@gmail.com>2013-12-11 00:01:24 +0100
committerTycho Bickerstaff <work.tycho@gmail.com>2013-12-11 00:01:24 +0100
commitd9a429ec6463818b50f3c930732abaa29e0af558 (patch)
treeb1024f5001265301ed1ca6e23bd6d5c325e825fd /src/ByteBuffer.cpp
parentfixed unused expression warnings in blockFire (diff)
parentMerge branch 'master' of https://github.com/mc-server/MCServer (diff)
downloadcuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar.gz
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar.bz2
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar.lz
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar.xz
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.tar.zst
cuberite-d9a429ec6463818b50f3c930732abaa29e0af558.zip
Diffstat (limited to 'src/ByteBuffer.cpp')
-rw-r--r--src/ByteBuffer.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/ByteBuffer.cpp b/src/ByteBuffer.cpp
index 29f3afbfc..64c03d0d3 100644
--- a/src/ByteBuffer.cpp
+++ b/src/ByteBuffer.cpp
@@ -773,6 +773,28 @@ void cByteBuffer::ReadAll(AString & a_Data)
+bool cByteBuffer::ReadToByteBuffer(cByteBuffer & a_Dst, int a_NumBytes)
+{
+ if (!a_Dst.CanWriteBytes(a_NumBytes) || !CanReadBytes(a_NumBytes))
+ {
+ // There's not enough source bytes or space in the dest BB
+ return false;
+ }
+ char buf[1024];
+ while (a_NumBytes > 0)
+ {
+ int num = (a_NumBytes > sizeof(buf)) ? sizeof(buf) : a_NumBytes;
+ VERIFY(ReadBuf(buf, num));
+ VERIFY(a_Dst.Write(buf, num));
+ a_NumBytes -= num;
+ }
+ return true;
+}
+
+
+
+
+
void cByteBuffer::CommitRead(void)
{
CHECK_THREAD;