diff options
author | Wolf Bergenheim <ext-wolf.2.bergenheim@nokia.com> | 2010-04-21 16:03:03 +0300 |
---|---|---|
committer | Wolf Bergenheim <ext-wolf.2.bergenheim@nokia.com> | 2010-04-21 16:14:01 +0300 |
commit | 3a5be2e8aff1c1bdd6406904307a7b3b7a062d38 (patch) | |
tree | c31a83baf98e753675bcdc1f67b739f1bdae5896 | |
parent | 118f1cc0392785bd0f8b31cbcd624885eebe4fcb (diff) | |
download | libresourceqt-3a5be2e8aff1c1bdd6406904307a7b3b7a062d38.tar.gz |
Fixed destructor
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | libdbus-qeventloop/libdbus-qeventloop1.pc | 2 | ||||
-rw-r--r-- | libresourceqt/libresourceqt.pro | 2 | ||||
-rw-r--r-- | libresourceqt/libresourceqt1.pc | 2 | ||||
-rw-r--r-- | libresourceqt/src/resource-engine.cpp | 9 | ||||
-rw-r--r-- | libresourceqt/src/resource-engine.h | 3 | ||||
-rw-r--r-- | libresourceqt/src/resource-set.cpp | 2 | ||||
-rw-r--r-- | resourceqt-client/client.cpp | 5 | ||||
-rw-r--r-- | tests/test-resource-engine/test-resource-engine.pro | 2 |
9 files changed, 26 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog index 8dda3c7..33a80d7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libresourceqt (1.6) unstable; urgency=low + + * Implemented SWP#Plicy-296 + + -- Wolf Bergenheim <ext-wolf.2.bergenheim@nokia.com> Wed, 21 Apr 2010 14:38:49 +0300 + libresourceqt (1.5) unstable; urgency=low * Implemented: SWP#Plicy-277 diff --git a/libdbus-qeventloop/libdbus-qeventloop1.pc b/libdbus-qeventloop/libdbus-qeventloop1.pc index b7a7399..4795c39 100644 --- a/libdbus-qeventloop/libdbus-qeventloop1.pc +++ b/libdbus-qeventloop/libdbus-qeventloop1.pc @@ -5,7 +5,7 @@ includedir=${prefix}/include Name: libdbus-qeventloop1 Description: D-Bus - QEventloop binding -Version: 1.2 +Version: 1.6 Libs: -L${libdir} -ldbus-qeventloop Cflags: -I${includedir} Requires: dbus-1 diff --git a/libresourceqt/libresourceqt.pro b/libresourceqt/libresourceqt.pro index f8ef8d8..01cbca5 100644 --- a/libresourceqt/libresourceqt.pro +++ b/libresourceqt/libresourceqt.pro @@ -23,7 +23,7 @@ QMAKE_CXXFLAGS += -Wall LIBS += -L$${LIBDBUSQEVENTLOOP}/build -ldbus-qeventloop OBJECTS_DIR = build -MOC_DIR = build +MOC_DIR = moc CONFIG += qt link_pkgconfig dll QT = core diff --git a/libresourceqt/libresourceqt1.pc b/libresourceqt/libresourceqt1.pc index 9ebe09a..e99b543 100644 --- a/libresourceqt/libresourceqt1.pc +++ b/libresourceqt/libresourceqt1.pc @@ -5,7 +5,7 @@ includedir=${prefix}/include/resource/qt4 Name: libresourceqt1 Description: Maemo resource management Qt API -Version: 1.2 +Version: 1.6 Libs: -L${libdir} -lresourceqt Cflags: -I${includedir} Requires: dbus-1 libdbus-qeventloop1 diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index 929db17..93df853 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -4,6 +4,7 @@ using namespace ResourcePolicy; resconn_t *ResourceEngine::libresourceConnection = NULL; +quint32 ResourceEngine::libresourceUsers = 0; static inline quint32 allResourcesToBitmask(const ResourceSet *resourceSet); static inline quint32 optionalResourcesToBitmask(const ResourceSet *resourceSet); @@ -29,8 +30,10 @@ ResourceEngine::ResourceEngine(ResourceSet *resourceSet) ResourceEngine::~ResourceEngine() { - if (libresourceSet != NULL) + libresourceUsers--; + if (libresourceUsers == 0) { libresourceSet->userdata = NULL; + } //need to destroy all libresource structures, but how? } @@ -56,10 +59,14 @@ bool ResourceEngine::initialize() if (ResourceEngine::libresourceConnection == NULL) { return NULL; } + ResourceEngine::libresourceUsers = 1; resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_UNREGISTER, handleUnregisterMessage); resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_GRANT, handleGrantMessage); resproto_set_handler(ResourceEngine::libresourceConnection, RESMSG_ADVICE, handleAdviceMessage); } + else { + ResourceEngine::libresourceUsers += 1; + } qDebug("ResourceEngine (%p) is now initialized.", this); return true; diff --git a/libresourceqt/src/resource-engine.h b/libresourceqt/src/resource-engine.h index 8c27a45..c7c9090 100644 --- a/libresourceqt/src/resource-engine.h +++ b/libresourceqt/src/resource-engine.h @@ -48,7 +48,6 @@ public: void handleError(quint32 requestNo, qint32 code, const char *message); quint32 id(); - static resconn_t *libresourceConnection; signals: void resourcesBecameAvailable(quint32 bitmaskOfAvailableResources); @@ -68,6 +67,8 @@ private: quint32 requestId; QMap<quint32, resmsg_type_t> messageMap; quint32 connectionMode; + static quint32 libresourceUsers; + static resconn_t *libresourceConnection; }; } diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp index b7a302b..d28eb79 100644 --- a/libresourceqt/src/resource-set.cpp +++ b/libresourceqt/src/resource-set.cpp @@ -20,7 +20,7 @@ ResourceSet::~ResourceSet() } if(resourceEngine != NULL) { resourceEngine->disconnect(this); - //resourceEngine->disconnectFromManager(); + resourceEngine->disconnectFromManager(); delete resourceEngine; } } diff --git a/resourceqt-client/client.cpp b/resourceqt-client/client.cpp index e0adbd0..c7e97f6 100644 --- a/resourceqt-client/client.cpp +++ b/resourceqt-client/client.cpp @@ -367,6 +367,7 @@ void Client::timerEvent(QTimerEvent*) printf("Available commands:\n"); printf("\t help \tprint this help message\n"); printf("\t quit \texit application\n"); + printf("\t free \tdestroy and free the resources\n"); printf("\t acquire\tacquire required resources\n"); printf("\t release\trelease resources\n"); printf("\t update\tupdate modified resource set after add or remove command\n"); @@ -513,6 +514,10 @@ void Client::timerEvent(QTimerEvent*) } } } + else if (params[0] == "free") { + delete resourceSet; + resourceSet = new ResourceSet(applicationClass); + } else if (!params[0].isEmpty()) { QByteArray ba = line.toLatin1(); const char *c_line = ba.data(); diff --git a/tests/test-resource-engine/test-resource-engine.pro b/tests/test-resource-engine/test-resource-engine.pro index d976536..3fe581d 100644 --- a/tests/test-resource-engine/test-resource-engine.pro +++ b/tests/test-resource-engine/test-resource-engine.pro @@ -21,7 +21,7 @@ SOURCES += $${LIBRESOURCEQT}/src/resource.cpp \ test-resource-engine.cpp OBJECTS_DIR = build -MOC_DIR = build +MOC_DIR = build/moc QMAKE_CXXFLAGS += -Wall LIBS += -L$${LIBDBUSQEVENTLOOP}/build -ldbus-qeventloop |