pion::net::TCPStreamBuffer Class Reference

#include <TCPStream.hpp>

List of all members.


Detailed Description

TCPStreamBuffer: std::basic_streambuf wrapper for TCP network connections. Based in part on section 13.13.3 of "The Standard C++ Library" by Nicolai M. Josuttis, published in 1999 by Addison-Wesley

Definition at line 32 of file TCPStream.hpp.

Public Types

typedef char char_type
typedef std::char_traits<
char >::int_type 
int_type
typedef std::char_traits<
char >::off_type 
off_type
typedef std::char_traits<
char >::pos_type 
pos_type
typedef std::char_traits<
char > 
traits_type
 PUT_BACK_MAX = 10
 WRITE_BUFFER_SIZE = 8192
enum  { PUT_BACK_MAX = 10, WRITE_BUFFER_SIZE = 8192 }

Public Member Functions

 TCPStreamBuffer (TCPConnectionPtr &conn_ptr)
 TCPStreamBuffer (boost::asio::io_service &io_service, const bool ssl_flag=false)
 TCPStreamBuffer (boost::asio::io_service &io_service, TCPConnection::SSLContext &ssl_context)
virtual ~TCPStreamBuffer ()
 virtual destructor flushes the write buffer
TCPConnectiongetConnection (void)
 returns a reference to the current TCP connection
const TCPConnectiongetConnection (void) const
 returns a const reference to the current TCP connection

Protected Member Functions

void setupBuffers (void)
 sets up the read and write buffers for input and output
int_type flushOutput (void)
virtual int_type underflow (void)
virtual int_type overflow (int_type c)
virtual std::streamsize xsputn (const char_type *s, std::streamsize n)
virtual std::streamsize xsgetn (char_type *s, std::streamsize n)
virtual int_type sync (void)


Constructor & Destructor Documentation

pion::net::TCPStreamBuffer::TCPStreamBuffer ( TCPConnectionPtr conn_ptr  )  [inline, explicit]

constructs a TCP stream buffer object for an existing TCP connection

Parameters:
conn_ptr pointer to the TCP connection to use for reading & writing

Definition at line 56 of file TCPStream.hpp.

References setupBuffers().

pion::net::TCPStreamBuffer::TCPStreamBuffer ( boost::asio::io_service &  io_service,
const bool  ssl_flag = false 
) [inline, explicit]

constructs a TCP stream buffer object for a new TCP connection

Parameters:
io_service asio service associated with the connection
ssl_flag if true then the connection will be encrypted using SSL

Definition at line 68 of file TCPStream.hpp.

References setupBuffers().

pion::net::TCPStreamBuffer::TCPStreamBuffer ( boost::asio::io_service &  io_service,
TCPConnection::SSLContext ssl_context 
) [inline]

constructs a TCP stream buffer object for a new SSL/TCP connection

Parameters:
io_service asio service associated with the connection
ssl_context asio ssl context associated with the connection

Definition at line 82 of file TCPStream.hpp.

References setupBuffers().


Member Function Documentation

int_type pion::net::TCPStreamBuffer::flushOutput ( void   )  [inline, protected]

writes data in the output buffer to the TCP connection

Returns:
int_type the number of bytes sent, or eof() if there was an error

Definition at line 115 of file TCPStream.hpp.

Referenced by overflow(), sync(), and xsputn().

virtual int_type pion::net::TCPStreamBuffer::overflow ( int_type  c  )  [inline, protected, virtual]

this function is called when the write buffer for the stream is full

Parameters:
c character that has not been written yet, or eof() if we are flushing
Returns:
int_type the last character written, or eof() if there was an error

Definition at line 182 of file TCPStream.hpp.

References flushOutput().

virtual int_type pion::net::TCPStreamBuffer::sync ( void   )  [inline, protected, virtual]

synchronize buffers with the TCP connection

Returns:
0 if successful, -1 if there was an error

Definition at line 279 of file TCPStream.hpp.

References flushOutput().

Referenced by ~TCPStreamBuffer().

virtual int_type pion::net::TCPStreamBuffer::underflow ( void   )  [inline, protected, virtual]

this function is called when the read buffer has no more characters available

Returns:
int_type the next character available for reading, or eof() if there was an error

Definition at line 139 of file TCPStream.hpp.

Referenced by xsgetn().

virtual std::streamsize pion::net::TCPStreamBuffer::xsgetn ( char_type s,
std::streamsize  n 
) [inline, protected, virtual]

reads a sequence of characters

Parameters:
s pointer to where the sequence of characters will be stored
n number of characters in the sequence to read
Returns:
std::streamsize number of character read

Definition at line 252 of file TCPStream.hpp.

References underflow().

virtual std::streamsize pion::net::TCPStreamBuffer::xsputn ( const char_type s,
std::streamsize  n 
) [inline, protected, virtual]

writes a sequence of characters

Parameters:
s pointer to a sequence of characters
n number of characters in the sequence to write
Returns:
std::streamsize number of character written

Definition at line 203 of file TCPStream.hpp.

References flushOutput().


The documentation for this class was generated from the following file:
Generated on Fri Apr 30 14:48:54 2010 for pion-net by  doxygen 1.4.7