[libnet-dbus-perl] 103/335: Added POD documentation. Fix caching of objects so that primary object is cached, not the one cast to an interface
Intrigeri
intrigeri at moszumanska.debian.org
Sat Mar 21 01:07:33 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 5a7e8cff2d7446f35350dc24e66e7cfa66591dd3
Author: Daniel P. Berrange <dan at berrange.com>
Date: Mon Sep 12 22:17:53 2005 +0000
Added POD documentation. Fix caching of objects so that primary object is cached, not the one cast to an interface
---
lib/Net/DBus/RemoteService.pm | 134 ++++++++++++++++++++++++++++++++++++++----
1 file changed, 122 insertions(+), 12 deletions(-)
diff --git a/lib/Net/DBus/RemoteService.pm b/lib/Net/DBus/RemoteService.pm
index 657bb5d..6f942b8 100644
--- a/lib/Net/DBus/RemoteService.pm
+++ b/lib/Net/DBus/RemoteService.pm
@@ -1,3 +1,35 @@
+=pod
+
+=head1 NAME
+
+Net::DBus::RemoteService - access services on the bus
+
+=head1 SYNOPSIS
+
+ my $bus = Net::DBus->find;
+ my $service = $bus->get_service("org.freedesktop.DBus");
+
+ if ($service->is_online) {
+ my $object = $service->get_object("/org/freedesktop/DBus");
+ foreach (@{$object->ListNames}) {
+ print "$_\n";
+ }
+ }
+
+=head1 DESCRIPTION
+
+This object provides a handle to a remote service on the
+bus. From this handle it is possible to access objects
+associated with the service. If a service is not running,
+an attempt will be made to activate it the first time a
+method is called against one of its objects.
+
+=head1 METHODS
+
+=over 4
+
+=cut
+
package Net::DBus::RemoteService;
use 5.006;
@@ -5,10 +37,22 @@ use strict;
use warnings;
use Carp;
-our $VERSION = '0.0.1';
-
use Net::DBus::RemoteObject;
+=pod
+
+=item my $service = Net::DBus::RemoteService->new($bus, $service_name);
+
+Creates a new handle for a remote service. The C<$bus> parameter is an
+instance of L<Net::DBus>, while C<$service_name> is the name of the
+service on the bus. Service names consist of two or more tokens, separated
+by periods, while the tokens comprise the letters a-z, A-Z, 0-9 and _,
+for example C<org.freedesktop.DBus>. There is generally no need to call
+this constructor, instead the C<get_service> method on L<Net::DBus> should
+be used. This caches handles to remote services, eliminating repeated
+retrieval of introspection data.
+
+=cut
sub new {
my $class = shift;
@@ -23,6 +67,33 @@ sub new {
return $self;
}
+
+=pod
+
+=item my $boolean = $service->is_online
+
+Returns a true value if the service is currently attached to the
+the bus. If a false value is returned, then no client on the bus
+is currently provide this service, and the first method call
+made on a remote object will trigger the startup of the service.
+
+=cut
+
+sub is_online {
+ my $self = shift;
+
+ return $self->get_bus->has_service($self->get_service_name);
+}
+
+=pod
+
+=item my $bus = $service->get_bus;
+
+Retrieves a handle for the bus to which this service is attached.
+The returned object will be an instance of L<Net::DBus>.
+
+=cut
+
sub get_bus {
my $self = shift;
@@ -30,28 +101,67 @@ sub get_bus {
}
+=pod
+
+=item my $service_name = $service->get_service_name
+
+Retrieves the name of the remote service as known to the bus.
+
+=cut
+
sub get_service_name {
my $self = shift;
return $self->{service_name};
}
+=pod
+
+=item my $object = $service->get_object($object_path[, $interface]);
+
+Retrieves a handle to the remote object provided by the service with
+the name of C<$object_path>. If the optional C<$interface> parameter is
+provided, the object will immediately be cast to the designated
+interface. NB, it is only neccessary to cast an object to a specific
+interface if there are multiple interfaces on the object providing
+methods with the same name, or the remote object does support
+introspection. The returned object will be an instance of L<Net::DBus::RemoteObject>.
+
+=cut
+
sub get_object {
my $self = shift;
my $object_path = shift;
unless (defined $self->{objects}->{$object_path}) {
- if (@_) {
- my $interface = shift;
- $self->{objects}->{$object_path} = Net::DBus::RemoteObject->new($self,
- $object_path,
- $interface);
- } else {
- $self->{objects}->{$object_path} = Net::DBus::RemoteObject->new($self,
- $object_path);
- }
+ $self->{objects}->{$object_path} = Net::DBus::RemoteObject->new($self,
+ $object_path);
+ }
+
+ if (@_) {
+ my $interface = shift;
+ return $self->{objects}->{$object_path}->as_interface($interface);
+ } else {
+ return $self->{objects}->{$object_path};
}
- return $self->{objects}->{$object_path};
}
1;
+
+=pod
+
+=back
+
+=head1 AUTHOR
+
+Daniel Berrange <dan at berrange.com>
+
+=head1 COPYRIGHT
+
+Copright (C) 2004-2005, Daniel Berrange.
+
+=head1 SEE ALSO
+
+L<Net::DBus::RemoteObject>, L<Net::DBus::Service>, L<Net::DBus>
+
+=cut
--
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