// qprocess.sip generated by MetaSIP on Fri Sep 28 17:07:47 2007 // // This file is part of the QtCore Python extension module. // // Copyright (c) 2007 // Phil Thompson // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 as published by // the Free Software Foundation and appearing in the file LICENSE included in the // packaging of this file. // // PyQt is supplied in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %If (WS_WIN) typedef void *Q_PID; %End %If (WS_X11 || WS_MACX) typedef qint64 Q_PID; %End class QProcess : QIODevice { %TypeHeaderCode #include %End public: enum ExitStatus { NormalExit, CrashExit, }; enum ProcessError { FailedToStart, Crashed, Timedout, ReadError, WriteError, UnknownError, }; enum ProcessState { NotRunning, Starting, Running, }; enum ProcessChannel { StandardOutput, StandardError, }; enum ProcessChannelMode { SeparateChannels, MergedChannels, ForwardedChannels, }; explicit QProcess(QObject *parent /TransferThis/ = 0); virtual ~QProcess(); void start(const QString &program, const QStringList &arguments, QFlags mode = ReadWrite); void start(const QString &program, QFlags mode = ReadWrite); QProcess::ProcessChannelMode readChannelMode() const; void setReadChannelMode(QProcess::ProcessChannelMode mode); QProcess::ProcessChannel readChannel() const; void setReadChannel(QProcess::ProcessChannel channel); void closeReadChannel(QProcess::ProcessChannel channel); void closeWriteChannel(); QString workingDirectory() const; void setWorkingDirectory(const QString &dir); void setEnvironment(const QStringList &environment); QStringList environment() const; QProcess::ProcessError error() const; QProcess::ProcessState state() const; Q_PID pid() const; bool waitForStarted(int msecs = 30000) /ReleaseGIL/; virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/; virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/; bool waitForFinished(int msecs = 30000) /ReleaseGIL/; QByteArray readAllStandardOutput() /ReleaseGIL/; QByteArray readAllStandardError() /ReleaseGIL/; int exitCode() const; QProcess::ExitStatus exitStatus() const; virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; virtual bool isSequential() const; virtual bool canReadLine() const; virtual void close(); virtual bool atEnd() const; static int execute(const QString &program, const QStringList &arguments) /ReleaseGIL/; static int execute(const QString &program) /ReleaseGIL/; %If (Qt_4_3_0 -) static bool startDetached(const QString &program, const QStringList &arguments, const QString &workingDirectory, qint64 *pid = 0); %End static bool startDetached(const QString &program, const QStringList &arguments); static bool startDetached(const QString &program); static QStringList systemEnvironment(); %If (Qt_4_2_0 -) QProcess::ProcessChannelMode processChannelMode() const; %End %If (Qt_4_2_0 -) void setProcessChannelMode(QProcess::ProcessChannelMode mode); %End %If (Qt_4_2_0 -) void setStandardInputFile(const QString &fileName); %End %If (Qt_4_2_0 -) void setStandardOutputFile(const QString &fileName, QFlags mode = Truncate); %End %If (Qt_4_2_0 -) void setStandardErrorFile(const QString &fileName, QFlags mode = Truncate); %End %If (Qt_4_2_0 -) void setStandardOutputProcess(QProcess *destination); %End public slots: void terminate(); void kill(); signals: void started(); void finished(int exitCode); void finished(int exitCode, QProcess::ExitStatus exitStatus); void error(QProcess::ProcessError error); void stateChanged(QProcess::ProcessState state); void readyReadStandardOutput(); void readyReadStandardError(); protected: void setProcessState(QProcess::ProcessState state); virtual void setupChildProcess(); virtual SIP_PYOBJECT readData(qint64 maxlen) /ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. char *s; if ((s = (char *)sipMalloc(a0)) == NULL) sipIsErr = 1; else { qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); Py_END_ALLOW_THREADS if (len < 0) { sipFree((ANY *)s); Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = PyString_FromStringAndSize(s, len); sipFree((ANY *)s); if (sipRes == NULL) sipIsErr = 1; } } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; private: QProcess(const QProcess &); };