KProcIO Class Reference

`#include <kprocio.h>`

Inheritance diagram for KProcIO:

## Signals

void | readReady (KProcIO *pio)
Signals inherited from KProcess
void | processExited (KProcess *proc)
void | receivedStdout (KProcess *proc, char *buffer, int buflen)
void | receivedStdout (int fd, int &len)
void | receivedStderr (KProcess *proc, char *buffer, int buflen)
void | wroteStdin (KProcess *proc)

## Public Member Functions

| KProcIO (QTextCodec *codec=0)
| ~KProcIO ()
void | setComm (Communication comm)
bool | start (RunMode runmode=NotifyOnExit, bool includeStderr=false)
bool | writeStdin (const QString &line, bool appendnewline=true)
bool | writeStdin (const QCString &line, bool appendnewline)
bool | writeStdin (const QByteArray &data)
KDE_DEPRECATED bool | fputs (const QString &line, bool AppendNewLine=true)
void | closeWhenDone ()
int | readln (QString &line, bool autoAck=true, bool *partial=0)
KDE_DEPRECATED int | fgets (QString &line, bool autoAck=false)
void | resetAll ()
void | ackRead ()
void | enableReadSignals (bool enable)
Public Member Functions inherited from KProcess
| KProcess (QObject *parent, const char *name=0)
| KProcess ()
virtual | ~KProcess ()
bool | setExecutable (const QString &proc) KDE_DEPRECATED
KProcess & | operator<< (const QString &arg)
KProcess & | operator<< (const char *arg)
KProcess & | operator<< (const QCString &arg)
KProcess & | operator<< (const QStringList &args)
void | clearArguments ()
virtual bool | start (RunMode runmode=NotifyOnExit, Communication comm=NoCommunication)
virtual bool | kill (int signo=SIGTERM)
bool | isRunning () const
pid_t | pid () const
KDE_DEPRECATED pid_t | getPid () const
void | suspend ()
void | resume ()
bool | wait (int timeout=-1)
bool | normalExit () const
bool | signalled () const
bool | coreDumped () const
int | exitStatus () const
int | exitSignal () const
bool | writeStdin (const char *buffer, int buflen)
bool | closeStdin ()
bool | closeStdout ()
bool | closeStderr ()
bool | closePty ()
void | closeAll ()
const QValueList< QCString > & | args ()
void | setRunPrivileged (bool keepPrivileges)
bool | runPrivileged () const
void | setEnvironment (const QString &name, const QString &value)
void | setWorkingDirectory (const QString &dir)
void | setUseShell (bool useShell, const char *shell=0)
void | detach ()
void | setUsePty (Communication comm, bool addUtmp)
KPty * | pty () const
bool | setPriority (int prio)

## Protected Slots

void | received (KProcess *proc, char *buffer, int buflen)
void | sent (KProcess *)
Protected Slots inherited from KProcess
void | slotChildOutput (int fdno)
void | slotChildError (int fdno)
void | slotSendData (int dummy)

## Protected Member Functions

void | controlledEmission ()
virtual void | virtual_hook (int id, void *data)
Protected Member Functions inherited from KProcess
void | setupEnvironment ()
virtual int | setupCommunication (Communication comm)
virtual int | commSetupDoneP ()
virtual int | commSetupDoneC ()
virtual void | processHasExited (int state)
virtual void | commClose ()
void | setBinaryExecutable (const char *filename)
int | childOutput (int fdno)
int | childError (int fdno)

## Protected Attributes

QPtrList< QByteArray > | outbuffer
QCString | recvbuffer
QTextCodec * | codec
int | rbi
bool | needreadsignal
bool | readsignalon
bool | writeready
Protected Attributes inherited from KProcess
QValueList< QCString > | arguments
RunMode | run_mode
bool | runs
pid_t | pid_
int | status
bool | keepPrivs
int | out [2]
int | in [2]
int | err [2]
QSocketNotifier * | innot
QSocketNotifier * | outnot
QSocketNotifier * | errnot
Communication | communication
const char * | input_data
int | input_sent
int | input_total

## Additional Inherited Members

Public Types inherited from KProcess
enum | Communication { NoCommunication = 0, Stdin = 1, Stdout = 2, Stderr = 4, AllOutput = 6, All = 7, NoRead = 8, CTtyOnly = NoRead, MergedStderr = 16 }
enum | RunMode { DontCare, NotifyOnExit, Block, OwnGroup }
enum | { PrioLowest = 20, PrioLow = 10, PrioLower = 5, PrioNormal = 0, PrioHigher = -5, PrioHigh = -10, PrioHighest = -19 }
Static Public Member Functions inherited from KProcess
static QString | quote (const QString &arg)

## Detailed Description

KProcIO.

This class provides a slightly simpler interface to the communication functions provided by KProcess. The simplifications are:

- The buffer for a write is copied to an internal KProcIO buffer and maintained/freed appropriately. There is no need to be concerned with wroteStdin() signals at_all.
- readln() reads a line of data and buffers any leftovers.
- Conversion from/to unicode.

Basically, KProcIO gives you buffered I/O similar to fgets()/fputs().

