]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/process.tex
Doc corrections; added HelpGen project files
[wxWidgets.git] / docs / latex / wx / process.tex
index 6d4ba8232ce49317452bc0195c1b94ccf5a26340..9438d0433e344df056381abfb9540f2e3aef920c 100644 (file)
@@ -1,6 +1,6 @@
 \section{\class{wxProcess}}\label{wxprocess}
 
-The objects of this class are used in conjonction with 
+The objects of this class are used in conjunction with 
 \helpref{wxExecute}{wxexecute} function. When a wxProcess object is passed to
 wxExecute(), its \helpref{OnTerminate()}{wxprocessonterminate} virtual method
 is called when the process terminates. This allows the program to be
@@ -14,6 +14,15 @@ However, if it is not processed, the object will delete itself and so the
 library users should only delete those objects whose notifications have been
 processed (and call \helpref{Detach()}{wxprocessdetach} for others).
 
+wxProcess also supports IO redirection of the child process. For this, you have
+to call its \helpref{Redirect}{wxprocessredirect} method before passing it to 
+\helpref{wxExecute}{wxexecute}. If the child process was launched successfully, 
+\helpref{GetInputStream}{wxprocessgetinputstream}, 
+\helpref{GetOutputStream}{wxprocessgetoutputstream} and 
+\helpref{GetErrorStream}{wxprocessgeterrorstream} can then be used to retrieve
+the streams corresponding to the child process stdandard output, input and
+error output respectively.
+
 \wxheading{Derived from}
 
 \helpref{wxEvtHandler}{wxevthandler}
@@ -22,6 +31,11 @@ processed (and call \helpref{Detach()}{wxprocessdetach} for others).
 
 <wx/process.h>
 
+\wxheading{See also}
+
+\helpref{wxExecute}{wxexecute}\\
+\helpref{exec sample}{sampleexec}
+
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 \membersection{wxProcess::wxProcess}\label{wxprocessconstr}
@@ -48,6 +62,15 @@ macro in the event table of the parent to handle it) with the given {\it id}.
 
 Destroys the wxProcess object.
 
+\membersection{wxProcess::CloseOutput}\label{wxprocesscloseoutput}
+
+\func{void}{CloseOutput}{\void}
+
+Closes the output stream (the one connected to the stdin of the child
+process). This function can be used to indicate to the child process that
+there is no more data to be read - usually, a filter program will only
+terminate when the input stream is closed.
+
 \membersection{wxProcess::Detach}\label{wxprocessdetach}
 
 \func{void}{Detach}{\void}
@@ -62,14 +85,46 @@ from its parent, no notification events will be sent to the parent and the
 object will delete itself upon reception of the process termination
 notification.
 
+\membersection{wxProcess::GetErrorStream}\label{wxprocessgeterrorstream}
+
+\constfunc{wxInputStream* }{GetErrorStream}{\void}
+
+Returns an input stream which corresponds to the standard error output (stderr)
+of the child process.
+
+\membersection{wxProcess::GetInputStream}\label{wxprocessgetinputstream}
+
+\constfunc{wxInputStream* }{GetInputStream}{\void}
+
+It returns a output stream corresponding to the standard output stream of the
+subprocess. If it is NULL, you have not turned on the redirection.
+See \helpref{wxProcess::Redirect}{wxprocessredirect}.
+
+\membersection{wxProcess::GetOutputStream}\label{wxprocessgetoutputstream}
+
+\constfunc{wxOutputStream* }{GetOutputStream}{\void}
+
+It returns an output stream correspoding to the input stream of the subprocess.
+If it is NULL, you have not turned on the redirection.
+See \helpref{wxProcess::Redirect}{wxprocessredirect}.
+
 \membersection{wxProcess::OnTerminate}\label{wxprocessonterminate}
 
 \constfunc{void}{OnTerminate}{\param{int}{ pid}, \param{int}{ status}}
 
 It is called when the process with the pid {\it pid} finishes.
-It raises a wxWindows event when it isn't overriden.
+It raises a wxWindows event when it isn't overridden.
 
 \docparam{pid}{The pid of the process which has just terminated.}
 
 \docparam{status}{The exit code of the process.}
 
+\membersection{wxProcess::Redirect}\label{wxprocessredirect}
+
+\func{void}{Redirect}{\void}
+
+It turns on the redirection, wxExecute will try to open a couple of pipes
+to catch the subprocess stdio. The caught input stream is returned by
+GetOutputStream() as a non-seekable stream. The caught output stream is returned
+by GetInputStream() as a non-seekable stream.
+