Public Member Functions | Protected Member Functions | Friends

ucc::shell::iobuf Class Reference

Process pipe with I/O buffering. More...

#include <shell.h>

Inheritance diagram for ucc::shell::iobuf:
Inheritance graph
[legend]
Collaboration diagram for ucc::shell::iobuf:
Collaboration graph
[legend]

Public Member Functions

void cancel (void)
 Terminate child process.
void close (void)
 Close the i/o buffer.
 iobuf (const char *path, char **argv, pmode_t mode, size_t size=512, char **env=NULL)
 Construct an i/o buffer for a child process.
 iobuf (size_t size=0)
 Construct an i/o buffer.
void open (const char *path, char **argv, pmode_t mode, size_t size=512, char **env=NULL)
 Open the i/o buffer attached to a child process.
 ~iobuf ()
 Destroy i/o buffer.

Protected Member Functions

virtual size_t _pull (char *address, size_t size)
virtual size_t _push (const char *address, size_t size)

Friends

class shell

Detailed Description

Process pipe with I/O buffering.

This allows the creation and management of a shell pipe with buffered I/O support. This also offers a common class to manage stdio sessions generically in the child process.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 176 of file shell.h.


Constructor & Destructor Documentation

ucc::shell::iobuf::iobuf ( size_t  size = 0  ) 

Construct an i/o buffer.

If a non-zero size is specified, then the object is attached to the process's stdin & stdout. Otherwise an un-opened object is created.

ucc::shell::iobuf::iobuf ( const char *  path,
char **  argv,
pmode_t  mode,
size_t  size = 512,
char **  env = NULL 
)

Construct an i/o buffer for a child process.

This is used to create a child process directly when the object is made. It essentially is the same as the open() method.

Parameters:
path of program to execute, if filename uses $PATH.
argv to pass to child process.
mode of pipe, rdonly, wronly, or rdwr.
size of buffering, and atomic pipe size if setable.
env that may be passed to child process.
ucc::shell::iobuf::~iobuf (  ) 

Destroy i/o buffer.

This may cancel and block waiting for a child process to terminate.


Member Function Documentation

void ucc::shell::iobuf::cancel ( void   ) 

Terminate child process.

This also waits for the child process to exit and then closes buffers.

Reimplemented from ucc::shell::pipeio.

void ucc::shell::iobuf::close ( void   ) 

Close the i/o buffer.

If attached to a child process it will wait for the child to exit.

void ucc::shell::iobuf::open ( const char *  path,
char **  argv,
pmode_t  mode,
size_t  size = 512,
char **  env = NULL 
)

Open the i/o buffer attached to a child process.

Parameters:
path of program to execute, if filename uses $PATH.
argv to pass to child process.
mode of pipe, rdonly, wronly, or rdwr.
size of buffering, and atomic pipe size if setable.
env that may be passed to child process.

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