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 888ead317f8698668b383a46883cd9e70c0a0612
Author: Daniel P. Berrange <d...@berrange.com>
Date:   Sun Aug 14 18:01:55 2005 +0000

    No longer require interface to be passed into emit_signal, figure it out 
from introspection data instead. Reverse order of server & path params in 
constructor
---
 lib/Net/DBus/Object.pm | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/lib/Net/DBus/Object.pm b/lib/Net/DBus/Object.pm
index 07477ec..2e858e1 100644
--- a/lib/Net/DBus/Object.pm
+++ b/lib/Net/DBus/Object.pm
@@ -146,8 +146,8 @@ sub new {
     my $class = shift;
     my $self = {};
     
-    $self->{object_path} = shift;
     $self->{service} = shift;
+    $self->{object_path} = shift;
 
     bless $self, $class;
 
@@ -172,19 +172,35 @@ sub get_object_path {
 }
 
 
-sub emit_signal {
+sub emit_signal_in {
     my $self = shift;
+    my $name = shift;
     my $interface = shift;
-    my $signal_name = shift;
     my @args = @_;
-    my $signal = Net::DBus::Binding::Message::Signal->new(object_path => 
$self->{object_path},
+
+    my $signal = Net::DBus::Binding::Message::Signal->new(object_path => 
$self->get_object_path,
                                                          interface => 
$interface, 
-                                                         signal_name => 
$signal_name);
+                                                         signal_name => $name);
 
-    $self->_introspector->encode($signal, "signals", $signal_name, "params", 
@args);
+    $self->_introspector->encode($signal, "signals", $name, "params", @args);
     $self->get_service->get_bus->get_connection->send($signal);
+}
+
+sub emit_signal {
+    my $self = shift;
+    my $name = shift;
     
-    return ();
+    my $intro = $self->_introspector;
+    my @interfaces = $intro->has_signal($name);
+    if ($#interfaces == -1) {
+       die "no signal with name '$name' is exported in object '" .
+           $self->get_object_path . "'\n";
+    } elsif ($#interfaces > 0) {
+       die "signal '$name' is exported in more than one interface of '" .
+           $self->get_object_path . "'." . 
+           "use the 'emit_signal_in' method to specify the interface\n";
+    }
+    $self->emit_signal_in($name, $interfaces[0], @_);
 }   
 
 sub _dispatch {

-- 
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