[PATCH 05/16] emulator: Add ofono_emulator manager_destroy

Zhenhua Zhang zhenhua.zhang at intel.com
Thu May 13 03:02:28 PDT 2010


To destroy all available emulators.
---
 src/emulator.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/emulator.c b/src/emulator.c
index e6ffb78..bed0f46 100644
--- a/src/emulator.c
+++ b/src/emulator.c
@@ -276,6 +276,23 @@ static int emulators_path_list(struct ofono_emulator *oe, char ***objlist)
 	return 0;
 }
 
+static DBusMessage *manager_destroy(DBusConnection *conn, DBusMessage *msg,
+						void *data)
+{
+	struct ofono_emulator *oe = data;
+
+	if (oe->emulator_list) {
+		g_slist_foreach(oe->emulator_list, emulator_dbus_unregister,
+						NULL);
+		g_slist_free(oe->emulator_list);
+		oe->emulator_list = NULL;
+	}
+
+	__ofono_watchlist_remove_all(oe->status_watches);
+
+	return dbus_message_new_method_return(msg);
+}
+
 static DBusMessage *manager_create(DBusConnection *conn, DBusMessage *msg,
 					void *data)
 {
@@ -353,6 +370,7 @@ static DBusMessage *manager_get_properties(DBusConnection *conn,
 static GDBusMethodTable emulator_manager_methods[] = {
 	{ "GetProperties",	"",	"a{sv}", manager_get_properties },
 	{ "Create",		"sh",	"",	manager_create },
+	{ "DestroyAll",		"", 	"",	manager_destroy	},
 	{ }
 };
 
-- 
1.6.3.3



More information about the ofono mailing list