// qprocess.sip generated by MetaSIP
|
//
|
// This file is part of the QtCore Python extension module.
|
//
|
// Copyright (c) 2024 Riverbank Computing Limited <info@riverbankcomputing.com>
|
//
|
// This file is part of PyQt5.
|
//
|
// This file may be used under the terms of the GNU General Public License
|
// version 3.0 as published by the Free Software Foundation and appearing in
|
// the file LICENSE included in the packaging of this file. Please review the
|
// following information to ensure the GNU General Public License version 3.0
|
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
//
|
// If you do not wish to use this file under the terms of the GPL version 3.0
|
// then you may purchase a commercial license. For more information contact
|
// info@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)
|
%If (PyQt_Process)
|
typedef void *Q_PID;
|
%End
|
%End
|
%If (WS_X11 || WS_MACX)
|
%If (PyQt_Process)
|
typedef qint64 Q_PID;
|
%End
|
%End
|
%If (PyQt_Process)
|
|
class QProcess : public QIODevice
|
{
|
%TypeHeaderCode
|
#include <qprocess.h>
|
%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,
|
%If (Qt_5_2_0 -)
|
ForwardedOutputChannel,
|
%End
|
%If (Qt_5_2_0 -)
|
ForwardedErrorChannel,
|
%End
|
};
|
|
explicit QProcess(QObject *parent /TransferThis/ = 0);
|
virtual ~QProcess();
|
void start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = QIODevice::ReadWrite) /HoldGIL/;
|
void start(const QString &command, QIODevice::OpenMode mode = QIODevice::ReadWrite) /HoldGIL/;
|
%If (Qt_5_1_0 -)
|
void start(QIODevice::OpenMode mode = QIODevice::ReadWrite) /HoldGIL/;
|
%End
|
QProcess::ProcessChannel readChannel() const;
|
void setReadChannel(QProcess::ProcessChannel channel);
|
void closeReadChannel(QProcess::ProcessChannel channel);
|
void closeWriteChannel();
|
QString workingDirectory() const;
|
void setWorkingDirectory(const QString &dir);
|
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/;
|
static bool startDetached(const QString &program, const QStringList &arguments, const QString &workingDirectory, qint64 *pid = 0);
|
static bool startDetached(const QString &program, const QStringList &arguments);
|
static bool startDetached(const QString &program);
|
%If (Qt_5_10_0 -)
|
bool startDetached(qint64 *pid = 0);
|
%End
|
static QStringList systemEnvironment();
|
QProcess::ProcessChannelMode processChannelMode() const;
|
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
|
void setStandardInputFile(const QString &fileName);
|
void setStandardOutputFile(const QString &fileName, QIODevice::OpenMode mode = QIODevice::Truncate);
|
void setStandardErrorFile(const QString &fileName, QIODevice::OpenMode mode = QIODevice::Truncate);
|
void setStandardOutputProcess(QProcess *destination);
|
|
public slots:
|
void terminate();
|
void kill();
|
|
signals:
|
void started();
|
void finished(int exitCode, QProcess::ExitStatus exitStatus);
|
void error(QProcess::ProcessError error);
|
void stateChanged(QProcess::ProcessState state);
|
void readyReadStandardOutput();
|
void readyReadStandardError();
|
%If (Qt_5_6_0 -)
|
void errorOccurred(QProcess::ProcessError error);
|
%End
|
|
protected:
|
void setProcessState(QProcess::ProcessState state);
|
virtual void setupChildProcess();
|
virtual SIP_PYOBJECT readData(qint64 maxlen) /TypeHint="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:
|
void setProcessEnvironment(const QProcessEnvironment &environment);
|
QProcessEnvironment processEnvironment() const;
|
QString program() const;
|
%If (Qt_5_1_0 -)
|
void setProgram(const QString &program);
|
%End
|
QStringList arguments() const;
|
%If (Qt_5_1_0 -)
|
void setArguments(const QStringList &arguments);
|
%End
|
%If (Qt_5_1_0 -)
|
virtual bool open(QIODevice::OpenMode mode = QIODevice::ReadWrite) /ReleaseGIL/;
|
%End
|
%If (Qt_5_2_0 -)
|
|
enum InputChannelMode
|
{
|
ManagedInputChannel,
|
ForwardedInputChannel,
|
};
|
|
%End
|
%If (Qt_5_2_0 -)
|
QProcess::InputChannelMode inputChannelMode() const;
|
%End
|
%If (Qt_5_2_0 -)
|
void setInputChannelMode(QProcess::InputChannelMode mode);
|
%End
|
%If (Qt_5_2_0 -)
|
static QString nullDevice();
|
%End
|
%If (Qt_5_3_0 -)
|
qint64 processId() const;
|
%End
|
};
|
|
%End
|
%If (PyQt_Process)
|
|
class QProcessEnvironment
|
{
|
%TypeHeaderCode
|
#include <qprocess.h>
|
%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 insert(const QProcessEnvironment &e);
|
void remove(const QString &name);
|
QString value(const QString &name, const QString &defaultValue = QString()) const;
|
QStringList toStringList() const;
|
static QProcessEnvironment systemEnvironment();
|
QStringList keys() const;
|
void swap(QProcessEnvironment &other /Constrained/);
|
};
|
|
%End
|