#include "ipcserverprocess.h" #include IpcServerProcess::IpcServerProcess(QObject *parent) : IpcProcessInterfaceSource(parent), m_process(QSharedPointer(new QProcess())) { // connect(m_process.data(), &QProcess::errorOccurred, this, &IpcServerProcess::errorOccurred); // connect(m_process.data(), QOverload::of(&QProcess::finished), this, &IpcServerProcess::finished); // 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, [&](){ qDebug() << "IpcServerProcess StandardError " << m_process->readAllStandardError(); }); connect(m_process.data(), &QProcess::readyReadStandardOutput, [&](){ qDebug() << "IpcServerProcess StandardOutput " << m_process->readAllStandardOutput(); }); connect(m_process.data(), &QProcess::readyRead, [&](){ qDebug() << "IpcServerProcess StandardOutput " << m_process->readAll(); }); } void IpcServerProcess::start(const QString &program, const QStringList &arguments) { m_process->start(program, arguments); qDebug() << "IpcServerProcess started, " << arguments; m_process->waitForStarted(); qDebug() << "waitForStarted started, " << m_process->errorString(); } void IpcServerProcess::start() { m_process->start(); qDebug() << "IpcServerProcess started, " << m_process->program() << m_process->arguments(); m_process->waitForStarted(); qDebug() << "waitForStarted , " << m_process->errorString() << m_process->error(); } 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::readAllStandardError() { return m_process->readAllStandardError(); } QByteArray IpcServerProcess::readAllStandardOutput() { return m_process->readAllStandardOutput(); }