UCommon

pipestream Class Reference

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

#include <stream.h>

Inheritance diagram for pipestream:
Collaboration diagram for pipestream:

Public Types

enum  access_t { RDONLY, WRONLY, RDWR }

Public Member Functions

void close (void)
 Close an active stream connection.
void open (const char *command, access_t access, const char **env=NULL, size_t buffering=512)
 Open a stream connection to a pipe service.
 operator bool () const
 See if stream connection is active.
bool operator! () const
 See if stream is disconnected.
 pipestream ()
 Create an unopened pipe stream.
 pipestream (const char *command, access_t access, const char **env=NULL, size_t size=512)
 Create child process and start pipe.
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

pipestream::pipestream ( const char *  command,
access_t  access,
const char **  env = NULL,
size_t  size = 512 
)

Create child process and start pipe.

Parameters:
commandto pass.
accessmode of pipe stream.
envto create in child.
sizeof buffer.

Member Function Documentation

int 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 CharacterProtocol.

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

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

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

Implements CharacterProtocol.

void pipestream::close ( void  )

Close an active stream connection.

This waits for the child to terminate.

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

Open a stream connection to a pipe service.

Parameters:
commandto execute.
accessmode of stream.
envto create in child process.
bufferingsize to use.
pipestream::operator bool ( ) const [inline]

See if stream connection is active.

Returns:
true if stream is active.

Definition at line 292 of file stream.h.

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

See if stream is disconnected.

Returns:
true if stream disconnected.

Definition at line 299 of file stream.h.


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