105 lines
3.1 KiB
C++
105 lines
3.1 KiB
C++
#include "ipcserverprocess.h"
|
|
#include <QProcess>
|
|
|
|
IpcServerProcess::IpcServerProcess(QObject *parent) :
|
|
IpcProcessInterfaceSource(parent),
|
|
m_process(QSharedPointer<QProcess>(new QProcess()))
|
|
{
|
|
connect(m_process.data(), &QProcess::errorOccurred, this, &IpcServerProcess::errorOccurred);
|
|
connect(m_process.data(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, &IpcServerProcess::finished);
|
|
connect(m_process.data(), &QProcess::readyRead, this, &IpcServerProcess::readyRead);
|
|
connect(m_process.data(), &QProcess::readyReadStandardError, this, &IpcServerProcess::readyReadStandardError);
|
|
connect(m_process.data(), &QProcess::readyReadStandardOutput, this, &IpcServerProcess::readyReadStandardOutput);
|
|
connect(m_process.data(), &QProcess::started, this, &IpcServerProcess::started);
|
|
connect(m_process.data(), &QProcess::stateChanged, this, &IpcServerProcess::stateChanged);
|
|
|
|
connect(m_process.data(), &QProcess::errorOccurred, [&](QProcess::ProcessError error){
|
|
qDebug() << "IpcServerProcess errorOccurred " << error;
|
|
});
|
|
|
|
connect(m_process.data(), &QProcess::readyReadStandardError, this, [this](){
|
|
qDebug() << "IpcServerProcess StandardError " << m_process->readAllStandardError();
|
|
|
|
});
|
|
connect(m_process.data(), &QProcess::readyReadStandardOutput, this, [this](){
|
|
qDebug() << "IpcServerProcess StandardOutput " << m_process->readAllStandardOutput();
|
|
});
|
|
|
|
connect(m_process.data(), &QProcess::readyRead, this, [this](){
|
|
qDebug() << "IpcServerProcess StandardOutput " << m_process->readAll();
|
|
});
|
|
|
|
}
|
|
|
|
IpcServerProcess::~IpcServerProcess()
|
|
{
|
|
qDebug() << "IpcServerProcess::~IpcServerProcess";
|
|
}
|
|
|
|
void IpcServerProcess::start(const QString &program, const QStringList &arguments)
|
|
{
|
|
m_process->start(program, arguments);
|
|
qDebug() << "IpcServerProcess started, " << arguments;
|
|
|
|
m_process->waitForStarted();
|
|
}
|
|
|
|
void IpcServerProcess::start()
|
|
{
|
|
m_process->start();
|
|
qDebug() << "IpcServerProcess started, " << m_process->program() << m_process->arguments();
|
|
|
|
m_process->waitForStarted();
|
|
}
|
|
|
|
void IpcServerProcess::close()
|
|
{
|
|
m_process->close();
|
|
}
|
|
|
|
void IpcServerProcess::setArguments(const QStringList &arguments)
|
|
{
|
|
m_process->setArguments(arguments);
|
|
}
|
|
|
|
void IpcServerProcess::setInputChannelMode(QProcess::InputChannelMode mode)
|
|
{
|
|
m_process->setInputChannelMode(mode);
|
|
}
|
|
|
|
void IpcServerProcess::setNativeArguments(const QString &arguments)
|
|
{
|
|
#ifdef Q_OS_WIN
|
|
m_process->setNativeArguments(arguments);
|
|
#endif
|
|
}
|
|
|
|
void IpcServerProcess::setProcessChannelMode(QProcess::ProcessChannelMode mode)
|
|
{
|
|
m_process->setProcessChannelMode(mode);
|
|
}
|
|
|
|
void IpcServerProcess::setProgram(const QString &program)
|
|
{
|
|
m_process->setProgram(program);
|
|
}
|
|
|
|
void IpcServerProcess::setWorkingDirectory(const QString &dir)
|
|
{
|
|
m_process->setWorkingDirectory(dir);
|
|
}
|
|
|
|
QByteArray IpcServerProcess::readAll()
|
|
{
|
|
return m_process->readAll();
|
|
}
|
|
|
|
QByteArray IpcServerProcess::readAllStandardError()
|
|
{
|
|
return m_process->readAllStandardError();
|
|
}
|
|
|
|
QByteArray IpcServerProcess::readAllStandardOutput()
|
|
{
|
|
return m_process->readAllStandardOutput();
|
|
}
|