support for FIFOBuffer in StreamSocket::read/writeBytes()

This commit is contained in:
Aleksandar Fabijanic
2012-05-19 05:16:42 +00:00
parent 9b952a29c7
commit 484510dec5
6 changed files with 246 additions and 12 deletions

View File

@@ -36,6 +36,7 @@
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/StreamSocketImpl.h"
#include "Poco/FIFOBuffer.h"
#include "Poco/Exception.h"
@@ -133,12 +134,28 @@ int StreamSocket::sendBytes(const void* buffer, int length, int flags)
}
int StreamSocket::sendBytes(FIFOBuffer& fifoBuf)
{
int ret = impl()->sendBytes(&fifoBuf.buffer()[0], fifoBuf.used());
if (ret > 0) fifoBuf.drain(ret);
return ret;
}
int StreamSocket::receiveBytes(void* buffer, int length, int flags)
{
return impl()->receiveBytes(buffer, length, flags);
}
int StreamSocket::receiveBytes(FIFOBuffer& fifoBuf)
{
int ret = impl()->receiveBytes(fifoBuf.next(), fifoBuf.available());
if (ret > 0) fifoBuf.advance(ret);
return ret;
}
void StreamSocket::sendUrgent(unsigned char data)
{
impl()->sendUrgent(data);