summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolf Bergenheim <ext-wolf.2.bergenheim@nokia.com>2010-04-21 16:03:03 +0300
committerWolf Bergenheim <ext-wolf.2.bergenheim@nokia.com>2010-04-21 16:14:01 +0300
commit3a5be2e8aff1c1bdd6406904307a7b3b7a062d38 (patch)
treec31a83baf98e753675bcdc1f67b739f1bdae5896
parent118f1cc0392785bd0f8b31cbcd624885eebe4fcb (diff)
Fixed destructor
-rw-r--r--debian/changelog6
-rw-r--r--libdbus-qeventloop/libdbus-qeventloop1.pc2
-rw-r--r--libresourceqt/libresourceqt.pro2
-rw-r--r--libresourceqt/libresourceqt1.pc2
-rw-r--r--libresourceqt/src/resource-engine.cpp9
-rw-r--r--libresourceqt/src/resource-engine.h3
-rw-r--r--libresourceqt/src/resource-set.cpp2
-rw-r--r--resourceqt-client/client.cpp5
-rw-r--r--tests/test-resource-engine/test-resource-engine.pro2
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