Update SingleApplication

This commit is contained in:
Jonas Kvinge
2022-02-06 00:07:15 +01:00
parent 79f0c494fa
commit 1dd4eb05f2
10 changed files with 390 additions and 231 deletions

View File

@@ -71,9 +71,10 @@ class SingleCoreApplicationPrivate : public QObject {
Reconnect = 3
};
enum ConnectionStage : quint8 {
StageHeader = 0,
StageBody = 1,
StageConnected = 2,
StageInitHeader = 0,
StageInitBody = 1,
StageConnectedHeader = 2,
StageConnectedBody = 3,
};
Q_DECLARE_PUBLIC(SingleCoreApplication)
@@ -89,8 +90,12 @@ class SingleCoreApplicationPrivate : public QObject {
quint16 blockChecksum() const;
qint64 primaryPid() const;
QString primaryUser() const;
void readInitMessageHeader(QLocalSocket *socket);
bool isFrameComplete(QLocalSocket *sock);
void readMessageHeader(QLocalSocket *socket, const ConnectionStage nextStage);
void readInitMessageBody(QLocalSocket *socket);
void writeAck(QLocalSocket *sock);
bool writeConfirmedFrame(const int timeout, const QByteArray &msg);
bool writeConfirmedMessage(const int timeout, const QByteArray &msg);
static void randomSleep();
SingleCoreApplication *q_ptr;