diff options
author | Itay Grudev <itay+github.com@grudev.com> | 2021-06-01 23:59:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-01 23:59:59 +0300 |
commit | c557da5d0cb63b8002c1ba99ec18f257620009b1 (patch) | |
tree | 49ea9772668632a316eddea0bc7bed11dc3efb9c /singleapplication_p.h | |
parent | Merge pull request #132 from itay-grudev/removed_incorrect_coment_in_basic_ex... (diff) | |
parent | Ensure data sent via SingleApplication::sendMessage is received completely (diff) | |
download | singleapplication-c557da5d0cb63b8002c1ba99ec18f257620009b1.tar.xz |
Merge pull request #133 from njeisecke/master
Fix protocol to solve #121 and #125
Diffstat (limited to 'singleapplication_p.h')
-rw-r--r-- | singleapplication_p.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/singleapplication_p.h b/singleapplication_p.h index c49a46d..58507cf 100644 --- a/singleapplication_p.h +++ b/singleapplication_p.h @@ -61,9 +61,10 @@ public: Reconnect = 3 }; enum ConnectionStage : quint8 { - StageHeader = 0, - StageBody = 1, - StageConnected = 2, + StageInitHeader = 0, + StageInitBody = 1, + StageConnectedHeader = 2, + StageConnectedBody = 3, }; Q_DECLARE_PUBLIC(SingleApplication) @@ -79,8 +80,12 @@ public: quint16 blockChecksum() const; qint64 primaryPid() const; QString primaryUser() const; - void readInitMessageHeader(QLocalSocket *socket); + bool isFrameComplete(QLocalSocket *sock); + void readMessageHeader(QLocalSocket *socket, ConnectionStage nextStage); void readInitMessageBody(QLocalSocket *socket); + void writeAck(QLocalSocket *sock); + bool writeConfirmedFrame(int msecs, const QByteArray &msg); + bool writeConfirmedMessage(int msecs, const QByteArray &msg); static void randomSleep(); void addAppData(const QString &data); QStringList appData() const; |