[libnet-dbus-perl] 66/335: Added module for dumping info about DBus objects

Intrigeri intrigeri at moszumanska.debian.org
Sat Mar 21 01:07:25 UTC 2015


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 2b2e95b30b9e7dbc45cf48a0f160317da0ffd981
Author: Daniel P. Berrange <dan at berrange.com>
Date:   Sun Aug 14 18:06:56 2005 +0000

    Added module for dumping info about DBus objects
---
 lib/Net/DBus/Dumper.pm | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/lib/Net/DBus/Dumper.pm b/lib/Net/DBus/Dumper.pm
new file mode 100644
index 0000000..7d95e28
--- /dev/null
+++ b/lib/Net/DBus/Dumper.pm
@@ -0,0 +1,71 @@
+package Net::DBus::Dumper;
+
+use strict;
+use warnings;
+
+use Exporter;
+
+use vars qw(@EXPORT);
+
+ at EXPORT = qw(dbus_dump);
+
+sub dbus_dump {
+    my $object = shift;
+    
+    my $ref = ref($object);
+    die "object '$object' is not a reference" unless defined $ref;
+    
+    if ($object->isa("Net::DBus::Object") ||
+	$object->isa("Net::DBus::RemoteObject")) {
+	return &_dbus_dump_introspector($object->_introspector);
+    } elsif ($object->isa("Net::DBus::RemoteService")) {
+	return &_dbus_dump_remote_service($object);
+    } elsif ($object->isa("Net::DBus::Service")) {
+	return &_dbus_dump_service($object);
+    } elsif ($object->isa("Net::DBus")) {
+	return &_dbus_dump_bus($object);
+    }
+}
+
+
+sub _dbus_dump_introspector {
+    my $ins = shift;
+    
+    my @data;
+    push @data, "Object: ", $ins->get_object_path, "\n";
+    foreach my $interface ($ins->list_interfaces) {
+	push @data, "  Interface: ", $interface, "\n";
+	foreach my $method ($ins->list_methods($interface)) {
+	    push @data, "    Method: ", $method, "\n";
+	    foreach my $param ($ins->get_method_params($interface, $method)) {
+		push @data, &_dbus_dump_types("      > ", $param);
+	    }
+	    foreach my $param ($ins->get_method_returns($interface, $method)) {
+		push @data, &_dbus_dump_types("      < ", $param);
+	    }
+	}
+	foreach my $signal ($ins->list_signals($interface)) {
+	    push @data, "    Signal: ", $signal, "\n";
+	    foreach my $param ($ins->get_signal_params($interface, $signal)) {
+		push @data, &_dbus_dump_types("      > ", $param);
+	    }
+	}
+    }
+    return @data;
+}
+
+sub _dbus_dump_types {
+    my $indent = shift;
+    my $type = shift;
+    
+    my @data;
+    if (ref($type)) {
+	push @data, $indent, $type->[0], "\n";
+	for (my $i = 1 ; $i <= $#{$type} ; $i++) {
+	    push @data, &_dbus_dump_types($indent . "  ", $type->[$i]);
+	}
+    } else {
+	push @data, $indent, $type, "\n";
+    }
+    return @data;
+}

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



More information about the Pkg-perl-cvs-commits mailing list