#include <Process.h>

Public Member Functions | |
| Process (const std::string &commandline, bool use_pty=false, bool default_locale=false, bool pty_trans=true) | |
| Process (const char *const *argv, const Environment &environment, bool use_pty=false, bool default_locale=false, bool pty_trans=true) | |
| ~Process () | |
| bool | kill (int sig) |
| bool | kill () |
| std::string | readLine () |
| std::string | read () |
| std::string | readErrLine () |
| std::string | readErr () |
| int | closeAll () |
| void | readStdoutToBuffer () |
| void | readStderrToBuffer () |
| bool | anyLineInStdout () |
| FILE * | errorFile () |
Private Member Functions | |
| Process (const Process &) | |
| Process & | operator= (const Process &) |
| int | create_stderr_pipes () |
| std::string | GetLineFromBuffer (std::string &buffer) |
| void | BufferNewStdoutLines () |
| bool | IsAnyLineInBuffer (const std::string &buffer) |
Private Attributes | |
| std::string | stdout_buffer |
| std::string | stderr_buffer |
| FILE * | stderr_output |
| Process::Process | ( | const Process & | ) | [private] |
| Process::Process | ( | const std::string & | commandline, | |
| bool | use_pty = false, |
|||
| bool | default_locale = false, |
|||
| bool | pty_trans = true | |||
| ) | [inline] |
Start the external program by using the shell /bin/sh
with the option -c. You can use io direction symbols < and >.
commandline a shell commandline that is appended to /bin/sh -c. default_locale whether to set LC_ALL=C before starting use_pty start the process in a terminal
| Process::Process | ( | const char *const * | argv, | |
| const Environment & | environment, | |||
| bool | use_pty = false, |
|||
| bool | default_locale = false, |
|||
| bool | pty_trans = true | |||
| ) | [inline] |
Start an external program by giving the arguments as an arry of char *pointers. If environment is provided, variables will be added to the childs environment, overwriting existing ones.
| Process::~Process | ( | ) |
Destructor
References ExternalProgram::getpid(), kill(), MIL, and ExternalProgram::running().
| bool Process::anyLineInStdout | ( | ) |
Read whether there are some buffered lines
References BufferNewStdoutLines(), IsAnyLineInBuffer(), and stdout_buffer.
| void Process::BufferNewStdoutLines | ( | ) | [private] |
References ExternalDataSource::receiveUpto(), and stdout_buffer.
Referenced by anyLineInStdout(), and readLine().
| int Process::closeAll | ( | ) |
Close all input/output filedescriptors
References ExternalProgram::close(), and stderr_output.
| int Process::create_stderr_pipes | ( | ) | [private] |
References stderr_output, and UnblockFD().
| FILE * Process::errorFile | ( | ) |
| std::string Process::GetLineFromBuffer | ( | std::string & | buffer | ) | [private] |
Referenced by readErrLine(), and readLine().
| bool Process::IsAnyLineInBuffer | ( | const std::string & | buffer | ) | [private] |
Referenced by anyLineInStdout().
| bool Process::kill | ( | ) |
| bool Process::kill | ( | int | sig | ) |
Send a signal
References ExternalProgram::getpid(), and kill().
| std::string Process::read | ( | ) |
Read characters from stdout (not line oriented)
References readStdoutToBuffer(), and stdout_buffer.
Referenced by main(), and readStdoutToBuffer().
| std::string Process::readErr | ( | ) |
Read characters from stderr (not line oriented)
References readStderrToBuffer(), and stderr_buffer.
Referenced by main().
| std::string Process::readErrLine | ( | ) |
Read a line from stderr
References GetLineFromBuffer(), readStderrToBuffer(), and stderr_buffer.
| std::string Process::readLine | ( | ) |
Read a line from stdout
References BufferNewStdoutLines(), GetLineFromBuffer(), and stdout_buffer.
| void Process::readStderrToBuffer | ( | ) |
Read stderr to the internal buffer (can unblock the process)
References b_size(), ERR, stderr_buffer, and stderr_output.
Referenced by readErr(), and readErrLine().
| void Process::readStdoutToBuffer | ( | ) |
Read stdout to the internal buffer (can unblock the process)
References b_size(), read(), ExternalDataSource::receive(), and stdout_buffer.
Referenced by read().
std::string Process::stderr_buffer [private] |
Referenced by readErr(), readErrLine(), and readStderrToBuffer().
FILE* Process::stderr_output [private] |
Referenced by closeAll(), create_stderr_pipes(), errorFile(), and readStderrToBuffer().
std::string Process::stdout_buffer [private] |
Referenced by anyLineInStdout(), BufferNewStdoutLines(), read(), readLine(), and readStdoutToBuffer().
1.5.9