From: Christian P. <cp...@us...> - 2005-02-22 13:22:10
|
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 |