mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-23 16:48:06 +02:00
support for FIFOBuffer in StreamSocket::read/writeBytes()
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user