18 : QApplication(argc, argv), _uniqueKey(std::move(uniqueKey)) {
19 sharedMemory.setKey(_uniqueKey);
20 if (sharedMemory.attach()) {
25 if (!sharedMemory.create(1)) {
27 dbg() <<
"Unable to create single instance.";
33 localServer.reset(
new QLocalServer(
this));
34 connect(localServer.data(), &QLocalServer::newConnection,
this,
36 localServer->listen(_uniqueKey);
47 QLocalSocket *localSocket = localServer->nextPendingConnection();
48 if (!localSocket->waitForReadyRead(timeout)) {
50 dbg() << localSocket->errorString().toLatin1();
54 QByteArray byteArray = localSocket->readAll();
55 QString message = QString::fromUtf8(byteArray.constData());
57 localSocket->disconnectFromServer();
78 QLocalSocket localSocket(
this);
79 localSocket.connectToServer(_uniqueKey, QIODevice::WriteOnly);
80 if (!localSocket.waitForConnected(timeout)) {
82 dbg() << localSocket.errorString().toLatin1();
86 QByteArray payload = message.toUtf8();
87 if (payload.isEmpty()) {
88 payload = QByteArray(1,
'\0');
90 localSocket.write(payload);
91 if (!localSocket.waitForBytesWritten(timeout)) {
93 dbg() << localSocket.errorString().toLatin1();
97 localSocket.disconnectFromServer();