#include "socketstream.h" using namespace zutil; SocketStreamBuffer::SocketStreamBuffer(SocketIO &s) : soc(s){ pBeg = pBuffer; pCur = pBuffer; pEnd = pBuffer; //pEnd = pBuffer + BUFFER_SIZE; streambuf::setp(pBeg, pEnd); gBeg = gBuffer; gCur = gBuffer; gEnd = gBuffer + BUFFER_SIZE; streambuf::setg(gBeg, gCur, gEnd); } int SocketStreamBuffer::underflow() { int recv_bytes = soc.read(gBuffer, BUFFER_SIZE); if(recv_bytes > 0){ gCur = gBuffer; gEnd = gBuffer+recv_bytes; streambuf::setg(gBeg, gCur, gEnd); return Tr::not_eof( *gCur ); } return Tr::eof(); } int SocketStreamBuffer::overflow(int c) { if(c == Tr::eof()) return Tr::not_eof(c); soc.write(c); return c; /*if(sync() >= 0) return c; return Tr::eof();*/ }/* int SocketStreamBuffer::sync() { if( soc.write( pBuffer, pCur-pBeg )){ pCur = pBuffer; streambuf::setp(pBeg, pEnd); return 0; } return -1; }*/