Aside from these, and the fact that start() takes different parameters, use this class just like KProcess.

Author
  David Sweet A slightly simpler interface to KProcess

Definition at line 50 of file kprocio.h.

## Constructor & Destructor Documentation

KProcIO::KProcIO | ( | QTextCodec * | codec = `0` | ) |

Constructor.

Definition at line 38 of file kprocio.cpp.

KProcIO::~KProcIO | ( |  | ) |

Destructor.

Definition at line 55 of file kprocio.cpp.

## Member Function Documentation

void KProcIO::ackRead | ( |  | ) |

Call this after you have finished processing a readReady() signal.

This call need not be made in the slot that was signalled by readReady(). You won't receive any more readReady() signals until you acknowledge with ackRead(). This prevents your slot from being reentered while you are still processing the current data. If this doesn't matter, then call ackRead() right away in your readReady()-processing slot.

Definition at line 196 of file kprocio.cpp.

void KProcIO::closeWhenDone | ( |  | ) |

Closes stdin after all data has been send.

Definition at line 154 of file kprocio.cpp.

void KProcIO::enableReadSignals | ( | bool | enable | ) |

Turns readReady() signals on and off.

You can turn this off at will and not worry about losing any data. (as long as you turn it back on at some point...)

Parameters

  enable | true to turn the signals on, false to turn them off

Definition at line 217 of file kprocio.cpp.

KDE_DEPRECATED int KProcIO::fgets | ( | QString & | line,
|  | bool | autoAck = `false`
| ) |  |

inline

This function calls readln().

Parameters

  line | is used to store the line that was read.
  autoAck | when true, ackRead() is called for you.

Returns
  the number of characters read, or -1 if no data is available.

Deprecated:
  use readln. Note that it has an inverted autoAck default, though.

Definition at line 162 of file kprocio.h.

KDE_DEPRECATED bool KProcIO::fputs | ( | const QString & | line,
|  | bool | AppendNewLine = `true`
| ) |  |

inline

This function just calls writeStdin().

Parameters

  line | Text to write.
  AppendNewLine | if true, a newline '\n' is appended.

Returns
  true if successful, false otherwise

Deprecated:

Definition at line 123 of file kprocio.h.

int KProcIO::readln | ( | QString & | line,
|  | bool | autoAck = `true`,
|  | bool * | partial = `0`
| ) |  |

Reads a line of text (up to and including '\n').

Use readln() in response to a readReady() signal. You may use it multiple times if more than one line of data is available. Be sure to use ackRead() when you have finished processing the readReady() signal. This informs KProcIO that you are ready for another readReady() signal.

readln() never blocks.

autoAck==true makes these functions call ackRead() for you.

Parameters

  line | is used to store the line that was read.
  autoAck | when true, ackRead() is called for you.
  partial | when provided the line is returned even if it does not contain a '\n'. *partial will be set to false if the line contains a '\n' and false otherwise.

Returns
  the number of characters read, or -1 if no data is available.

Definition at line 225 of file kprocio.cpp.

void KProcIO::readReady | ( | KProcIO * | pio | ) |

signal

Emitted when the process is ready for reading.

Parameters

  pio | the process that emitted the signal

See also
  enableReadSignals()

void KProcIO::resetAll | ( |  | ) |

Reset the class.

Doesn't kill the process.

Definition at line 61 of file kprocio.cpp.

void KProcIO::setComm | ( | Communication | comm | ) |

Sets the communication mode to be passed to KProcess::start() by start().

The default communication mode is KProcess::All. You probably want to use this function in conjunction with KProcess::setUsePty().

Parameters

  comm | the communication mode

Definition at line 83 of file kprocio.cpp.

bool KProcIO::start | ( | RunMode | runmode = `NotifyOnExit`,
|  | bool | includeStderr = `false`
| ) |  |

Starts the process.

It will fail in the following cases:

- The process is already running.
- The command line argument list is empty.
- The starting of the process failed (could not fork).
- The executable was not found.

Parameters

  runmode | For a detailed description of the various run modes, have a look at the general description of the KProcess class.
  includeStderr | If true, data from both stdout and stderr is listened to. If false, only stdout is listened to.

Returns
  true on success, false on error.

Definition at line 88 of file kprocio.cpp.

bool KProcIO::writeStdin | ( | const QString & | line,
|  | bool | appendnewline = `true`
| ) |  |

Writes text to stdin of the process.

Parameters

  line | Text to write.
  appendnewline | if true, a newline '\n' is appended.

Returns
  true if successful, false otherwise

Definition at line 105 of file kprocio.cpp.

bool KProcIO::writeStdin | ( | const QCString & | line,
|  | bool | appendnewline
| ) |  |

Writes text to stdin of the process.

Parameters

  line | Text to write.
  appendnewline | if true, a newline '\n' is appended.

Returns
  true if successful, false otherwise

Definition at line 110 of file kprocio.cpp.

bool KProcIO::writeStdin | ( | const QByteArray & | data | ) |

Writes data to stdin of the process.

Parameters

  data | Data to write.

Returns
  true if successful, false otherwise

Definition at line 139 of file kprocio.cpp.

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

- kprocio.h
- kprocio.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys