ucc::pipestream Class Reference

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

#include <stream.h>

Inheritance diagram for ucc::pipestream:

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

Collaboration graph
[legend]

Public Types

enum  access_t { RDONLY, WRONLY, RDWR }

Public Member Functions

void close (void)
 Close an active stream connection.
void open (char *command, access_t access, 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 **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 _getch (void)
 This streambuf method is used to load the input buffer through the established pipe connection.
int _putch (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.

Protected Attributes

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

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

Create child process and start pipe.

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


Member Function Documentation

int ucc::pipestream::_getch ( void   )  [protected, virtual]

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

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

Implements ucc::CharacterProtocol.

int ucc::pipestream::_putch ( int  ch  )  [protected, virtual]

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.

Implements ucc::CharacterProtocol.

void ucc::pipestream::close ( void   ) 

Close an active stream connection.

This waits for the child to terminate.

void ucc::pipestream::open ( char *  command,
access_t  access,
char **  env = ((void *) 0),
size_t  buffering = 512 
)

Open a stream connection to a pipe service.

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

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

See if stream connection is active.

Returns:
true if stream is active.

Reimplemented from ucc::StreamProtocol.

Definition at line 292 of file stream.h.

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

See if stream is disconnected.

Returns:
true if stream disconnected.

Reimplemented from ucc::StreamProtocol.

Definition at line 299 of file stream.h.


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

Generated on Tue May 17 12:15:39 2011 for UCommon by  doxygen 1.5.6