kprocctrl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __KPROCCTRL_H__
00029 #define __KPROCCTRL_H__
00030
00031 #include <qvaluelist.h>
00032 #include <qtimer.h>
00033
00034 #include "kprocess.h"
00035
00036 class KProcessControllerPrivate;
00037 class QSocketNotifier;
00038
00050 class KProcessController : public QObject
00051 {
00052 Q_OBJECT
00053
00054 public:
00055 KProcessController();
00056 ~KProcessController();
00057
00058
00059 public:
00060
00065 static KProcessController *theKProcessController;
00066
00075 static void theSigCHLDHandler(int signal);
00076
00077
00081 static void setupHandlers();
00085 static void resetHandlers();
00089 void addKProcess( KProcess* );
00093 void removeKProcess( KProcess* );
00094
00105 bool waitForProcessExit(int timeout);
00106
00107 public slots:
00111 void slotDoHousekeeping(int socket);
00112
00113 private slots:
00114 void delayedChildrenCleanup();
00115
00116 private:
00117 int fd[2];
00118 QSocketNotifier *notifier;
00119 static struct sigaction oldChildHandlerData;
00120 static bool handlerSet;
00121 QValueList<KProcess*> processList;
00122 QTimer delayedChildrenCleanupTimer;
00123
00124
00125 KProcessController( const KProcessController& );
00126 KProcessController& operator= ( const KProcessController& );
00127
00128 KProcessControllerPrivate *d;
00129 };
00130
00131
00132
00133 #endif
00134
This file is part of the documentation for kdelibs Version 3.1.0.