NAME
Net::DBus::Binding::Introspector - Handler for object introspection data
SYNOPSIS
# Create an object populating with info from an
# XML doc containing introspection data.
my $ins = Net::DBus::Binding::Introspector->new(xml => $data);
# Create an object, defining introspection data
# programmatically
my $ins = Net::DBus::Binding::Introspector->new(object_path => $object->get_object_path);
$ins->add_method("DoSomething", ["string"], [], "org.example.MyObject");
$ins->add_method("TestSomething", ["int32"], [], "org.example.MyObject");
DESCRIPTION
This class is responsible for managing introspection data, and answering questions about it. This is not intended for use by application developers, whom should instead consult the higher level API in Net::DBus::Exporter.
METHODS
- my $ins = Net::DBus::Binding::Introspector->new(object_path => $object_path, xml => $xml);
-
Creates a new introspection data manager for the object registered at the path specified for the
object_pathparameter. The optionalxmlparameter can be used to pre-load the manager with introspection metadata from an XML document. - $ins->add_interface($name)
-
Register the object as providing an interface with the name
$name - my $bool = $ins->has_interface($name)
-
Return a true value if the object is registered as providing an interface with the name
$name; returns false otherwise. - my @interfaces = $ins->has_method($name)
-
Return a list of all interfaces provided by the object, which contain a method called
$name. This may be an empty list. - my @interfaces = $ins->has_signal($name)
-
Return a list of all interfaces provided by the object, which contain a signal called
$name. This may be an empty list. - my @interfaces = $ins->has_property($name)
-
Return a list of all interfaces provided by the object, which contain a property called
$name. This may be an empty list. - $ins->add_method($name, $params, $returns, $interface, $attributes);
-
Register the object as providing a method called
$nameaccepting parameters whose types are declared by$paramsand returning values whose type are declared by$returns. The method will be scoped to the inteface named by$interface. The$attributesparameter is a hash reference for annotating the method. - $ins->add_signal($name, $params, $interface, $attributes);
-
Register the object as providing a signal called
$namewith parameters whose types are declared by$params. The signal will be scoped to the inteface named by$interface. The$attributesparameter is a hash reference for annotating the signal. - $ins->add_property($name, $type, $access, $interface, $attributes);
-
Register the object as providing a property called
$namewith a type of$type. The$accessparameter can be one ofread,write, orreadwrite. The property will be scoped to the inteface named by$interface. The$attributesparameter is a hash reference for annotating the signal. - my $boolean = $ins->is_method_deprecated($name, $interface)
-
Returns a true value if the method called
$namein the interface$interfaceis marked as deprecated - my $boolean = $ins->is_signal_deprecated($name, $interface)
-
Returns a true value if the signal called
$namein the interface$interfaceis marked as deprecated - my $boolean = $ins->is_property_deprecated($name, $interface)
-
Returns a true value if the property called
$namein the interface$interfaceis marked as deprecated - my $boolean = $ins->does_method_reply($name, $interface)
-
Returns a true value if the method called
$namein the interface$interfacewill generate a reply. Returns a false value otherwise. - my @names = $ins->list_interfaces
-
Returns a list of all interfaces registered as being provided by the object.
- my @names = $ins->list_methods($interface)
-
Returns a list of all methods registered as being provided by the object, within the interface
$interface. - my @names = $ins->list_signals($interface)
-
Returns a list of all signals registered as being provided by the object, within the interface
$interface. - my @names = $ins->list_properties($interface)
-
Returns a list of all properties registered as being provided by the object, within the interface
$interface. - my @paths = $self->list_children;
-
Returns a list of object paths representing all the children of this node.
- my $path = $ins->get_object_path
-
Returns the path of the object associated with this introspection data
- my @types = $ins->get_method_params($interface, $name)
-
Returns a list of declared data types for parameters of the method called
$namewithin the interface$interface. - my @types = $ins->get_method_returns($interface, $name)
-
Returns a list of declared data types for return values of the method called
$namewithin the interface$interface. - my @types = $ins->get_signal_params($interface, $name)
-
Returns a list of declared data types for values associated with the signal called
$namewithin the interface$interface. - my $type = $ins->get_property_type($interface, $name)
-
Returns the declared data type for property called
$namewithin the interface$interface. - my $bool = $ins->is_property_readable($interface, $name);
-
Returns a true value if the property called
$namewithin the interface$interfacecan have its value read. - my $bool = $ins->is_property_writable($interface, $name);
-
Returns a true value if the property called
$namewithin the interface$interfacecan have its value written to. - my $xml = $ins->format
-
Return a string containing an XML document representing the state of the introspection data.
- my $xml_fragment = $ins->to_xml
-
Returns a string containing an XML fragment representing the state of the introspection data. This is basically the same as the
formatmethod, but without the leading doctype declaration. - $type = $ins->to_xml_type($type)
-
Takes a text-based representation of a data type and returns the compact representation used in XML introspection data.
- $ins->encode($message, $type, $name, $direction, @args)
-
Append a set of values <@args> to a message object
$message. The$typeparameter is eithersignalormethodand$directionis eitherparamsorreturns. The introspection data will be queried to obtain the declared data types & the argument marshalling accordingly. - my @args = $ins->decode($message, $type, $name, $direction)
-
Unmarshalls the contents of a message object
$message. The$typeparameter is eithersignalormethodand$directionis eitherparamsorreturns. The introspection data will be queried to obtain the declared data types & the arguments unmarshalled accordingly.
SEE ALSO
Net::DBus::Exporter, Net::DBus::Binding::Message
AUTHOR
Daniel Berrange <dan@berrange.com>
COPYRIGHT
Copyright 2004 by Daniel Berrange