diff options
author | Tycho Bickerstaff <work.tycho@gmail.com> | 2013-12-11 00:01:24 +0100 |
---|---|---|
committer | Tycho Bickerstaff <work.tycho@gmail.com> | 2013-12-11 00:01:24 +0100 |
commit | d9a429ec6463818b50f3c930732abaa29e0af558 (patch) | |
tree | b1024f5001265301ed1ca6e23bd6d5c325e825fd /src/ByteBuffer.cpp | |
parent | fixed unused expression warnings in blockFire (diff) | |
parent | Merge branch 'master' of https://github.com/mc-server/MCServer (diff) | |
download | cuberite-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.cpp | 22 |
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; |