Streamable tcp connection between client and server.
More...
#include <stream.h>
Public Types |
enum | access_t { RDONLY,
WRONLY,
RDWR
} |
Public Member Functions |
void | cancel (void) |
int | close (void) |
| Close an active stream connection.
|
void | open (const 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 () 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, char **args, char **env=((void *) 0), size_t size=512) |
| Create child process and start pipe.
|
void | terminate (void) |
| Force terminate child and close.
|
virtual | ~pipestream () |
| Destroy a pipe stream.
|
bool | is_open (void) |
| operator bool () |
bool | operator! () |
int | sync (void) |
| Flush the stream input and output buffers, writes pending output.
|
int | get (void) |
| Get the next character.
|
int | put (int code) |
| Put the next character.
|
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.
|
void | allocate (size_t size) |
int | overflow (int code) |
int | uflow () |
| This streambuf method is used for doing unbuffered reads through the establish tcp socket connection when in interactive mode.
|
int | underflow () |
Protected Attributes |
shell::pid_t | pid |
fsys_t | rd |
fsys_t | wr |
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 234 of file stream.h.
Constructor & Destructor Documentation
ucommon::pipestream::pipestream |
( |
const 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::_getch |
( |
void |
| ) |
|
|
protectedvirtual |
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 ucommon::CharacterProtocol.
int ucommon::pipestream::_putch |
( |
int |
ch | ) |
|
|
protectedvirtual |
This streambuf method is used to write the output buffer through the established pipe connection.
- Parameters
-
- Returns
- char pushed through.
Implements ucommon::CharacterProtocol.
int ucommon::pipestream::close |
( |
void |
| ) |
|
Close an active stream connection.
This waits for the child to terminate.
void ucommon::pipestream::open |
( |
const 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 |
( |
| ) |
const |
|
inline |
See if stream connection is active.
- Returns
- true if stream is active.
Definition at line 297 of file stream.h.
bool ucommon::pipestream::operator! |
( |
| ) |
const |
|
inline |
See if stream is disconnected.
- Returns
- true if stream disconnected.
Definition at line 304 of file stream.h.
The documentation for this class was generated from the following file: