hi all<br>follwing is the sample code written using dbus, where there is one server<br>which has got method ManyArgs which i want to invoke from client.<br>Following is the code snippet,<br><br>MyServer.xml<br><br>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;<br><br>&lt;node name="/com/example/MyServer"&gt;<br><br>&nbsp; &lt;interface name="com.example.MyServer"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="my_server"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;method name="ManyArgs"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This is optional, and in this case is redunundant --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="my_server_many_args"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/method&gt;<br>&nbsp; &lt;/interface&gt;<br>&lt;/node&gt;<br><br><br>MyServer.c<br>#include &lt;stdio.h&gt;<br>#include &lt;glib-object.h&gt;<br>#include &lt;glib/gi18n.h&gt;<br>#include
 &lt;dbus/dbus-glib.h&gt;<br><br>#include "server.h"<br><br>static gboolean my_server_many_args()<br>{<br>&nbsp;&nbsp;&nbsp; if(1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf("\nmy_server_many_args\n");&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return TRUE;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return FALSE;<br>}<br><br>#include "my-server-glue.h"<br><br><br><br>static GMainLoop *loop;<br>DBusGConnection *connection;<br>static MyServer *server;<br><br>G_DEFINE_TYPE(MyServer, my_server, G_TYPE_OBJECT);<br><br>/* Class init */<br>static void<br>my_server_class_init (MyServerClass *my_server_class)<br>{<br>&nbsp; //g_type_class_add_private (e_data_book_factory_class, sizeof (EDataBookFactoryPrivate));<br>&nbsp; printf("\ni am class init\n");<br>&nbsp; dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (my_server_class), &amp;dbus_glib__object_info);<br>}<br><br>/* Instance init
 */<br>static void<br>my_server_init (MyServer *server)<br>{<br>}<br><br><br><br>int<br>main (int argc, char **argv)<br>{<br>&nbsp; GError *error = NULL;<br>&nbsp; guint32 request_name_ret;<br><br>&nbsp; g_type_init ();<br><br>&nbsp; loop = g_main_loop_new (NULL, FALSE);<br><br>&nbsp; /* Obtain a connection to the session bus */<br>&nbsp; connection = dbus_g_bus_get (DBUS_BUS_SESSION, &amp;error);<br><br>&nbsp; if (connection == NULL)<br>&nbsp; {<br>&nbsp; &nbsp;&nbsp;&nbsp; printf("\nFailed to open connection to bus\n");<br>&nbsp; }&nbsp;&nbsp;&nbsp; <br><br>&nbsp; server = g_object_new (TYPE_MY_SERVER, NULL);<br>&nbsp; dbus_g_connection_register_g_object (connection,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 "/com/example/MyServer",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G_OBJECT (server));<br><br>&nbsp; g_main_loop_run (loop);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp; dbus_g_connection_unref (connection);<br>&nbsp; return 0;<br>}<br><br><br>MyClient.c<br>//#define DBUS_API_SUBJECT_TO_CHANGE<br><br>#include &lt;dbus-1.0/dbus/dbus.h&gt;<br>#include &lt;dbus-1.0/dbus/dbus-glib.h&gt;<br>#include "my-server-bindings.h"<br><br><br>int main (int argc, char **argv)<br>{<br>&nbsp; DBusGConnection *connection;<br>&nbsp; DBusGProxy *proxy;&nbsp;&nbsp;&nbsp; <br>&nbsp; DBusMessage *message;&nbsp;&nbsp;&nbsp; <br><br><br>&nbsp; GError *error;<br>&nbsp; char **name_list;<br>&nbsp; char **name_list_ptr;<br><br>&nbsp; guint32 request_name_ret;<br><br>&nbsp; g_type_init ();<br><br><br>&nbsp; error
 = NULL;<br>&nbsp; connection = dbus_g_bus_get (DBUS_BUS_SESSION,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;error);<br>&nbsp;<br>&nbsp; if (connection == NULL)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_printerr ("Failed to open connection to bus: %s\n",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error-&gt;message);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_error_free (error);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit (1);<br>&nbsp;&nbsp;&nbsp; }<br><br><br>&nbsp; /* Create a proxy object for the "bus driver" (name "org.freedesktop.DBus") */<br>&nbsp;<br>&nbsp; proxy = dbus_g_proxy_new_for_name
 (connection,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBUS_SERVICE_DBUS,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "/com/example/MyServer",//DBUS_PATH_DBUS,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "com.example.MyServer");<br><br>&nbsp; <br>&nbsp;// com_example_MyServer_many_args (DBusGProxy *proxy, GError **error)&nbsp;&nbsp;&nbsp; <br>&nbsp;if(!com_example_MyServer_many_args (proxy,&amp;error))<br>&nbsp;&nbsp;&nbsp;&nbsp; //printf("i am
 failed");<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Just do demonstrate remote exceptions versus regular GError */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (error-&gt;domain == DBUS_GERROR &amp;&amp; error-&gt;code == DBUS_GERROR_REMOTE_EXCEPTION)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_printerr ("Caught remote method exception %s: %s",<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbus_g_error_get_name (error),<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error-&gt;message);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_printerr ("Error: %s\n", error-&gt;message);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_error_free (error);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit (1);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp; g_object_unref (proxy);<br>&nbsp; return 0;<br>}<br><br>Steps I do,<br>I run first server program which according to me
 registers object to dbus (object which has method ManyArgs)<br>Then I run client which establish connection with dbus and gives call<br>to ManyArgs,<br><br>Output I am getting is error:<br>Error: org.freedesktop.DBus does not understand message ManyArgs<br><br>Can anybody tell me what is wrong.<br>Any Pointers on it will be helpful.<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><p>&#32;
        

        
                <hr size=1></hr> 
Here’s a new way to find what you're looking for - <a href="http://us.rd.yahoo.com/mail/in/yanswers/*http://in.answers.yahoo.com/">Yahoo! Answers</a>