OSDN Git Service

gdbus: Add properties into Introspectable interface
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Thu, 4 Oct 2012 07:26:31 +0000 (04:26 -0300)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 4 Oct 2012 14:09:26 +0000 (17:09 +0300)
gdbus/object.c

index 7378523..662ebe3 100644 (file)
@@ -95,6 +95,7 @@ static void generate_interface_xml(GString *gstr, struct interface_data *iface)
 {
        const GDBusMethodTable *method;
        const GDBusSignalTable *signal;
+       const GDBusPropertyTable *property;
 
        for (method = iface->methods; method && method->name; method++) {
                gboolean deprecated = method->flags &
@@ -147,6 +148,24 @@ static void generate_interface_xml(GString *gstr, struct interface_data *iface)
                        g_string_append_printf(gstr, "\t\t</signal>\n");
                }
        }
+
+       for (property = iface->properties; property && property->name;
+                                                               property++) {
+               gboolean deprecated = property->flags &
+                                       G_DBUS_PROPERTY_FLAG_DEPRECATED;
+
+               g_string_append_printf(gstr, "\t\t<property name=\"%s\""
+                                       " type=\"%s\" access=\"%s%s\"",
+                                       property->name, property->type,
+                                       property->get ? "read" : "",
+                                       property->set ? "write" : "");
+
+               if (!deprecated)
+                       g_string_append_printf(gstr, "/>\n");
+               else
+                       g_string_append_printf(gstr,
+                               G_DBUS_ANNOTATE_DEPRECATED(">\n\t\t\t"));
+       }
 }
 
 static void generate_introspection_xml(DBusConnection *conn,