Targetted signals

Ross Burton ross at burtonini.com
Tue Jun 13 08:20:48 PDT 2006


On Tue, 2006-06-13 at 16:08 +0100, Ross Burton wrote:
> I'd really like it if signals could be send to specific addresses.  My
> use-case is the DBus port of evolution-data-server.  When a live book
> view is updated a signal needs to be sent to interested parties, but as
> there can be multiple book views with different queries and the message
> arguments can be large (up to 40 vcards), restricting the sending of the
> signals to only the relevant clients would be a good idea.  At the
> moment the server calls methods on the server, but this causes a method
> return to be sent, which is not required.
> 
> The alternative would be for each signal to have an ID argument and
> clients filter on arg1=cookie, but argument matching is currently string
> only.  If this were extended to ints then that might be a usable design.

Another alternative means I can't use the GLib bindings in the client to
receive the signals, but this works:

asprintf (&match,
            "type='signal', interface='com.burtonini', member='SignalTest', destination='%s'", 
            dbus_bus_get_unique_name (connection));
dbus_bus_add_match (connection, match, NULL);

I'm still torn over if this is really sick, or a cunning solution.

Ross
-- 
Ross Burton                                 mail: ross at burtonini.com
                                          jabber: ross at burtonini.com
                                     www: http://www.burtonini.com./
 PGP Fingerprint: 1A21 F5B0 D8D0 CFE3 81D4 E25A 2D09 E447 D0B4 33DF





More information about the dbus mailing list