UCommon
ucommon::tcpstream Class Reference

Streamable tcp connection between client and server. More...

#include <stream.h>

Inheritance diagram for ucommon::tcpstream:
Collaboration diagram for ucommon::tcpstream:

Public Member Functions

void close (void)
 Close an active stream connection.
 
void open (const char *host, const char *service, unsigned segment=536)
 Open a stream connectoion to a host and service.
 
void open (Socket::address &address, unsigned segment=536)
 Open a stream connection to a tcp service.
 
 operator bool () const
 See if stream connection is active.
 
bool operator! () const
 See if stream is disconnected.
 
 tcpstream (const TCPServer *server, unsigned segsize=536, timeout_t timeout=0)
 Create a stream from an existing tcp listener.
 
 tcpstream (const tcpstream &copy)
 Copy constructor...
 
 tcpstream (int family=2, timeout_t timeout=0)
 Create an unconnected tcp stream object that is idle until opened.
 
 tcpstream (Socket::address &address, unsigned segsize=536, timeout_t timeout=0)
 A convenience constructor that creates a connected tcp stream directly from an address.
 
virtual ~tcpstream ()
 Destroy a tcp stream.
 
- Public Member Functions inherited from ucommon::StreamBuffer
bool is_open (void) const
 
 operator bool () const
 
bool operator! () const
 
int sync (void)
 Flush the stream input and output buffers, writes pending output.
 

Protected Member Functions

virtual ssize_t _read (char *buffer, size_t size)
 
virtual bool _wait (void)
 
virtual ssize_t _write (const char *buffer, size_t size)
 
socket_t getsocket (void) const
 
int overflow (int ch)
 This streambuf method is used to write the output buffer through the established tcp connection.
 
void release (void)
 Release the tcp stream and destroy the underlying socket.
 
int underflow (void)
 This streambuf method is used to load the input buffer through the established tcp socket connection.
 
- Protected Member Functions inherited from ucommon::StreamBuffer
void allocate (size_t size)
 
void release (void)
 
int uflow ()
 This streambuf method is used for doing unbuffered reads through the establish tcp socket connection when in interactive mode.
 

Protected Attributes

socket_t so
 
timeout_t timeout
 
- Protected Attributes inherited from ucommon::StreamBuffer
size_t bufsize
 
char * gbuf
 
char * pbuf
 

Detailed Description

Streamable tcp connection between client and server.

The tcp stream class can represent a client connection to a server or an instance of a service generated by a tcp listener. As a stream class, data can be manipulated using the << and >> operators.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 114 of file stream.h.

Constructor & Destructor Documentation

◆ tcpstream() [1/4]

ucommon::tcpstream::tcpstream ( const tcpstream & copy)

Copy constructor...

Parameters
copyfor object.

◆ tcpstream() [2/4]

ucommon::tcpstream::tcpstream ( const TCPServer * server,
unsigned segsize = 536,
timeout_t timeout = 0 )

Create a stream from an existing tcp listener.

Parameters
serverto accept connection from.
segsizefor tcp segments and buffering.
timeoutfor socket i/o operations.

◆ tcpstream() [3/4]

ucommon::tcpstream::tcpstream ( int family = 2,
timeout_t timeout = 0 )

Create an unconnected tcp stream object that is idle until opened.

Parameters
familyof protocol to create.
timeoutfor socket i/o operations.

◆ tcpstream() [4/4]

ucommon::tcpstream::tcpstream ( Socket::address & address,
unsigned segsize = 536,
timeout_t timeout = 0 )

A convenience constructor that creates a connected tcp stream directly from an address.

The socket is constructed to match the type of the the address family in the socket address that is passed.

Parameters
addressof service to connect to.
segsizefor tcp segments and buffering.
timeoutfor socket i/o operations.

Member Function Documentation

◆ close()

void ucommon::tcpstream::close ( void )

Close an active stream connection.

This does not release the socket but is a disconnect.

◆ getsocket()

socket_t ucommon::tcpstream::getsocket ( void ) const
inlineprotected

Definition at line 151 of file stream.h.

◆ open() [1/2]

void ucommon::tcpstream::open ( const char * host,
const char * service,
unsigned segment = 536 )

Open a stream connectoion to a host and service.

Parameters
hostto connect to.
serviceto connect to by name or number as string.
segmentbuffering size to use.

◆ open() [2/2]

void ucommon::tcpstream::open ( Socket::address & address,
unsigned segment = 536 )

Open a stream connection to a tcp service.

Parameters
addressof service to access.
segmentbuffering size to use.

◆ operator bool()

ucommon::tcpstream::operator bool ( ) const
inline

See if stream connection is active.

Returns
true if stream is active.

Definition at line 196 of file stream.h.

◆ operator!()

bool ucommon::tcpstream::operator! ( ) const
inline

See if stream is disconnected.

Returns
true if stream disconnected.

Definition at line 204 of file stream.h.

◆ overflow()

int ucommon::tcpstream::overflow ( int ch)
protected

This streambuf method is used to write the output buffer through the established tcp connection.

Parameters
chchar to push through.
Returns
char pushed through.

◆ underflow()

int ucommon::tcpstream::underflow ( void )
protected

This streambuf method is used to load the input buffer through the established tcp socket connection.

Returns
char from get buffer, EOF if not connected.

Field Documentation

◆ so

socket_t ucommon::tcpstream::so
protected

Definition at line 121 of file stream.h.

◆ timeout

timeout_t ucommon::tcpstream::timeout
protected

Definition at line 122 of file stream.h.


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