From ea01d7784ad3ab34061f43aa51ee91ce2339e003 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 14 Apr 2015 17:09:02 -0700 Subject: And move the creation of connections to the thread Now we know that all timers and socket notifiers get created only in the QDBusConnectionManager thread. Incidentally, this reduced code duplication. Change-Id: I27eaacb532114dd188c4ffff13d5075a8d2efb0b Reviewed-by: Alex Blasche --- src/dbus/qdbusconnectionmanager_p.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/dbus/qdbusconnectionmanager_p.h') diff --git a/src/dbus/qdbusconnectionmanager_p.h b/src/dbus/qdbusconnectionmanager_p.h index c3c7999699..4527c562f8 100644 --- a/src/dbus/qdbusconnectionmanager_p.h +++ b/src/dbus/qdbusconnectionmanager_p.h @@ -57,6 +57,7 @@ QT_BEGIN_NAMESPACE class QDBusConnectionManager : public QDaemonThread { Q_OBJECT + struct ConnectionRequestData; public: QDBusConnectionManager(); ~QDBusConnectionManager(); @@ -65,13 +66,23 @@ public: QDBusConnectionPrivate *connection(const QString &name) const; void removeConnection(const QString &name); void setConnection(const QString &name, QDBusConnectionPrivate *c); + QDBusConnectionPrivate *connectToBus(QDBusConnection::BusType type, const QString &name); + QDBusConnectionPrivate *connectToBus(const QString &address, const QString &name); + QDBusConnectionPrivate *connectToPeer(const QString &address, const QString &name); mutable QMutex mutex; +signals: + void connectionRequested(ConnectionRequestData *); + void serverRequested(const QString &address, void *server); + protected: void run() Q_DECL_OVERRIDE; private: + void executeConnectionRequest(ConnectionRequestData *data); + void createServer(const QString &address, void *server); + QHash connectionHash; mutable QMutex senderMutex; -- cgit v1.2.3