libzypp 17.37.10

zypp::ExternalProgramWithStderr Class Reference

ExternalProgram extended to offer reading programs stderr. More...

`#include <zypp-core/ExternalProgram.h>`

Inheritance diagram for zypp::ExternalProgramWithStderr:

## Public Member Functions
| ExternalProgramWithStderr (const Arguments &argv_r, bool defaultLocale_r=false, const Pathname &root_r="")
| ExternalProgramWithStderr (const Arguments &argv_r, const Pathname &root_r)
| \overlocad Convenience taking just the root_r.
| ExternalProgramWithStderr (const Arguments &argv_r, const Environment &environment_r, bool defaultLocale_r=false, const Pathname &root_r="")
| ExternalProgramWithStderr (const Arguments &argv_r, const Environment &environment_r, const Pathname &root_r)
| \overlocad Convenience taking just the root_r.
bool | stderrGetUpTo (std::string &retval_r, const char delim_r, bool returnDelim_r=false)
| Read data up to `delim_r` from stderr (nonblocking).
bool | stderrGetline (std::string &retval_r, bool returnDelim_r=false)
| Read next complete line from stderr (nonblocking).
FILE * | fStdErr ()
| Return `FILE*` to read programms stderr (O_NONBLOCK set).
Public Member Functions inherited from zypp::ExternalProgram
| ExternalProgram (const std::string &commandline, Stderr_Disposition stderr_disp=Normal_Stderr, bool use_pty=false, int stderr_fd=-1, bool default_locale=false, const Pathname &root="")
| Start the external program by using the shell /bin/sh with the option -c.
| ExternalProgram ()
| Start an external program by giving the arguments as an arry of char *pointers.
| ExternalProgram (const Arguments &argv, Stderr_Disposition stderr_disp=Normal_Stderr, bool use_pty=false, int stderr_fd=-1, bool default_locale=false, const Pathname &root="")
| ExternalProgram (const Arguments &argv, const Environment &environment, Stderr_Disposition stderr_disp=Normal_Stderr, bool use_pty=false, int stderr_fd=-1, bool default_locale=false, const Pathname &root="")
| ExternalProgram (const char *const *argv, Stderr_Disposition stderr_disp=Normal_Stderr, bool use_pty=false, int stderr_fd=-1, bool default_locale=false, const Pathname &root="")
| ExternalProgram (const char *const *argv, const Environment &environment, Stderr_Disposition stderr_disp=Normal_Stderr, bool use_pty=false, int stderr_fd=-1, bool default_locale=false, const Pathname &root="")
| ExternalProgram (const char *binpath, const char *const *argv_1, bool use_pty=false)
| ExternalProgram (const char *binpath, const char *const *argv_1, const Environment &environment, bool use_pty=false)
| ~ExternalProgram () override
int | close () override
| Wait for the progamm to complete.
bool | kill ()
| Kill the program.
bool | kill (int sig)
| Send a signal to the program.
bool | running ()
| Return whether program is running.
pid_t | getpid ()
| return pid
const std::string & | command () const
| The command we're executing.
const std::string & | execError () const
| Some detail telling why the execution failed, if it failed.
std::ostream & | operator>> (std::ostream &out_r)
| Redirect all command output to an `ostream`.
Public Member Functions inherited from zypp::externalprogram::ExternalDataSource
| ExternalDataSource (FILE *inputfile=0, FILE *outputfile=0)
| Create a new instance.
virtual | ~ExternalDataSource ()
| Implicitly close the connection.
bool | send (const char *buffer, size_t length)
| Send some data to the output stream.
bool | send (std::string s)
| Send some data down the stream.
size_t | receive (char *buffer, size_t length)
| Read some data from the input stream.
std::string | receiveLine ()
| Read one line from the input stream.
std::string | receiveLine (io::timeout_type timeout)
| Read one line from the input stream.
std::string | receiveUpto (char c)
| Read characters into a string until delimiter c or EOF is read.
std::string | receiveUpto (char c, io::timeout_type timeout)
| Read characters into a string until delimiter c or EOF is read or the timeout is reached.
void | setBlocking (bool mode)
| Set the blocking mode of the input stream.
FILE * | inputFile () const
| Return the input stream.
FILE * | outputFile () const
| Return the output stream.

