smsub/SMSubProcess.h

53 lines
1.6 KiB
C
Raw Permalink Normal View History

2020-09-19 09:47:02 +02:00
/*****************************************************************************
* smsub Server Manager Subprocess
* Copyright (C) 2020-2024 Syping
2020-09-19 09:47:02 +02:00
*
* 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, const bool &keepAlive = false);
2020-09-19 09:47:02 +02:00
private:
QProcess process;
int termTimeout;
bool keepAlive;
2020-09-19 09:47:02 +02:00
public slots:
void aboutToQuit();
void startProcess();
2020-09-19 09:47:02 +02:00
void stopProcess();
void killProcess();
2020-09-19 09:47:02 +02:00
void writeInput(const QByteArray &input);
private slots:
void readyRead();
void processError(QProcess::ProcessError error);
signals:
void outputWritten(const QByteArray &output);
void statusUpdated(const bool status, const qint64 time);
2020-09-19 09:47:02 +02:00
};
#endif // SMSUBPROCESS_H