| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/unix/execute.h
 
- // Purpose:     private details of wxExecute() implementation
 
- // Author:      Vadim Zeitlin
 
- // Copyright:   (c) 1998 Robert Roebling, Julian Smart, Vadim Zeitlin
 
- //              (c) 2013 Vadim Zeitlin
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_UNIX_EXECUTE_H
 
- #define _WX_UNIX_EXECUTE_H
 
- #include "wx/app.h"
 
- #include "wx/hashmap.h"
 
- #include "wx/process.h"
 
- #if wxUSE_STREAMS
 
-     #include "wx/unix/pipe.h"
 
-     #include "wx/private/streamtempinput.h"
 
- #endif
 
- class wxEventLoopBase;
 
- // Information associated with a running child process.
 
- class wxExecuteData
 
- {
 
- public:
 
-     wxExecuteData()
 
-     {
 
-         flags =
 
-         pid = 0;
 
-         exitcode = -1;
 
-         process = NULL;
 
-         syncEventLoop = NULL;
 
- #if wxUSE_STREAMS
 
-         fdOut =
 
-         fdErr = wxPipe::INVALID_FD;
 
- #endif // wxUSE_STREAMS
 
-     }
 
-     // This must be called in the parent process as soon as fork() returns to
 
-     // update us with the effective child PID. It also ensures that we handle
 
-     // SIGCHLD to be able to detect when this PID exits, so wxTheApp must be
 
-     // available.
 
-     void OnStart(int pid);
 
-     // Called when the child process exits.
 
-     void OnExit(int exitcode);
 
-     // Return true if we should (or already did) redirect the child IO.
 
-     bool IsRedirected() const { return process && process->IsRedirected(); }
 
-     // wxExecute() flags
 
-     int flags;
 
-     // the pid of the child process
 
-     int pid;
 
-     // The exit code of the process, set once the child terminates.
 
-     int exitcode;
 
-     // the associated process object or NULL
 
-     wxProcess *process;
 
-     // Local event loop used to wait for the child process termination in
 
-     // synchronous execution case. We can't create it ourselves as its exact
 
-     // type depends on the application kind (console/GUI), so we rely on
 
-     // wxAppTraits setting up this pointer to point to the appropriate object.
 
-     wxEventLoopBase *syncEventLoop;
 
- #if wxUSE_STREAMS
 
-     // the input buffer bufOut is connected to stdout, this is why it is
 
-     // called bufOut and not bufIn
 
-     wxStreamTempInputBuffer bufOut,
 
-                             bufErr;
 
-     // the corresponding FDs, -1 if not redirected
 
-     int fdOut,
 
-         fdErr;
 
- #endif // wxUSE_STREAMS
 
- private:
 
-     // SIGCHLD signal handler that checks whether any of the currently running
 
-     // children have exited.
 
-     static void OnSomeChildExited(int sig);
 
-     // All currently running child processes indexed by their PID.
 
-     //
 
-     // Notice that the container doesn't own its elements.
 
-     WX_DECLARE_HASH_MAP(int, wxExecuteData*, wxIntegerHash, wxIntegerEqual,
 
-                         ChildProcessesData);
 
-     static ChildProcessesData ms_childProcesses;
 
-     wxDECLARE_NO_COPY_CLASS(wxExecuteData);
 
- };
 
- #endif // _WX_UNIX_EXECUTE_H
 
 
  |