skstream
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
socketbuf Class Referenceabstract

A base class for stream buffers that handle sockets. More...

#include <skstream.h>

Inheritance diagram for socketbuf:
dgram_socketbuf stream_socketbuf

Public Member Functions

 socketbuf (SOCKET_TYPE sock, std::streamsize insize=0x8000, std::streamsize outsize=0x8000)
 
 socketbuf (SOCKET_TYPE sock, std::streambuf::char_type *buf, std::streamsize length)
 
virtual ~socketbuf ()
 Destroy the socket buffer.
 
void setSocket (SOCKET_TYPE sock)
 Set the existing socket that this buffer should use.
 
SOCKET_TYPE getSocket () const
 Get the socket that this buffer uses.
 
void setReadTimeout (unsigned sec, unsigned usec=0)
 
void setWriteTimeout (unsigned sec, unsigned usec=0)
 
void setTimeout (unsigned sec, unsigned usec=0)
 
bool timeout () const
 Return the flag indicating whether a timeout has occured.
 

Protected Member Functions

virtual int_type overflow (int_type nCh=traits_type::eof())=0
 Handle writing data from the buffer to the socket.
 
virtual int_type underflow ()=0
 Handle reading data from the socket to the buffer.
 
virtual int sync ()
 Flush the output buffer.
 
std::streambuf * setbuf (std::streambuf::char_type *buf, std::streamsize len)
 

Protected Attributes

SOCKET_TYPE _socket
 
timeval _underflow_timeout
 
timeval _overflow_timeout
 
bool Timeout
 

Private Member Functions

 socketbuf (const socketbuf &)
 Not implemented. Copying a socket buffer is not permited.
 
socketbufoperator= (const socketbuf &)
 Not implemented. Copying a socket buffer is not permited.
 

Private Attributes

std::streambuf::char_type * _buffer
 

Detailed Description

A base class for stream buffers that handle sockets.

Constructor & Destructor Documentation

socketbuf::socketbuf ( SOCKET_TYPE  sock,
std::streamsize  insize = 0x8000,
std::streamsize  outsize = 0x8000 
)
explicit

Make a new socket buffer from an existing socket, with optional buffer sizes.

References setbuf(), and setSocket().

socketbuf::socketbuf ( SOCKET_TYPE  sock,
std::streambuf::char_type *  buf,
std::streamsize  length 
)

Make a new socket buffer from an existing socket, with an existing buffer.

References setbuf(), and setSocket().

Member Function Documentation

std::streambuf * socketbuf::setbuf ( std::streambuf::char_type *  buf,
std::streamsize  len 
)
protected

Set the buffer area this stream buffer uses. Only works if not already set.

Referenced by socketbuf(), and timeout().

void socketbuf::setReadTimeout ( unsigned  sec,
unsigned  usec = 0 
)
inline

Set up a timeout value after which an error flag is set if the socket is not ready for a read.

void socketbuf::setWriteTimeout ( unsigned  sec,
unsigned  usec = 0 
)
inline

Set up a timeout value after which an error flag is set if the socket is not ready for a write.


The documentation for this class was generated from the following files: