Add special StateChanged signal
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 16 May 2009 14:34:42 +0000 (07:34 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 16 May 2009 14:34:42 +0000 (07:34 -0700)
doc/manager-api.txt
src/element.c
src/manager.c

index 13ca366..7f1924e 100644 (file)
@@ -62,6 +62,15 @@ Signals              PropertyChanged(string name, variant value)
                        This signal indicates a changed value of the given
                        property.
 
+               StateChanged(string state)
+
+                       This signal is similar to the PropertyChanged signal
+                       for the State property.
+
+                       It exists for application state only care about the
+                       current state and so can avoid to be woken up when
+                       other details changes.
+
 Properties     string State [readonly]
 
                        The global connection state of a system. Possible
index 712dec6..e4fd6f3 100644 (file)
@@ -1065,6 +1065,16 @@ static void emit_state_change(DBusConnection *conn, const char *state)
        append_state(&entry, state);
 
        g_dbus_send_message(conn, signal);
+
+       signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH,
+                               CONNMAN_MANAGER_INTERFACE, "StateChanged");
+       if (signal == NULL)
+               return;
+
+       dbus_message_iter_init_append(signal, &entry);
+       dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &state);
+
+       g_dbus_send_message(conn, signal);
 }
 
 static void probe_element(struct connman_element *element)
index f5c50f6..14ea6ca 100644 (file)
@@ -388,6 +388,7 @@ static GDBusMethodTable manager_methods[] = {
 
 static GDBusSignalTable manager_signals[] = {
        { "PropertyChanged", "sv" },
+       { "StateChanged",    "s"  },
        { },
 };