ucommon::pipestream Class Reference

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

#include <stream.h>

Inheritance diagram for ucommon::pipestream:

Inheritance graph
[legend]
Collaboration diagram for ucommon::pipestream:

Collaboration graph
[legend]

Public Types

enum  access_t { RDONLY, WRONLY, RDWR }
 RDONLY
 RDWR
 WRONLY

Public Member Functions

void cancel (void)
int close (void)
 Close an active stream connection.
void open (char *path, access_t access, char **args, char **env=((void *) 0), size_t buffering=512)
 Open a stream connection to a pipe service.
 operator bool ()
 See if stream connection is active.
bool operator! ()
 See if stream is disconnected.
 pipestream (char *command, access_t access, char **args, char **env=((void *) 0), size_t size=512)
 Create child process and start pipe.
 pipestream ()
 Create an unopened pipe stream.
void terminate (void)
 Force terminate child and close.
virtual ~pipestream ()
 Destroy a pipe stream.

Protected Member Functions

int overflow (int ch)
 This streambuf method is used to write the output buffer through the established pipe connection.
void release (void)
 Release the stream, detach/do not wait for the process.
int underflow (void)
 This streambuf method is used to load the input buffer through the established pipe connection.

Protected Attributes

shell::pid_t pid
fsys_t rd
fsys_t wr

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@gnutelephony.org>

Definition at line 230 of file stream.h.


Constructor & Destructor Documentation

ucommon::pipestream::pipestream ( char *  command,
access_t  access,
char **  args,
char **  env = ((void *) 0),
size_t  size = 512 
)

Create child process and start pipe.

Parameters:
path to execute.
access mode of pipe stream.
args to pass to command.
env to create in child.
size of buffer.


Member Function Documentation

int ucommon::pipestream::close ( void   ) 

Close an active stream connection.

This waits for the child to terminate.

void ucommon::pipestream::open ( char *  path,
access_t  access,
char **  args,
char **  env = ((void *) 0),
size_t  buffering = 512 
)

Open a stream connection to a pipe service.

Parameters:
path to execute.
access mode of stream.
args to pass to command.
env to create in child process.
buffering size to use.

ucommon::pipestream::operator bool (  )  [inline]

See if stream connection is active.

Returns:
true if stream is active.

Reimplemented from ucommon::StreamBuffer.

Definition at line 293 of file stream.h.

bool ucommon::pipestream::operator! (  )  [inline]

See if stream is disconnected.

Returns:
true if stream disconnected.

Reimplemented from ucommon::StreamBuffer.

Definition at line 300 of file stream.h.

int ucommon::pipestream::overflow ( int  ch  )  [protected]

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

Parameters:
ch char to push through.
Returns:
char pushed through.

int ucommon::pipestream::underflow ( void   )  [protected]

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

Returns:
char from get buffer, EOF if not connected.


The documentation for this class was generated from the following file:
Generated on 14 Aug 2013 for UCommon by  doxygen 1.4.7