// wxProcess creation
// ----------------------------------------------------------------------------
-void wxProcess::Init(wxEvtHandler *parent, int id, bool redirect)
+void wxProcess::Init(wxEvtHandler *parent, int id, int flags)
{
if ( parent )
SetNextHandler(parent);
m_id = id;
- m_redirect = redirect;
+ m_redirect = (flags & wxPROCESS_REDIRECT) != 0;
#if wxUSE_STREAMS
m_inputStream = NULL;
#endif // wxUSE_STREAMS
}
+/* static */
+wxProcess *wxProcess::Open(const wxString& cmd, int flags)
+{
+ wxASSERT_MSG( !(flags & wxEXEC_SYNC), wxT("wxEXEC_SYNC should not be used." ));
+ wxProcess *process = new wxProcess(wxPROCESS_REDIRECT);
+ if ( !wxExecute(cmd, flags, process) )
+ {
+ // couldn't launch the process
+ delete process;
+ return NULL;
+ }
+
+ return process;
+}
+
// ----------------------------------------------------------------------------
// wxProcess termination
// ----------------------------------------------------------------------------
m_outputStream = outputStream;
}
+// these are implemented in platform-dependent (and correct!) way under MSW and
+// Unix but we still have to provide these dummy versions for the other
+// platforms here
+#if !defined(__WIN32__) && !defined(__UNIX_LIKE__)
+
+bool wxProcess::IsInputOpened() const
+{
+ return m_inputStream != NULL;
+}
+
+bool wxProcess::IsInputAvailable() const
+{
+ return m_inputStream && !m_inputStream->Eof();
+}
+
+bool wxProcess::IsErrorAvailable() const
+{
+ return m_errorStream && !m_errorStream->Eof();
+}
+
+#endif // !Win32 && !Unix
+
#endif // wxUSE_STREAMS
// ----------------------------------------------------------------------------