smsub/SMSubProcess.h

53 lines
1.5 KiB
C++

/*****************************************************************************
* smsub Server Manager Subprocess
* Copyright (C) 2020-2021 Syping
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* This software is provided as-is, no warranties are given to you, we are not
* responsible for anything with use of the software, you are self responsible.
*****************************************************************************/
#ifndef SMSUBPROCESS_H
#define SMSUBPROCESS_H
#include <QObject>
#include <QProcess>
class SMSubProcess : public QObject
{
Q_OBJECT
public:
SMSubProcess(const QString &executable, const QStringList &arguments, const QString& workingDirectory, const int &termTimeout = 60000);
void start();
private:
QProcess process;
int termTimeout;
public slots:
void aboutToQuit();
void killProcess();
void stopProcess();
void writeInput(const QByteArray &input);
private slots:
void readyRead();
void processError(QProcess::ProcessError error);
signals:
void outputWritten(const QByteArray &output);
void processStopped();
};
#endif // SMSUBPROCESS_H