KProcIO Class Reference

[kspell Index] [kspell Hierarchy] [Headers]


A slightly simpler interface to KProcess More...

#include <kprocio.h>

Inherits: KProcess (kdecore)

Public Members

Protected Members

Protected Slots

Signals


Detailed Description

KProcIO By David Sweet (GPL 1997)

This class provides a slightly simpler interface to the communication functions provided by KProcess. The simplifications are: 1) 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_. 2) readln() (or fgets()) reads a line of data and buffers any leftovers.

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.


KProcIO(void) [public]

**\n

bool writeStdin(const char *buffer, bool AppendNewLine=TRUE) [public virtual]

The buffer is zero terminated. A deep copy is made of the buffer, so you don't need to bother with that. A newline ( '\n' ) is appended unless you specify FALSE as the second parameter. FALSE is returned on an error, or else TRUE is.

int readln(char *buffer, int max, bool autoAck=FALSE) [public virtual]

readln() reads up to '\n' (or max characters) and returns the number of characters placed in buffer. Zero is returned if no more data is available.

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.

void resetAll(void) [public virtual]

Reset the class. Doesn't kill the process.

void ackRead(void) [public virtual]

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 processesing the current data. If this doesn't matter, then call ackRead() right away in your readReady()-processing slot.

void enableReadSignals(bool enable) [public]

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...)


  • Author: David Sweet
  • Version: $Id: KProcIO.html.in,v 1.1.1.1 2000/02/09 22:28:19 tasin Exp $
  • Documentation generated by tasin@cd1 on Die Nov 30 17:32:44 CET 1999
Kdoc