void DBusInputContextConnection::newConnection(const QDBusConnection &connection) { ComMeegoInputmethodInputcontext1Interface *proxy = new ComMeegoInputmethodInputcontext1Interface(QString(), QString::fromLatin1(DBusClientPath), connection, this); static unsigned int connectionCounter = 1; // Start at 1 so 0 can be used as a sentinel value unsigned int connectionNumber = connectionCounter++; mConnectionNumbers.insert(connection.name(), connectionNumber); mProxys.insert(connectionNumber, proxy); mConnections.insert(connectionNumber, connection.name()); QDBusConnection c(connection); c.connect(QString(), QString::fromLatin1(DBusLocalPath), QString::fromLatin1(DBusLocalInterface), QString::fromLatin1(DisconnectedSignal), this, SLOT(onDisconnection())); c.registerObject(QString::fromLatin1(DBusPath), this); proxy->setLanguage(lastLanguage); }
void SearchManager::quit() { QDBusConnection conn = DBusConnectionPool::threadConnection(); conn.unregisterObject(QStringLiteral("/SearchManager"), QDBusConnection::UnregisterTree); conn.disconnectFromBus(conn.name()); // Make sure all childrens are deleted within context of this thread qDeleteAll(children()); qDeleteAll(mEngines); qDeleteAll(mPlugins); Q_FOREACH (QPluginLoader *loader, mPluginLoaders) { loader->unload(); delete loader; }
void Timed::init_backup_dbus_name() { // We're using an another name for backup interface // to avoid mess while switching to system bus and back again (later) // XXX: But for now it's just the same connection as com.nokia.time QDBusConnection conn = Maemo::Timed::bus() ; const char * const name = "com.nokia.timed.backup" ; const string conn_name = conn.name().toStdString() ; if (conn.registerService(name)) log_info("service name '%s' registered on bus '%s'", name, conn_name.c_str()) ; else { const string msg = conn.lastError().message().toStdString() ; log_critical("can't register service '%s' on bus '%s': '%s'", name, conn_name.c_str(), msg.c_str()) ; log_critical("backup/restore not available") ; } }