From 75d34a403884640d9203c6eed3ed3b74964e94e8 Mon Sep 17 00:00:00 2001 From: Wolf Bergenheim Date: Mon, 15 Feb 2010 11:45:24 +0200 Subject: Fixed acquire --- libresourceqt/src/resource-engine.cpp | 31 +++++++++++++++++-------------- libresourceqt/src/resource-engine.h | 2 +- libresourceqt/src/resource-set.cpp | 18 +++++++++++------- 3 files changed, 29 insertions(+), 22 deletions(-) (limited to 'libresourceqt') diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index 4d877e3..2c5c1f8 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -32,9 +32,9 @@ bool ResourceEngine::initialize() return false; dbus_error_init(&dbusError); - dbusConnection = dbus_bus_get(DBUS_BUS_SYSTEM, &dbusError); + dbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &dbusError); if (dbus_error_is_set(&dbusError)) { - qDebug("Error getting the system bus: %s", dbusError.message); + qDebug("Error getting the session bus: %s", dbusError.message); dbus_error_free(&dbusError); return false; } @@ -49,13 +49,13 @@ bool ResourceEngine::initialize() resproto_set_handler(libresourceConnection, RESMSG_UNREGISTER, handleUnregisterMessage); resproto_set_handler(libresourceConnection, RESMSG_GRANT, handleGrantMessage); resproto_set_handler(libresourceConnection, RESMSG_ADVICE, handleAdviceMessage); - + qDebug("ResourceEngine (%p) is now initialized.", this); return true; } -static void handleUnregisterMessage(resmsg_t *, resset_t *, void *data) +static void handleUnregisterMessage(resmsg_t *, resset_t *resSet, void *) { - ResourceEngine *engine = reinterpret_cast(data); + ResourceEngine *engine = reinterpret_cast(resSet->userdata); engine->disconnected(); } @@ -67,27 +67,29 @@ void ResourceEngine::disconnected() emit disconnectedFromManager(); } -static void handleGrantMessage(resmsg_t *msg, resset_t *, void *data) +static void handleGrantMessage(resmsg_t *msg, resset_t *resSet, void *) { - ResourceEngine *engine = reinterpret_cast(data); + ResourceEngine *engine = reinterpret_cast(resSet->userdata); engine->receivedGrant(&(msg->notify)); } void ResourceEngine::receivedGrant(resmsg_notify_t *notifyMessage) { - qDebug("received a grant message"); + qDebug("received a grant message for request %u", notifyMessage->reqno); if(notifyMessage->resrc == 0) { + qDebug("request DENIED!"); emit resourcesDenied(); } else { + qDebug("emiting signal resourcesAcquired(%02x), this=%p", notifyMessage->resrc, this); emit resourcesAcquired(notifyMessage->resrc); } } -static void handleAdviceMessage(resmsg_t *msg, resset_t *, void *data) +static void handleAdviceMessage(resmsg_t *msg, resset_t *resSet, void *) { - ResourceEngine *engine = reinterpret_cast(data); + ResourceEngine *engine = reinterpret_cast(resSet->userdata); engine->receivedAdvice(&(msg->notify)); } @@ -122,6 +124,7 @@ bool ResourceEngine::connect() resourceMessage.record.mode = mode; + qDebug("ResourceEngine is now connecting..."); libresourceSet = resconn_connect(libresourceConnection, &resourceMessage, statusCallbackHandler); @@ -227,8 +230,8 @@ static void statusCallbackHandler(resset_t *libresourceSet, resmsg_t *message) resourceEngine->handleError(message->status.reqno, message->status.errcod, message->status.errmsg); } else { -// resourceEngine->handleStatusMessage(message->status.reqno); - qDebug("Received a status message of type 0x%02x and #:%u", message->type, message->status.reqno); + qDebug("Received a status message with id %02x and #:%u", message->status.id, message->status.reqno); + resourceEngine->handleStatusMessage(message->status.reqno); } } @@ -248,10 +251,10 @@ void ResourceEngine::handleStatusMessage(quint32 requestNo) } } -void ResourceEngine::handleError(quint32 requestNo, quint32 code, const char *message) +void ResourceEngine::handleError(quint32 requestNo, qint32 code, const char *message) { resmsg_type_t messageType = messageMap.take(requestNo); - qDebug("Error on request %u(0x%02x): %u - %s", requestNo, messageType, code, message); + qDebug("Error on request %u(0x%02x): %d - %s", requestNo, messageType, code, message); } bool ResourceEngine::isConnected() diff --git a/libresourceqt/src/resource-engine.h b/libresourceqt/src/resource-engine.h index a3693e9..34f416a 100644 --- a/libresourceqt/src/resource-engine.h +++ b/libresourceqt/src/resource-engine.h @@ -44,7 +44,7 @@ public: void receivedAdvice(resmsg_notify_t *notifyMessage); void handleStatusMessage(quint32 requestNo); - void handleError(quint32 requestNo, quint32 code, const char *message); + void handleError(quint32 requestNo, qint32 code, const char *message); void setMode(quint32 newMode); diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp index 64f7645..7960fad 100644 --- a/libresourceqt/src/resource-set.cpp +++ b/libresourceqt/src/resource-set.cpp @@ -25,19 +25,20 @@ bool ResourceSet::initialize() if (resourceEngine == NULL) { return false; } - if (!resourceEngine->initialize()) { - return false; - } - if (!resourceEngine->connect()) { - return false; - } QObject::connect(resourceEngine, SIGNAL(connectedToManager()), this, SLOT(connectedHandler())); QObject::connect(resourceEngine, SIGNAL(resourcesAcquired(quint32)), this, SLOT(handleAcquire(quint32))); QObject::connect(resourceEngine, SIGNAL(resourcesDenied()), this, SLOT(handleDeny())); - + if (!resourceEngine->initialize()) { + return false; + } + if (!resourceEngine->connect()) { + return false; + } + qDebug("ResourceSet is initialized engine=%p", resourceEngine); + initialized = true; return true; } @@ -113,6 +114,7 @@ bool ResourceSet::acquire() else if (!resourceEngine->isConnected()) { pendingAcquire = true; resourceEngine->connect(); + return true; } else { return resourceEngine->acquireResources(); @@ -153,6 +155,7 @@ void ResourceSet::connectedHandler() void ResourceSet::handleAcquire(quint32 bitmaskOfGrantedResources) { + qDebug("in %s",__FUNCTION__); QList optionalResources; qDebug("Acquired resources: 0x%04x", bitmaskOfGrantedResources); for(int i=0;i < NumberOfTypes; i++) { @@ -164,6 +167,7 @@ void ResourceSet::handleAcquire(quint32 bitmaskOfGrantedResources) optionalResources << type; } resourceSet[i]->setGranted(); + qDebug("Resource %02x is now granted", i); } } emit resourcesGranted(optionalResources); -- cgit v1.2.3