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
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono