66
66
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
67
67
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> user_data_free_func</code></em>);
68
68
<span class="returnvalue">void</span> <a class="link" href="gio-Owning-Bus-Names.html#g-bus-unown-name" title="g_bus_unown_name ()">g_bus_unown_name</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> owner_id</code></em>);
69
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gio-Owning-Bus-Names.html#g-bus-own-name-with-closures" title="g_bus_own_name_with_closures ()">g_bus_own_name_with_closures</a> (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
70
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
71
<em class="parameter"><code><a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> flags</code></em>,
72
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *bus_acquired_closure</code></em>,
73
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_acquired_closure</code></em>,
74
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_lost_closure</code></em>);
75
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gio-Owning-Bus-Names.html#g-bus-own-name-on-connection-with-closures" title="g_bus_own_name_on_connection_with_closures ()">g_bus_own_name_on_connection_with_closures</a>
76
(<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
77
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
78
<em class="parameter"><code><a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> flags</code></em>,
79
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_acquired_closure</code></em>,
80
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_lost_closure</code></em>);
71
83
<div class="refsect1" title="Description">
170
182
<td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string"><gio/gio.h></span>
172
184
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
173
<span class="function">on_bus_acquired</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDBusConnection.html">GDBusConnection</a> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
174
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
175
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a> user_data</span><span class="symbol">)</span>
185
<span class="function">on_bus_acquired</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
186
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
187
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
176
188
<span class="cbracket">{</span>
177
189
<span class="normal"> </span><span class="comment">/* This is where we'd export some objects on the bus */</span>
178
190
<span class="cbracket">}</span>
180
192
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
181
<span class="function">on_name_acquired</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDBusConnection.html">GDBusConnection</a> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
182
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
183
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a> user_data</span><span class="symbol">)</span>
193
<span class="function">on_name_acquired</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
194
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
195
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
184
196
<span class="cbracket">{</span>
185
197
<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Acquired the name %s on the session bus</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> name</span><span class="symbol">);</span>
186
198
<span class="cbracket">}</span>
188
200
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
189
<span class="function">on_name_lost</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDBusConnection.html">GDBusConnection</a> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
190
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
191
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a> user_data</span><span class="symbol">)</span>
201
<span class="function">on_name_lost</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
202
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">,</span>
203
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
192
204
<span class="cbracket">{</span>
193
205
<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Lost the name %s on the session bus</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> name</span><span class="symbol">);</span>
194
206
<span class="cbracket">}</span>
196
208
<span class="type">int</span>
197
209
<span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">argv</span><span class="symbol">[])</span>
198
210
<span class="cbracket">{</span>
199
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint">guint</a> owner_id</span><span class="symbol">;</span>
200
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop">GMainLoop</a> </span><span class="symbol">*</span><span class="normal">loop</span><span class="symbol">;</span>
201
<span class="normal"> <a href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags">GBusNameOwnerFlags</a> flags</span><span class="symbol">;</span>
202
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean">gboolean</a> opt_replace</span><span class="symbol">;</span>
203
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean">gboolean</a> opt_allow_replacement</span><span class="symbol">;</span>
204
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal">opt_name</span><span class="symbol">;</span>
205
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#GOptionContext">GOptionContext</a> </span><span class="symbol">*</span><span class="normal">opt_context</span><span class="symbol">;</span>
206
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError">GError</a> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">;</span>
207
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#GOptionEntry">GOptionEntry</a> opt_entries</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span>
211
<span class="normal"> </span><span class="usertype">guint</span><span class="normal"> owner_id</span><span class="symbol">;</span>
212
<span class="normal"> </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop</span><span class="symbol">;</span>
213
<span class="normal"> </span><span class="usertype">GBusNameOwnerFlags</span><span class="normal"> flags</span><span class="symbol">;</span>
214
<span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> opt_replace</span><span class="symbol">;</span>
215
<span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> opt_allow_replacement</span><span class="symbol">;</span>
216
<span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_name</span><span class="symbol">;</span>
217
<span class="normal"> </span><span class="usertype">GOptionContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_context</span><span class="symbol">;</span>
218
<span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">;</span>
219
<span class="normal"> </span><span class="usertype">GOptionEntry</span><span class="normal"> opt_entries</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span>
208
220
<span class="normal"> </span><span class="cbracket">{</span>
209
221
<span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"replace"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'r'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#G-OPTION-ARG-NONE:CAPS">G_OPTION_ARG_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">opt_replace</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Replace existing name if possible"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
210
222
<span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"allow-replacement"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'a'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#G-OPTION-ARG-NONE:CAPS">G_OPTION_ARG_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">opt_allow_replacement</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Allow replacement"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
598
610
<p class="since">Since 2.26</p>
613
<div class="refsect2" title="g_bus_own_name_with_closures ()">
614
<a name="g-bus-own-name-with-closures"></a><h3>g_bus_own_name_with_closures ()</h3>
615
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_bus_own_name_with_closures (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
616
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
617
<em class="parameter"><code><a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> flags</code></em>,
618
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *bus_acquired_closure</code></em>,
619
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_acquired_closure</code></em>,
620
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_lost_closure</code></em>);</pre>
622
Version of <a class="link" href="gio-Owning-Bus-Names.html#g-bus-own-name" title="g_bus_own_name ()"><code class="function">g_bus_own_name()</code></a> using closures instead of callbacks for
623
easier binding in other languages.
625
<div class="variablelist"><table border="0">
626
<col align="left" valign="top">
629
<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
630
<td>The type of bus to own a name on.
634
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
635
<td>The well-known name to own.
639
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
640
<td>A set of flags from the <a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> enumeration.
644
<td><p><span class="term"><em class="parameter"><code>bus_acquired_closure</code></em> :</span></p></td>
645
<td> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to invoke when connected to
646
the bus of type <em class="parameter"><code>bus_type</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
650
<td><p><span class="term"><em class="parameter"><code>name_acquired_closure</code></em> :</span></p></td>
651
<td> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to invoke when <em class="parameter"><code>name</code></em> is
652
acquired or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
656
<td><p><span class="term"><em class="parameter"><code>name_lost_closure</code></em> :</span></p></td>
657
<td> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to invoke when <em class="parameter"><code>name</code></em> is lost or
658
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
662
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
663
<td> An identifier (never 0) that an be used with
664
<a class="link" href="gio-Owning-Bus-Names.html#g-bus-unown-name" title="g_bus_unown_name ()"><code class="function">g_bus_unown_name()</code></a> to stop owning the name.
666
Rename to: g_bus_own_name
672
<p class="since">Since 2.26</p>
675
<div class="refsect2" title="g_bus_own_name_on_connection_with_closures ()">
676
<a name="g-bus-own-name-on-connection-with-closures"></a><h3>g_bus_own_name_on_connection_with_closures ()</h3>
677
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_bus_own_name_on_connection_with_closures
678
(<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
679
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
680
<em class="parameter"><code><a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> flags</code></em>,
681
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_acquired_closure</code></em>,
682
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> *name_lost_closure</code></em>);</pre>
684
Version of <a class="link" href="gio-Owning-Bus-Names.html#g-bus-own-name-on-connection" title="g_bus_own_name_on_connection ()"><code class="function">g_bus_own_name_on_connection()</code></a> using closures instead of callbacks for
685
easier binding in other languages.
687
<div class="variablelist"><table border="0">
688
<col align="left" valign="top">
691
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
692
<td>A <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> that is not closed.
696
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
697
<td>The well-known name to own.
701
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
702
<td>A set of flags from the <a class="link" href="gio-Owning-Bus-Names.html#GBusNameOwnerFlags" title="enum GBusNameOwnerFlags"><span class="type">GBusNameOwnerFlags</span></a> enumeration.
706
<td><p><span class="term"><em class="parameter"><code>name_acquired_closure</code></em> :</span></p></td>
707
<td> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to invoke when <em class="parameter"><code>name</code></em> is
708
acquired or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
712
<td><p><span class="term"><em class="parameter"><code>name_lost_closure</code></em> :</span></p></td>
713
<td> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosure"><span class="type">GClosure</span></a> to invoke when <em class="parameter"><code>name</code></em> is lost or
714
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span>
718
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
719
<td> An identifier (never 0) that an be used with
720
<a class="link" href="gio-Owning-Bus-Names.html#g-bus-unown-name" title="g_bus_unown_name ()"><code class="function">g_bus_unown_name()</code></a> to stop owning the name.
722
Rename to: g_bus_own_name_on_connection
728
<p class="since">Since 2.26</p>
602
732
<div class="footer">