## Private Member Functions
void | _initStdErr ()
| Close write end of the pipe (childs end).
Private Member Functions inherited from zypp::externalprogram::EarlyPipe
| EarlyPipe ()
| ~EarlyPipe ()
void | closeW ()
FILE * | fStdErr ()

## Private Attributes
std::string | _buffer
Private Attributes inherited from zypp::externalprogram::EarlyPipe
FILE * | _stderr
int | _fds [2]

## Additional Inherited Members
Public Types inherited from zypp::ExternalProgram
enum | Stderr_Disposition { Normal_Stderr , Discard_Stderr , Stderr_To_Stdout , Stderr_To_FileDesc }
| Define symbols for different policies on the handling of stderr. More...
using | Arguments = std::vector<std::string>
using | Environment = std::map<std::string, std::string>
| For passing additional environment variables to set.
Static Public Member Functions inherited from zypp::ExternalProgram
static void | renumber_fd (int origfd, int newfd)
| origfd will be accessible as newfd and closed (unless they were equal)
Protected Member Functions inherited from zypp::ExternalProgram
void | start_program (const char *const *argv, const Environment &environment, Stderr_Disposition stderr_disp=Normal_Stderr, int stderr_fd=-1, bool default_locale=false, const char *root=NULL, bool switch_pgid=false, bool die_with_parent=false, bool usePty=false)
Protected Attributes inherited from zypp::externalprogram::ExternalDataSource
FILE * | inputfile
FILE * | outputfile
Private Types inherited from zypp::externalprogram::EarlyPipe
enum | { R =0 , W =1 }

## Detailed Description

ExternalProgram extended to offer reading programs stderr.

See also
  ExternalProgram

Definition at line 265 of file ExternalProgram.h.

## Constructor & Destructor Documentation

## ◆ ExternalProgramWithStderr() [1/4]

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr | ( | const Arguments & | argv_r,
|  | bool | defaultLocale_r = false,
|  | const Pathname & | root_r = "" )
| inline

Definition at line 268 of file ExternalProgram.h.

## ◆ ExternalProgramWithStderr() [2/4]

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr | ( | const Arguments & | argv_r,
|  | const Pathname & | root_r )
| inline

\overlocad Convenience taking just the root_r.

Definition at line 272 of file ExternalProgram.h.

## ◆ ExternalProgramWithStderr() [3/4]

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr | ( | const Arguments & | argv_r,
|  | const Environment & | environment_r,
|  | bool | defaultLocale_r = false,
|  | const Pathname & | root_r = "" )
| inline

Definition at line 276 of file ExternalProgram.h.

## ◆ ExternalProgramWithStderr() [4/4]

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr | ( | const Arguments & | argv_r,
|  | const Environment & | environment_r,
|  | const Pathname & | root_r )
| inline

\overlocad Convenience taking just the root_r.

Definition at line 280 of file ExternalProgram.h.

## Member Function Documentation

## ◆ stderrGetUpTo()

bool zypp::ExternalProgramWithStderr::stderrGetUpTo | ( | std::string & | retval_r,
|  | const char | delim_r,
|  | bool | returnDelim_r = false )

Read data up to `delim_r` from stderr (nonblocking).

Note
  If `delim_r` is '\0', we read as much data as possible.

Returns
  `false` if data are not yet available (`retval_r` remains untouched then).

Definition at line 525 of file ExternalProgram.cc.

## ◆ stderrGetline()

bool zypp::ExternalProgramWithStderr::stderrGetline | ( | std::string & | retval_r,
|  | bool | returnDelim_r = false )
| inline

Read next complete line from stderr (nonblocking).

Returns
  `false` if data are not yet available (`retval_r` remains untouched then).

Definition at line 296 of file ExternalProgram.h.

## ◆ _initStdErr()

void zypp::ExternalProgramWithStderr::_initStdErr | ( |  | ) |
| inline private

Close write end of the pipe (childs end).

Definition at line 301 of file ExternalProgram.h.

## ◆ fStdErr()

FILE * zypp::externalprogram::EarlyPipe::fStdErr | ( |  | ) |
| inline

Return `FILE*` to read programms stderr (O_NONBLOCK set).

Definition at line 255 of file ExternalProgram.h.

## Member Data Documentation

## ◆ _buffer

std::string zypp::ExternalProgramWithStderr::_buffer
| private

Definition at line 305 of file ExternalProgram.h.

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

- zypp-core/ExternalProgram.h
- zypp-core/ExternalProgram.cc