pion::tcp::stream_buffer Class Reference

#include <stream.hpp>

List of all members.

Public Types

enum  { PUT_BACK_MAX = 10, WRITE_BUFFER_SIZE = 8192 }
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

Public Member Functions

 stream_buffer (tcp::connection_ptr &conn_ptr)
 stream_buffer (boost::asio::io_service &io_service, const bool ssl_flag=false)
 stream_buffer (boost::asio::io_service &io_service, connection::ssl_context_type &ssl_context)
virtual ~stream_buffer ()
 virtual destructor flushes the write buffer
connectionget_connection (void)
 returns a reference to the current TCP connection
const connectionget_connection (void) const
 returns a const reference to the current TCP connection

Protected Member Functions

void setup_buffers (void)
 sets up the read and write buffers for input and output
int_type flush_output (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)

Detailed Description

stream_buffer: 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 stream.hpp.


Constructor & Destructor Documentation

pion::tcp::stream_buffer::stream_buffer ( tcp::connection_ptr &  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 stream.hpp.

References setup_buffers().

pion::tcp::stream_buffer::stream_buffer ( 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 stream.hpp.

References setup_buffers().

pion::tcp::stream_buffer::stream_buffer ( boost::asio::io_service &  io_service,
connection::ssl_context_type 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 stream.hpp.

References setup_buffers().


Member Function Documentation

int_type pion::tcp::stream_buffer::flush_output ( 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 stream.hpp.

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

virtual int_type pion::tcp::stream_buffer::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 stream.hpp.

References flush_output().

virtual int_type pion::tcp::stream_buffer::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 stream.hpp.

References flush_output().

Referenced by ~stream_buffer().

virtual int_type pion::tcp::stream_buffer::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 stream.hpp.

Referenced by xsgetn().

virtual std::streamsize pion::tcp::stream_buffer::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 stream.hpp.

References underflow().

virtual std::streamsize pion::tcp::stream_buffer::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 stream.hpp.

References flush_output().


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

Generated on 16 Sep 2013 for pion by  doxygen 1.6.1