Update singleApplication.

See : https://github.com/itay-grudev/SingleApplication


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5708 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
scorpio810
2019-01-19 15:25:48 +00:00
parent c915cb1ba9
commit c6d537a5d5
3 changed files with 143 additions and 73 deletions

View File

@@ -44,6 +44,14 @@ struct InstancesInfo {
quint16 checksum;
};
struct ConnectionInfo {
explicit ConnectionInfo() :
msgLen(0), instanceId(0), stage(0) {}
qint64 msgLen;
quint32 instanceId;
quint8 stage;
};
class SingleApplicationPrivate : public QObject {
Q_OBJECT
public:
@@ -53,6 +61,11 @@ public:
SecondaryInstance = 2,
Reconnect = 3
};
enum ConnectionStage : quint8 {
StageHeader = 0,
StageBody = 1,
StageConnected = 2,
};
Q_DECLARE_PUBLIC(SingleApplication)
SingleApplicationPrivate( SingleApplication *q_ptr );
@@ -65,6 +78,8 @@ public:
void connectToPrimary(int msecs, ConnectionType connectionType );
quint16 blockChecksum();
qint64 primaryPid();
void readInitMessageHeader(QLocalSocket *socket);
void readInitMessageBody(QLocalSocket *socket);
SingleApplication *q_ptr;
QSharedMemory *memory;
@@ -73,6 +88,7 @@ public:
quint32 instanceNumber;
QString blockServerName;
SingleApplication::Options options;
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
public Q_SLOTS:
void slotConnectionEstablished();