mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-28 00:16:15 +01:00
More gdbus migration stuff
This commit is contained in:
parent
54a57bb894
commit
8d66ede1ab
@ -42,9 +42,9 @@
|
|||||||
<row><entry>dbus-glib</entry><entry>GDBus</entry></row>
|
<row><entry>dbus-glib</entry><entry>GDBus</entry></row>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<row><entry>#DBusGConnection</entry></entry>#GDBusConnection</entry></row>
|
<row><entry>#DBusGConnection</entry><entry>#GDBusConnection</entry></row>
|
||||||
<row><entry>#DBusGProxy</entry></entry>#GDBusProxy</entry></row>
|
<row><entry>#DBusGProxy</entry><entry>#GDBusProxy</entry></row>
|
||||||
<row><entry>#DBusGMethodInvocation</entry></entry>#GDBusMethodInvocatoin</entry></row>
|
<row><entry>#DBusGMethodInvocation</entry><entry>#GDBusMethodInvocatoin</entry></row>
|
||||||
<row><entry>dbus_g_bus_get()</entry><entry>g_bus_get_sync(), also see
|
<row><entry>dbus_g_bus_get()</entry><entry>g_bus_get_sync(), also see
|
||||||
g_bus_get()</entry></row>
|
g_bus_get()</entry></row>
|
||||||
<row><entry>dbus_g_proxy_new_for_name()</entry><entry>g_dbus_proxy_new_sync(), also see
|
<row><entry>dbus_g_proxy_new_for_name()</entry><entry>g_dbus_proxy_new_sync(), also see
|
||||||
@ -67,4 +67,87 @@
|
|||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Owning bus names</title>
|
||||||
|
<para>
|
||||||
|
Using dbus-glib, you typically call RequestName manually
|
||||||
|
to own a name, like in the following excerpt:
|
||||||
|
<informalexample><programlisting><![CDATA[
|
||||||
|
static gboolean
|
||||||
|
acquire_name_on_proxy (DBusGProxy *system_bus_proxy,
|
||||||
|
gboolean replace)
|
||||||
|
{
|
||||||
|
GError *error;
|
||||||
|
guint result;
|
||||||
|
gboolean res;
|
||||||
|
gboolean ret;
|
||||||
|
guint flags;
|
||||||
|
|
||||||
|
ret = FALSE;
|
||||||
|
|
||||||
|
flags = DBUS_NAME_FLAG_ALLOW_REPLACEMENT;
|
||||||
|
if (replace)
|
||||||
|
flags |= DBUS_NAME_FLAG_REPLACE_EXISTING;
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
res = dbus_g_proxy_call (system_bus_proxy,
|
||||||
|
"RequestName",
|
||||||
|
&error,
|
||||||
|
G_TYPE_STRING,
|
||||||
|
NAME_TO_CLAIM,
|
||||||
|
G_TYPE_UINT,
|
||||||
|
flags,
|
||||||
|
G_TYPE_INVALID,
|
||||||
|
G_TYPE_UINT,
|
||||||
|
&result,
|
||||||
|
G_TYPE_INVALID);
|
||||||
|
if (!res) {
|
||||||
|
if (error != NULL) {
|
||||||
|
g_warning ("Failed to acquire %s: %s",
|
||||||
|
NAME_TO_CLAIM, error->message);
|
||||||
|
g_error_free (error);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
g_warning ("Failed to acquire %s", NAME_TO_CLAIM);
|
||||||
|
}
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
|
||||||
|
if (error != NULL) {
|
||||||
|
g_warning ("Failed to acquire %s: %s",
|
||||||
|
NAME_TO_CLAIM, error->message);
|
||||||
|
g_error_free (error);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
g_warning ("Failed to acquire %s", NAME_TO_CLAIM);
|
||||||
|
}
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
dbus_g_proxy_add_signal (system_bus_proxy, "NameLost",
|
||||||
|
G_TYPE_STRING, G_TYPE_INVALID);
|
||||||
|
dbus_g_proxy_connect_signal (system_bus_proxy, "NameLost",
|
||||||
|
G_CALLBACK (name_lost), NULL, NULL);
|
||||||
|
ret = TRUE;
|
||||||
|
out:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
]]>
|
||||||
|
</programlisting></informalexample>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While you can do things this way with GDBus too, it is much nicer
|
||||||
|
to use the high-level API for this:
|
||||||
|
<informalexample><programlisting>
|
||||||
|
...insert example here...
|
||||||
|
</programlisting></informalexample>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Creating proxies for well-known names</title>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
Loading…
Reference in New Issue
Block a user