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

Reply via email to