No subject
Thu Jul 29 07:14:30 PDT 2010
dbus_glib_marshal_server_object_BOOLEAN__STRING_POINTER_POINTER
is probably telling me how my function parameters should be looking , how
should i understand it ?
Thanks for your help in advance ...
--00151750e39a6ddafe048c882246
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hi i'm trying to code a service that will be on dbus session bus.<br><b=
r>The xml definiton :<br><br><?xml version=3D"1.0" encoding=3D=
"UTF-8"?><br><br><node name=3D"/net/skynet/Echo"&=
gt;<br>
=A0=A0=A0 <interface name=3D"net.skynet.Echo"><br>=A0=A0=A0=
=A0=A0=A0=A0 <annotation name=3D"org.freedesktop.DBus.GLib.CSymbol&=
quot; value=3D"server"/><br>=A0=A0=A0=A0=A0=A0=A0 <method n=
ame=3D"EchoString"><br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <a=
rg type=3D"s" name=3D"original" direction=3D"in&qu=
ot; /><br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 <arg type=3D"s" name=3D"=
;echo" direction=3D"out" /><br>=A0=A0=A0=A0=A0=A0=A0 <=
/method><br>=A0=A0=A0=A0=A0=A0=A0 <!-- Add more methods/signals if yo=
u want --><br>=A0=A0=A0 </interface><br></node><br>
<br><br>-------------------------------------------------------------------=
----------------------------------------<br><br>The generated .h file :<br>=
<br>/* Generated by dbus-binding-tool; do not edit! */<br><br><br>#ifndef _=
_dbus_glib_marshal_server_object_MARSHAL_H__<br>
#define __dbus_glib_marshal_server_object_MARSHAL_H__<br><br>#include=A0=A0=
=A0 <glib-object.h><br><br>G_BEGIN_DECLS<br><br>#ifdef G_ENABLE_DEBUG=
<br>#define g_marshal_value_peek_boolean(v)=A0 g_value_get_boolean (v)<br>#=
define g_marshal_value_peek_char(v)=A0=A0=A0=A0 g_value_get_char (v)<br>
#define g_marshal_value_peek_uchar(v)=A0=A0=A0 g_value_get_uchar (v)<br>#de=
fine g_marshal_value_peek_int(v)=A0=A0=A0=A0=A0 g_value_get_int (v)<br>#def=
ine g_marshal_value_peek_uint(v)=A0=A0=A0=A0 g_value_get_uint (v)<br>#defin=
e g_marshal_value_peek_long(v)=A0=A0=A0=A0 g_value_get_long (v)<br>
#define g_marshal_value_peek_ulong(v)=A0=A0=A0 g_value_get_ulong (v)<br>#de=
fine g_marshal_value_peek_int64(v)=A0=A0=A0 g_value_get_int64 (v)<br>#defin=
e g_marshal_value_peek_uint64(v)=A0=A0 g_value_get_uint64 (v)<br>#define g_=
marshal_value_peek_enum(v)=A0=A0=A0=A0 g_value_get_enum (v)<br>
#define g_marshal_value_peek_flags(v)=A0=A0=A0 g_value_get_flags (v)<br>#de=
fine g_marshal_value_peek_float(v)=A0=A0=A0 g_value_get_float (v)<br>#defin=
e g_marshal_value_peek_double(v)=A0=A0 g_value_get_double (v)<br>#define g_=
marshal_value_peek_string(v)=A0=A0 (char*) g_value_get_string (v)<br>
#define g_marshal_value_peek_param(v)=A0=A0=A0 g_value_get_param (v)<br>#de=
fine g_marshal_value_peek_boxed(v)=A0=A0=A0 g_value_get_boxed (v)<br>#defin=
e g_marshal_value_peek_pointer(v)=A0 g_value_get_pointer (v)<br>#define g_m=
arshal_value_peek_object(v)=A0=A0 g_value_get_object (v)<br>
#else /* !G_ENABLE_DEBUG */<br>/* WARNING: This code accesses GValues direc=
tly, which is UNSUPPORTED API.<br>=A0*=A0=A0=A0=A0=A0=A0=A0=A0=A0 Do not ac=
cess GValues directly in your code. Instead, use the<br>=A0*=A0=A0=A0=A0=A0=
=A0=A0=A0=A0 g_value_get_*() functions<br>
=A0*/<br>#define g_marshal_value_peek_boolean(v)=A0 (v)->data[0].v_int<b=
r>#define g_marshal_value_peek_char(v)=A0=A0=A0=A0 (v)->data[0].v_int<br=
>#define g_marshal_value_peek_uchar(v)=A0=A0=A0 (v)->data[0].v_uint<br>#=
define g_marshal_value_peek_int(v)=A0=A0=A0=A0=A0 (v)->data[0].v_int<br>
#define g_marshal_value_peek_uint(v)=A0=A0=A0=A0 (v)->data[0].v_uint<br>=
#define g_marshal_value_peek_long(v)=A0=A0=A0=A0 (v)->data[0].v_long<br>=
#define g_marshal_value_peek_ulong(v)=A0=A0=A0 (v)->data[0].v_ulong<br>#=
define g_marshal_value_peek_int64(v)=A0=A0=A0 (v)->data[0].v_int64<br>
#define g_marshal_value_peek_uint64(v)=A0=A0 (v)->data[0].v_uint64<br>#d=
efine g_marshal_value_peek_enum(v)=A0=A0=A0=A0 (v)->data[0].v_long<br>#d=
efine g_marshal_value_peek_flags(v)=A0=A0=A0 (v)->data[0].v_ulong<br>#de=
fine g_marshal_value_peek_float(v)=A0=A0=A0 (v)->data[0].v_float<br>
#define g_marshal_value_peek_double(v)=A0=A0 (v)->data[0].v_double<br>#d=
efine g_marshal_value_peek_string(v)=A0=A0 (v)->data[0].v_pointer<br>#de=
fine g_marshal_value_peek_param(v)=A0=A0=A0 (v)->data[0].v_pointer<br>#d=
efine g_marshal_value_peek_boxed(v)=A0=A0=A0 (v)->data[0].v_pointer<br>
#define g_marshal_value_peek_pointer(v)=A0 (v)->data[0].v_pointer<br>#de=
fine g_marshal_value_peek_object(v)=A0=A0 (v)->data[0].v_pointer<br>#end=
if /* !G_ENABLE_DEBUG */<br><br><br>/* BOOLEAN:STRING,POINTER,POINTER */<br=
>extern void dbus_glib_marshal_server_object_BOOLEAN__STRING_POINTER_POINTE=
R (GClosure=A0=A0=A0=A0 *closure,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 GValue=A0=A0=A0=A0=A0=A0 *return_value,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 guint=A0=A0=A0=A0=A0=A0=
=A0=A0 n_param_values,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 const GValue *param_values,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 gpointer=A0=A0=A0=A0=A0 invocation_hint,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 gpointer=A0=A0=A0=A0=A0=
marshal_data);<br>void<br>
dbus_glib_marshal_server_object_BOOLEAN__STRING_POINTER_POINTER (GClosure=
=A0=A0=A0=A0 *closure,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 GValu=
e=A0=A0=A0=A0=A0=A0 *return_value G_GNUC_UNUSED,<br>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 guint=A0=A0=A0=A0=A0=A0=A0=A0 n_param_values,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 const GValue *param_values,<br>=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 gpointer=A0=A0=A0=A0=A0 invocati=
on_hint G_GNUC_UNUSED,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 gpoin=
ter=A0=A0=A0=A0=A0 marshal_data)<br>
{<br>=A0 typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER) (=
gpointer=A0=A0=A0=A0 data1,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 gpointer=A0=A0=A0=A0 arg_1,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0 gpointer=A0=A0=A0=A0 arg_2,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 gpointer=A0=A0=A0=A0 ar=
g_3,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 gpointer=A0=A0=
=A0=A0 data2);<br>=A0 register GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER=
callback;<br>
=A0 register GCClosure *cc =3D (GCClosure*) closure;<br>=A0 register gpoint=
er data1, data2;<br>=A0 gboolean v_return;<br><br>=A0 g_return_if_fail (ret=
urn_value !=3D NULL);<br>=A0 g_return_if_fail (n_param_values =3D=3D 4);<br=
><br>=A0 if (G_CCLOSURE_SWAP_DATA (closure))<br>
=A0=A0=A0 {<br>=A0=A0=A0=A0=A0 data1 =3D closure->data;<br>=A0=A0=A0=A0=
=A0 data2 =3D g_value_peek_pointer (param_values + 0);<br>=A0=A0=A0 }<br>=
=A0 else<br>=A0=A0=A0 {<br>=A0=A0=A0=A0=A0 data1 =3D g_value_peek_pointer (=
param_values + 0);<br>=A0=A0=A0=A0=A0 data2 =3D closure->data;<br>
=A0=A0=A0 }<br>=A0 callback =3D (GMarshalFunc_BOOLEAN__STRING_POINTER_POINT=
ER) (marshal_data ? marshal_data : cc->callback);<br><br>=A0 v_return =
=3D callback (data1,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 g_marshal_value_peek_string (param_values + 1),<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 g_marsha=
l_value_peek_pointer (param_values + 2),<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 g_marshal_value_peek_pointer (param_va=
lues + 3),<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0 data2);<br><br>=A0 g_value_set_boolean (return_value, v_return);<br>
}<br><br>G_END_DECLS<br><br>#endif /* __dbus_glib_marshal_server_object_MAR=
SHAL_H__ */<br><br>#include <dbus/dbus-glib.h><br>static const DBusGM=
ethodInfo dbus_glib_server_object_methods[] =3D {<br>=A0 { (GCallback) serv=
er_echo_string, dbus_glib_marshal_server_object_BOOLEAN__STRING_POINTER_POI=
NTER, 0 },<br>
};<br><br>const DBusGObjectInfo dbus_glib_server_object_object_info =3D {<b=
r>=A0 0,<br>=A0 dbus_glib_server_object_methods,<br>=A0 1,<br>"net.sky=
net.Echo\0EchoString\0S\0original\0I\0s\0echo\0O\0F\0N\0s\0\0\0",<br>&=
quot;\0",<br>
"\0"<br>};<br><br>-----------------------------------------------=
---------------------------------------------------------------------------=
--------------<br><br>And the service part :<br><br>#include <dbus/dbus-=
glib-bindings.h><br>
<br>//Here you can define you own objects !<br>typedef struct GpkDbus_{<br>=
=A0=A0=A0 guint dummy;<br>}GpkDbus;<br><br>extern gboolean server_echo_stri=
ng (GpkDbus *server, gchar *original, gchar **echo, GError **error);<br><br=
>#include "echo_server_bindings.h"<br>
<br>#define ECHO_SERVICE_NAME "net.skynet.Echo"<br>#define ECHO_O=
BJECT_NAME "/net/skynet/Echo"<br>#define ECHO_INTERFACE_NAME &quo=
t;net.skynet.Echo"<br><br><br>static GMainLoop *loop =3D NULL;<br><br>
<br>/**<br>=A0* echo_service_object_register:<br>=A0* @connection: What we =
want to register to<br>=A0* @object: The GObject we want to register<br>=A0=
*<br>=A0* Return value: success<br>=A0**/<br>static gboolean<br>echo_servic=
e_object_register (DBusGConnection *connection, GObject *object)<br>
{<br>=A0=A0=A0 DBusGProxy *bus_proxy =3D NULL;<br>=A0=A0=A0 GError *error =
=3D NULL;<br>=A0=A0=A0 guint request_name_result;<br>=A0=A0=A0 gboolean ret=
;<br><br>=A0=A0=A0 /* connect to the bus */<br>=A0=A0=A0 bus_proxy =3D dbus=
_g_proxy_new_for_name (connection, DBUS_SERVICE_DBUS,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);<br><br>=A0=A0=A0 /* get our name =
*/<br>=A0=A0=A0 ret =3D dbus_g_proxy_call (bus_proxy, "RequestName&quo=
t;, &error,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 G_TYPE_=
STRING, ECHO_SERVICE_NAME,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 G_TYPE_UINT, DBUS_NAME_FLA=
G_ALLOW_REPLACEMENT |<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0 DBUS_NAME_FLAG_REPLACE_EXISTING |<br>=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 DBUS_NAM=
E_FLAG_DO_NOT_QUEUE,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 G_=
TYPE_INVALID,<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 G_TYPE_UINT, &request_=
name_result,<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 G_TYPE_INV=
ALID);<br>=A0=A0=A0 if (!ret) {<br>=A0=A0=A0=A0=A0=A0=A0 /* abort as the DB=
US method failed */<br>=A0=A0=A0=A0=A0=A0=A0 g_warning ("RequestName f=
ailed: %s", error->message);<br>
=A0=A0=A0=A0=A0=A0=A0 g_error_free (error);<br>=A0=A0=A0=A0=A0=A0=A0 return=
FALSE;<br>=A0=A0=A0 }<br><br>=A0=A0=A0 /* free the bus_proxy */<br>=A0=A0=
=A0 g_object_unref (G_OBJECT (bus_proxy));<br><br>=A0=A0=A0 /* already runn=
ing */<br>=A0=A0=A0 if (request_name_result !=3D DBUS_REQUEST_NAME_REPLY_PR=
IMARY_OWNER)<br>
=A0=A0=A0=A0=A0=A0=A0 return FALSE;<br><br>=A0=A0=A0 // ERRROR HERE ! ...<b=
r>=A0=A0=A0 dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (object), &a=
mp;dbus_glib_server_object_object_info);<br>=A0=A0=A0 //dbus_g_error_domain=
_register (GPK_DBUS_ERROR, NULL, GPK_DBUS_TYPE_ERROR);<br>
=A0=A0=A0 dbus_g_connection_register_g_object (connection, ECHO_OBJECT_NAME=
, object);<br><br>=A0=A0=A0 return TRUE;<br>}<br><br><br><br>/**<br>=A0* ma=
in:<br>=A0**/<br>int<br>main (int argc, char *argv[])<br>{<br>=A0=A0=A0 Gpk=
Dbus *dbus =3D NULL;<br>
=A0=A0=A0 GError *error =3D NULL;<br>=A0=A0=A0 gboolean ret;<br>=A0=A0=A0 g=
uint retval =3D 0;<br>=A0=A0=A0 DBusGConnection *connection;<br><br><br>=A0=
=A0=A0 if (! g_thread_supported ())<br>=A0=A0=A0=A0=A0=A0=A0 g_thread_init =
(NULL);<br>=A0=A0=A0 dbus_g_thread_init ();<br>=A0=A0=A0 g_type_init ();<br=
>
<br><br>=A0=A0=A0 loop =3D g_main_loop_new (NULL, FALSE);<br><br>=A0=A0=A0 =
/* get the bus */<br>=A0=A0=A0 connection =3D dbus_g_bus_get (DBUS_BUS_SESS=
ION, &error);<br>=A0=A0=A0 if (error) {<br>=A0=A0=A0=A0=A0=A0=A0 g_warn=
ing ("%s", error->message);<br>
=A0=A0=A0=A0=A0=A0=A0 g_error_free (error);<br>=A0=A0=A0=A0=A0=A0=A0 retval=
=3D 1;<br>=A0=A0=A0=A0=A0=A0=A0 goto out;<br>=A0=A0=A0 }<br><br>=A0=A0=A0 =
/* try to register */<br>=A0=A0=A0 ret =3D echo_service_object_register (co=
nnection, G_OBJECT (dbus));<br>=A0=A0=A0 if (!ret) {<br>=A0=A0=A0=A0=A0=A0=
=A0 g_warning ("failed to replace running instance.");<br>
=A0=A0=A0=A0=A0=A0=A0 retval =3D 1;<br>=A0=A0=A0=A0=A0=A0=A0 goto out;<br>=
=A0=A0=A0 }<br><br>=A0=A0=A0 /* wait */<br>=A0=A0=A0 g_main_loop_run (loop)=
;<br>out:<br>=A0=A0=A0 g_main_loop_unref (loop);<br>=A0=A0=A0 g_object_unre=
f (dbus);<br>=A0=A0=A0 return retval;<br>}<br><br><br>gboolean<br>
server_echo_string (GpkDbus *server, gchar *original, gchar **echo, GError =
**error)<br>{<br>=A0=A0=A0 *echo =3D g_strdup(original);<br><br>=A0=A0=A0 i=
f (0)<br>=A0=A0=A0 {<br>=A0=A0=A0=A0=A0=A0=A0 /* We have an error, set the =
gerror */<br>=A0=A0=A0=A0=A0=A0=A0 g_set_error (error, g_quark_from_static_=
string ("echo"),<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 0xdeadbeef,<br>=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 "Some random=
problem occured, you're screwed");<br>=A0=A0=A0=A0=A0=A0=A0 retur=
n FALSE;<br>=A0=A0=A0 }<br><br>=A0=A0=A0 return TRUE;<br>}<br><br><br>-----=
---------------------------------------------------------------------------=
-------------------------<br>
<br><br>Here are the parts that are confusing :<br><br>What should be the 1=
st parameter of dbus_g_object_type_install_info=A0 function ?<br><br>From .=
h file the expression dbus_glib_marshal_server_object_BOOLEAN__STRING_POINT=
ER_POINTER<br>
is probably telling me how my function parameters should be looking , how s=
hould i understand it ?<br><br><br>Thanks for your help in advance ...<br><=
br><br><br>
--00151750e39a6ddafe048c882246--
More information about the dbus
mailing list