Update of /cvsroot/pclasses/pclasses2/include/pclasses/System
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24363/include/pclasses/System
Modified Files:
Process.h
Log Message:
Added ProcessListener
Index: Process.h
===================================================================
RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/System/Process.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Process.h 31 Dec 2004 03:22:58 -0000 1.1
+++ Process.h 22 Feb 2005 13:21:49 -0000 1.2
@@ -21,10 +21,13 @@
#ifndef P_System_Process_h
#define P_System_Process_h
+#include <pclasses/Export.h>
+#include <pclasses/Signal.h>
#include <pclasses/Unicode/String.h>
#include <pclasses/IO/IOError.h>
#include <pclasses/System/SystemError.h>
#include <pclasses/System/ProcessIO.h>
+#include <pclasses/System/EventQueue.h>
#include <list>
namespace P {
@@ -36,7 +39,7 @@
This class is used to concurrently execute child processes.
\author Christian Prochnow <cp...@se...>
*/
-class Process {
+class PSYSTEM_EXPORT Process {
public:
//! Child process state
@@ -108,7 +111,7 @@
//! Return the process i/o object
ProcessIO& processIO() const throw(LogicError);
- private:
+ private:
unsigned long _handle;
ProcessIO* _procIO;
State _state;
@@ -117,6 +120,22 @@
ArgList _args;
};
+class PSYSTEM_EXPORT ProcessListener: public EventListener {
+ public:
+ ProcessListener(Process& proc);
+ ProcessListener(EventQueue& evq, Process& proc);
+ ~ProcessListener();
+
+ Process& process() const throw();
+
+ Signal2<void, ProcessListener&, int> sigExited;
+
+ private:
+ void signaled(const Event& ev);
+ Process& _proc;
+};
+
+
} // !namespace System
} // !namespace P
|