diff options
author | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-08-06 11:05:19 +0300 |
---|---|---|
committer | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-08-06 11:05:19 +0300 |
commit | e259ac49bc79329e2b6736eab08f666e3ab87615 (patch) | |
tree | 960b2918b883fd1977cf8d5471f9229054b12e77 /libresourceqt/src/resource-engine.cpp | |
parent | b4e779fd1d17f25e14520e4904e2b294a7402f7b (diff) | |
parent | 68260cf98b7878d8db912450081e8cf5e5b4d5ef (diff) |
Merge branch 'master' of ssh://karma.research.nokia.com/u/repositories/libresourceqt
Diffstat (limited to 'libresourceqt/src/resource-engine.cpp')
-rw-r--r-- | libresourceqt/src/resource-engine.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index e4068d2..dae826b 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -3,6 +3,8 @@ using namespace ResourcePolicy; +static QMultiMap<resconn_t *, ResourceEngine *> engineMap; + resconn_t *ResourceEngine::libresourceConnection = NULL; quint32 ResourceEngine::libresourceUsers = 0; @@ -88,9 +90,11 @@ bool ResourceEngine::initialize() resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_UNREGISTER, handleUnregisterMessage); resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_GRANT, handleGrantMessage); resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_ADVICE, handleAdviceMessage); + engineMap.insert(ResourceEngine::libresourceConnection, this); } else { ResourceEngine::libresourceUsers += 1; + engineMap.insert(ResourceEngine::libresourceConnection, this); } qDebug("ResourceEngine (%u, %p) is now initialized. %d users", @@ -277,7 +281,7 @@ bool ResourceEngine::disconnectFromManager() bool ret = true; if (libresourceSet != NULL) { - ret = resconn_disconnect(libresourceSet, &resourceMessage, statusCallbackHandler) != 0; + ret = resconn_disconnect(libresourceSet, &resourceMessage, statusCallbackHandler)?true:false; } return ret; } @@ -561,15 +565,14 @@ static void connectionIsUp(resconn_t *connection) { qDebug("**************** %s() - locking....", __FUNCTION__); QMutexLocker locker(&mutex); - if (NULL == connection->dbus.rsets->userdata) { - qDebug("IGNORING connectionIsUp"); - return; - } - ResourceEngine *resourceEngine; - resourceEngine = reinterpret_cast<ResourceEngine *>(connection->dbus.rsets->userdata); qDebug("connection is up"); - resourceEngine->handleConnectionIsUp(connection); + + QList<ResourceEngine*> engines = engineMap.values(connection); + for (int i = 0; i < engines.size(); ++i) { + ResourceEngine *resourceEngine = engines.at(i); + resourceEngine->handleConnectionIsUp(connection); + } } void ResourceEngine::handleConnectionIsUp(resconn_t *connection) |