From: David K. <zu...@li...> - 2009-06-10 23:52:40
|
Hello Jay, you might have a look in the archives for: Date: Tue, 31 Mar 2009 18:10:14 -0400 From: Schmottlach, Glenn Subject: [dbus-cplusplus-devel] FYI: Asynchronous support for client / servers Best regards, David On Tue, 9 Jun 2009, Freyensee, James P wrote: > Date: Tue, 9 Jun 2009 16:11:54 -0700 > From: "Freyensee, James P" <jam...@in...> > To: "dbu...@li..." > <dbu...@li...> > Cc: "Ahmed, Suhail" <suh...@in...>, > "Benis, Robertino" <rob...@in...> > Subject: [dbus-cplusplus-devel] Setting the callback function and data in > dbus-c++ for async calls > > Hello: > > I am struggling to understand how I could do an asynchronous call using dbus-c++ and was wondering if anyone has any currently working example code, explanation, or a tutorial to help me out. > > This is what I know (I believe at least). > > For asynchronous calls I need to call the dbus function > > dbus_bool_t dbus_pending_call_set_notify ( DBusPendingCall * pending, DBusPendingCallNotifyFunction function, void * user_data, DBusFreeFunction free_user_data ) > > This happens when the constructor > > PendingCall::PendingCall(PendingCall::Private *p) : _pvt(p) {} > > is called. > > I believe this PendingCall::PendingCall() constructor called when the function in Connection.cpp: > > PendingCall Connection::send_async(Message &msg, int timeout) > > is called. > > Now I was thinking that a new, unwritten function in object.cpp needs be written as follows that would call send_async(): > > PendingCall ObjectProxy::_invoke_method_async(CallMessage &call) > { > if (call.path() == NULL) > call.path(path().c_str()); > > if (call.destination() == NULL) > call.destination(service().c_str()); > > return conn().send_async(call); > } > > This is actually pretty similar to > > Message ObjectProxy::_invoke_method(CallMessage &call) {} > > in Object.cpp. > > The big question is how do I use this dbus-c++ framework to set the (DBusPendingCallNotifyFunction function, void * user_data) parameters of the dbus_pending_call_set_notify() function? I figure I need to set some parameters in the CallMessage object in ObjectProxy::_invoke_method_async() and/or the Message object in the Connection::send_async(). However, I don't know what to do and how to do it. > > Second question- is there anything else I am missing that I would need to do to make the callback operation work right in this dbus-c++ framework? > > Thank you for the help! > > Regards, > Jay Freyensee > > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > dbus-cplusplus-devel mailing list > dbu...@li... > https://lists.sourceforge.net/lists/listinfo/dbus-cplusplus-devel > |