mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-25 22:05:53 +03:00
Make fileprovidersocketmanager keep track of connected sockets
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
7fc80bc4eb
commit
ffed4d7933
2 changed files with 28 additions and 0 deletions
|
@ -16,6 +16,8 @@
|
|||
|
||||
#include <QLocalSocket>
|
||||
|
||||
#include "fileprovidersocketcontroller.h"
|
||||
|
||||
namespace OCC
|
||||
{
|
||||
|
||||
|
@ -61,6 +63,26 @@ void FileProviderSocketManager::slotNewConnection()
|
|||
return;
|
||||
}
|
||||
|
||||
connect(socket, &QLocalSocket::disconnected,
|
||||
this, &FileProviderSocketManager::slotOnDisconnected);
|
||||
connect(socket, &QLocalSocket::destroyed,
|
||||
this, &FileProviderSocketManager::slotSocketDestroyed);
|
||||
|
||||
const FileProviderSocketControllerPtr controller(new FileProviderSocketController(socket));
|
||||
_socketControllers.insert(socket, controller);
|
||||
}
|
||||
|
||||
void FileProviderSocketManager::slotOnDisconnected()
|
||||
{
|
||||
const auto socket = qobject_cast<QLocalSocket *>(sender());
|
||||
Q_ASSERT(socket);
|
||||
socket->deleteLater();
|
||||
}
|
||||
|
||||
void FileProviderSocketManager::slotSocketDestroyed(QObject *object)
|
||||
{
|
||||
const auto socket = qobject_cast<QLocalSocket *>(object);
|
||||
_socketControllers.remove(socket);
|
||||
}
|
||||
|
||||
} // namespace Mac
|
||||
|
|
|
@ -23,6 +23,9 @@ namespace OCC
|
|||
|
||||
namespace Mac {
|
||||
|
||||
class FileProviderSocketController;
|
||||
using FileProviderSocketControllerPtr = QSharedPointer<FileProviderSocketController>;
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
QString fileProviderSocketPath();
|
||||
#endif
|
||||
|
@ -37,10 +40,13 @@ public:
|
|||
private slots:
|
||||
void startListening();
|
||||
void slotNewConnection();
|
||||
void slotOnDisconnected();
|
||||
void slotSocketDestroyed(QObject *object);
|
||||
|
||||
private:
|
||||
QString _socketPath;
|
||||
QLocalServer _socketServer;
|
||||
QHash<QLocalSocket*, FileProviderSocketControllerPtr> _socketControllers;
|
||||
};
|
||||
|
||||
} // namespace Mac
|
||||
|
|
Loading…
Reference in a new issue