GNU CommonC++
Public Member Functions | Protected Member Functions

ost::SimpleTCPStream Class Reference

Simple TCP Stream, to be used with Common C++ Library. More...

#include <socket.h>

Inheritance diagram for ost::SimpleTCPStream:
ost::Socket

List of all members.

Public Member Functions

 SimpleTCPStream (TCPSocket &server, size_t size=512)
 Create a TCP stream by accepting a connection from a bound TCP socket acting as a server.
 SimpleTCPStream (const IPV4Host &host, tpport_t port, size_t size=512)
 Create a TCP stream by connecting to a TCP socket (on a remote machine).
 SimpleTCPStream (const SimpleTCPStream &source)
 A copy constructor creates a new stream buffer.
virtual ~SimpleTCPStream ()
 Flush and empty all buffers, and then remove the allocated buffers.
bool isPending (Pending pend, timeout_t timeout=TIMEOUT_INF)
 Get the status of pending stream data.
void flush ()
ssize_t read (char *bytes, size_t length, timeout_t timeout=0)
 Read bytes into a buffer.
ssize_t write (const char *bytes, size_t length, timeout_t timeout=0)
 Write bytes to buffer.
ssize_t peek (char *bytes, size_t length, timeout_t timeout=0)
 Peek at the incoming data.

Protected Member Functions

 SimpleTCPStream ()
 The constructor required for "SimpleTCPStream", a more C++ style version of the SimpleTCPStream class.
void endStream (void)
 Used to terminate the buffer space and cleanup the socket connection.
void Connect (const IPV4Host &host, tpport_t port, size_t size)
 Create a TCP stream by connecting to a TCP socket (on a remote machine).

Detailed Description

Simple TCP Stream, to be used with Common C++ Library.

This source is derived from a proposal made by Ville Vainio (vvainio@tp.spt.fi).

Author:
Mark S. Millard (msm@wizzer.com)
Date:
2002-08-15 Copyright (C) 2002 Wizzer Works.

Constructor & Destructor Documentation

ost::SimpleTCPStream::SimpleTCPStream ( ) [protected]

The constructor required for "SimpleTCPStream", a more C++ style version of the SimpleTCPStream class.

ost::SimpleTCPStream::SimpleTCPStream ( TCPSocket server,
size_t  size = 512 
)

Create a TCP stream by accepting a connection from a bound TCP socket acting as a server.

This performs an "accept" call.

Parameters:
serverbound server tcp socket.
sizeof streaming input and output buffers.
ost::SimpleTCPStream::SimpleTCPStream ( const IPV4Host host,
tpport_t  port,
size_t  size = 512 
)

Create a TCP stream by connecting to a TCP socket (on a remote machine).

Parameters:
hostaddress of remote TCP server.
portnumber to connect.
sizeof streaming input and output buffers.
ost::SimpleTCPStream::SimpleTCPStream ( const SimpleTCPStream source)

A copy constructor creates a new stream buffer.

Parameters:
sourceA reference to the SimpleTCPStream to copy.
virtual ost::SimpleTCPStream::~SimpleTCPStream ( ) [virtual]

Flush and empty all buffers, and then remove the allocated buffers.


Member Function Documentation

void ost::SimpleTCPStream::Connect ( const IPV4Host host,
tpport_t  port,
size_t  size 
) [protected]

Create a TCP stream by connecting to a TCP socket (on a remote machine).

Parameters:
hostaddress of remote TCP server.
portnumber to connect.
sizeof streaming input and output buffers.
void ost::SimpleTCPStream::endStream ( void  ) [protected]

Used to terminate the buffer space and cleanup the socket connection.

This fucntion is called by the destructor.

void ost::SimpleTCPStream::flush ( ) [inline]
bool ost::SimpleTCPStream::isPending ( Pending  pend,
timeout_t  timeout = TIMEOUT_INF 
) [virtual]

Get the status of pending stream data.

This method can be used to examine if input or output is waiting, or if an error or disconnect has occured on the stream. If a read buffer contains data then input is ready. If write buffer contains data, it is first flushed and then checked.

Parameters:
pendFlag indicating means to pend.
timeoutThe length of time to wait.

Reimplemented from ost::Socket.

ssize_t ost::SimpleTCPStream::peek ( char *  bytes,
size_t  length,
timeout_t  timeout = 0 
)

Peek at the incoming data.

The data is copied into the buffer but is not removed from the input queue. The function then returns the number of bytes currently pending to receive.

Parameters:
bytesA pointer to buffer that will contain the bytes read.
lengthThe number of bytes to read (exactly).
timeoutPeriod to time out, in milleseconds.
Returns:
The number of bytes pending on the input queue, 0 on EOF.
ssize_t ost::SimpleTCPStream::read ( char *  bytes,
size_t  length,
timeout_t  timeout = 0 
)

Read bytes into a buffer.

<long-description>

Parameters:
bytesA pointer to buffer that will contain the bytes read.
lengthThe number of bytes to read (exactly).
timeoutPeriod to time out, in milleseconds.
Returns:
The number of bytes actually read, 0 on EOF.
ssize_t ost::SimpleTCPStream::write ( const char *  bytes,
size_t  length,
timeout_t  timeout = 0 
)

Write bytes to buffer.

<long-description>

Parameters:
bytesA pointer to a buffer containing the bytes to write.
lengthThe number of bytes to write (exactly).
timeoutPeriod to time out, in milleseconds.
Returns:
The number of bytes actually written.

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