// qprocess.sip generated by MetaSIP on Mon Oct 24 12:33:59 2011 // // This file is part of the QtCore Python extension module. // // Copyright (c) 2011 Riverbank Computing Limited // // This file is part of PyQt. // // This file may be used under the terms of the GNU General Public // License versions 2.0 or 3.0 as published by the Free Software // Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 // included in the packaging of this file. Alternatively you may (at // your option) use any later version of the GNU General Public // License if such license has been publicly approved by Riverbank // Computing Limited (or its successors, if any) and the KDE Free Qt // Foundation. In addition, as a special exception, Riverbank gives you // certain additional rights. These rights are described in the Riverbank // GPL Exception version 1.1, which can be found in the file // GPL_EXCEPTION.txt in this package. // // If you are unsure which license is appropriate for your use, please // contact the sales department at sales@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %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) /HoldGIL/; void start(const QString &program, QFlags mode = ReadWrite) /HoldGIL/; 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, QProcess::ExitStatus exitStatus); void finished(int exitCode); 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) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QProcess::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; public: %If (Qt_4_6_0 -) void setProcessEnvironment(const QProcessEnvironment &environment); %End %If (Qt_4_6_0 -) QProcessEnvironment processEnvironment() const; %End private: QProcess(const QProcess &); }; %If (Qt_4_6_0 -) class QProcessEnvironment { %TypeHeaderCode #include %End public: QProcessEnvironment(); QProcessEnvironment(const QProcessEnvironment &other); ~QProcessEnvironment(); bool operator==(const QProcessEnvironment &other) const; bool operator!=(const QProcessEnvironment &other) const; bool isEmpty() const; void clear(); bool contains(const QString &name) const; void insert(const QString &name, const QString &value); void remove(const QString &name); QString value(const QString &name, const QString &defaultValue /DocValue="Py_v3:''"/ = QString()) const; QStringList toStringList() const; static QProcessEnvironment systemEnvironment(); }; %End