pion-net  4.0.9
Public Types | Public Member Functions | Protected Member Functions
pion::net::TCPStreamBuffer Class Reference

#include <TCPStream.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

 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)

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.


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_ptrpointer 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_serviceasio service associated with the connection
ssl_flagif 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_serviceasio service associated with the connection
ssl_contextasio 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:
ccharacter 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:
spointer to where the sequence of characters will be stored
nnumber 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:
spointer to a sequence of characters
nnumber 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: