mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-02-18 02:30:31 +01:00
2005-02-12 Havoc Pennington <hp@redhat.com>
* bus/driver.c (bus_driver_handle_introspect): add introspection for bus driver
This commit is contained in:
parent
5b26893cdd
commit
85fb9ff93c
3 changed files with 92 additions and 0 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2005-02-12 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* bus/driver.c (bus_driver_handle_introspect): add introspection
|
||||
for bus driver
|
||||
|
||||
2005-02-12 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* bus/driver.c: put the signature of each bus driver method in the
|
||||
|
|
|
|||
82
bus/driver.c
82
bus/driver.c
|
|
@ -1094,6 +1094,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
|
|||
DBusString xml;
|
||||
DBusMessage *reply;
|
||||
const char *v_STRING;
|
||||
int i;
|
||||
|
||||
_dbus_verbose ("Introspect() on bus driver\n");
|
||||
|
||||
|
|
@ -1128,6 +1129,87 @@ bus_driver_handle_introspect (DBusConnection *connection,
|
|||
goto oom;
|
||||
if (!_dbus_string_append (&xml, " </interface>\n"))
|
||||
goto oom;
|
||||
|
||||
if (!_dbus_string_append_printf (&xml, " <interface name=\"%s\">\n",
|
||||
DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS))
|
||||
goto oom;
|
||||
|
||||
i = 0;
|
||||
while (i < _DBUS_N_ELEMENTS (message_handlers))
|
||||
{
|
||||
if (!_dbus_string_append_printf (&xml, " <method name=\"%s\">\n",
|
||||
message_handlers[i].name))
|
||||
goto oom;
|
||||
|
||||
/* This hacky mess can probably get mopped up eventually when the
|
||||
* introspection format is related to the signature format
|
||||
*/
|
||||
|
||||
if (strcmp (message_handlers[i].in_args, "") == 0)
|
||||
;
|
||||
else if (strcmp (message_handlers[i].in_args,
|
||||
DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_UINT32_AS_STRING) == 0)
|
||||
{
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"in\" type=\"string\"/>\n"))
|
||||
goto oom;
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"in\" type=\"uint32\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else if (strcmp (message_handlers[i].in_args,
|
||||
DBUS_TYPE_STRING_AS_STRING) == 0)
|
||||
{
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"in\" type=\"string\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else
|
||||
{
|
||||
_dbus_warn ("Lack introspection code for in sig '%s'\n",
|
||||
message_handlers[i].in_args);
|
||||
_dbus_assert_not_reached ("FIXME introspection missing");
|
||||
}
|
||||
|
||||
if (strcmp (message_handlers[i].out_args, "") == 0)
|
||||
;
|
||||
else if (strcmp (message_handlers[i].out_args,
|
||||
DBUS_TYPE_STRING_AS_STRING) == 0)
|
||||
{
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"out\" type=\"string\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else if (strcmp (message_handlers[i].out_args,
|
||||
DBUS_TYPE_BOOLEAN_AS_STRING) == 0)
|
||||
{
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"out\" type=\"boolean\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else if (strcmp (message_handlers[i].out_args,
|
||||
DBUS_TYPE_UINT32_AS_STRING) == 0)
|
||||
{
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"out\" type=\"uint32\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else if (strcmp (message_handlers[i].out_args,
|
||||
DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING) == 0)
|
||||
{
|
||||
/* FIXME introspection format doesn't handle arrays yet */
|
||||
if (!_dbus_string_append (&xml, " <arg direction=\"out\" type=\"string\"/>\n"))
|
||||
goto oom;
|
||||
}
|
||||
else
|
||||
{
|
||||
_dbus_warn ("Lack introspection code for out sig '%s'\n",
|
||||
message_handlers[i].out_args);
|
||||
_dbus_assert_not_reached ("FIXME introspection missing");
|
||||
}
|
||||
|
||||
if (!_dbus_string_append (&xml, " </method>\n"))
|
||||
goto oom;
|
||||
|
||||
++i;
|
||||
}
|
||||
|
||||
if (!_dbus_string_append (&xml, " </interface>\n"))
|
||||
goto oom;
|
||||
|
||||
if (!_dbus_string_append (&xml, "</node>\n"))
|
||||
goto oom;
|
||||
|
|
|
|||
|
|
@ -2374,6 +2374,11 @@
|
|||
the deprecation status of the interface.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The "name" attribute on arguments is optional.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue