libzypp  11.13.5
zypp::ExternalProgramWithStderr Class Reference

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

#include <ExternalProgram.h>

Inheritance diagram for zypp::ExternalProgramWithStderr:

List of all members.

Public Member Functions

 ExternalProgramWithStderr (const Arguments &argv_r)
 ExternalProgramWithStderr (const Arguments &argv_r, const Environment &environment_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).
- Public Member Functions inherited from zypp::ExternalProgram
 ExternalProgram (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 ()
int close ()
 Wait for the progamm to complete.
bool kill ()
 Kill 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 receiveUpto (char c)
 Read characters into a string until character c is read.
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 * stderr ()

Private Attributes

std::string _buffer

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...
typedef std::vector< std::string > Arguments
typedef std::map< std::string,
std::string > 
Environment
 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
int checkStatus (int)
- 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 252 of file ExternalProgram.h.


Constructor & Destructor Documentation

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr ( const Arguments argv_r)
inline

Definition at line 255 of file ExternalProgram.h.

zypp::ExternalProgramWithStderr::ExternalProgramWithStderr ( const Arguments argv_r,
const Environment environment_r 
)
inline

Definition at line 259 of file ExternalProgram.h.


Member Function Documentation

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 593 of file ExternalProgram.cc.

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 276 of file ExternalProgram.h.

void zypp::ExternalProgramWithStderr::_initStdErr ( )
inlineprivate

Close write end of the pipe (childs end).

Definition at line 281 of file ExternalProgram.h.


Member Data Documentation

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

Definition at line 285 of file ExternalProgram.h.


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