This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to branch experimental
in repository libnet-dbus-perl.

commit 969d6f7d8237a2dfb742e6bad9e1fd8ff8876c6d
Author: Daniel P. Berrange <d...@berrange.com>
Date:   Sat Oct 15 11:38:26 2005 +0000

    Added emit_signal_to method to enable unicast of signals to specific clients
---
 lib/Net/DBus/Object.pm | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/lib/Net/DBus/Object.pm b/lib/Net/DBus/Object.pm
index 4981e34..bed63f3 100644
--- a/lib/Net/DBus/Object.pm
+++ b/lib/Net/DBus/Object.pm
@@ -114,7 +114,17 @@ Retrieves the path under which this object is exported
 Emits a signal from the object, with a name of C<$name>. The
 signal and the data types of the arguments C<@args> must have 
 been registered with L<Net::DBus::Exporter> by calling the 
-C<dbus_signal> method.
+C<dbus_signal> method. The signal will be broadcast to all
+clients on the bus.
+
+=item $self->emit_signal_to($name, $client, @args);
+
+Emits a signal from the object, with a name of C<$name>. The
+signal and the data types of the arguments C<@args> must have 
+been registered with L<Net::DBus::Exporter> by calling the 
+C<dbus_signal> method. The signal will be sent only to the
+client named by the C<$client> parameter.
+
 
 =back
 
@@ -200,11 +210,15 @@ sub emit_signal_in {
     my $self = shift;
     my $name = shift;
     my $interface = shift;
+    my $destination = shift;
     my @args = @_;
 
     my $signal = Net::DBus::Binding::Message::Signal->new(object_path => 
$self->get_object_path,
                                                          interface => 
$interface, 
                                                          signal_name => $name);
+    if ($destination) {
+       $signal->set_destination($destination);
+    }
 
     my $ins = $self->_introspector;
     if ($ins) {
@@ -222,9 +236,10 @@ sub emit_signal_in {
     }
 }
 
-sub emit_signal {
+sub emit_signal_to {
     my $self = shift;
     my $name = shift;
+    my $destination = shift;
     my @args = @_;
 
     my $intro = $self->_introspector;
@@ -240,7 +255,15 @@ sub emit_signal {
        die "signal '$name' is exported in more than one interface of '" .
            $self->get_object_path . "', use the emit_signal_in method 
instead.";
     }
-    $self->emit_signal_in($name, $interfaces[0], @args);
+    $self->emit_signal_in($name, $interfaces[0], $destination, @args);
+}
+
+sub emit_signal {
+    my $self = shift;
+    my $name = shift;
+    my @args = @_;
+
+    $self->emit_signal_to($name, undef, @args);
 }   
 
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libnet-dbus-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to