<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://alteeve.com/w/index.php?action=history&amp;feed=atom&amp;title=Net%3A%3ADBus_Methods</id>
	<title>Net::DBus Methods - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://alteeve.com/w/index.php?action=history&amp;feed=atom&amp;title=Net%3A%3ADBus_Methods"/>
	<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Net::DBus_Methods&amp;action=history"/>
	<updated>2026-06-11T09:23:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Net::DBus_Methods&amp;diff=432&amp;oldid=prev</id>
		<title>Digimer: Created page with &#039;{{dbtut_header}}  = find =  Usage: &lt;source lang=&quot;perl&quot;&gt;my $bus=Net::DBus-&gt;find(%params);&lt;/source&gt;  Where &#039;&lt;span class=&quot;code&quot;&gt;$bus&lt;/span&gt;&#039; is a handle to either the &#039;&lt;span class=&quot;…&#039;</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Net::DBus_Methods&amp;diff=432&amp;oldid=prev"/>
		<updated>2009-10-12T01:43:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{dbtut_header}}  = find =  Usage: &amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;find(%params);&amp;lt;/source&amp;gt;  Where &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$bus&amp;lt;/span&amp;gt;&amp;#039; is a handle to either the &amp;#039;&amp;lt;span class=&amp;quot;…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Páàjì titun&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{dbtut_header}}&lt;br /&gt;
&lt;br /&gt;
= find =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;find(%params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$bus&amp;lt;/span&amp;gt;&amp;#039; is a handle to either the &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;system&amp;lt;/span&amp;gt;&amp;#039; or &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;session&amp;lt;/span&amp;gt;&amp;#039; bus, as chosen by &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;find&amp;lt;/span&amp;gt;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This attempts to determine which bus, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;system&amp;lt;/span&amp;gt;&amp;#039; or &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;session&amp;lt;/span&amp;gt;&amp;#039;, is best to connect to. It does this by examining a few system variables. They are, in order that they are searched:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DBUS_STARTER_BUS_TYPE&amp;lt;/span&amp;gt;&amp;#039;; If defined and equals &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;session&amp;lt;/span&amp;gt;&amp;#039;, it returns a connection to the session bus.&lt;br /&gt;
* &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DBUS_STARTER_BUS_TYPE&amp;lt;/span&amp;gt;&amp;#039;; If defined and equals &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;system&amp;lt;/span&amp;gt;&amp;#039;, it returns a connection to the system bus.&lt;br /&gt;
* &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;DBUS_SESSION_BUS_ADDRESS&amp;lt;/span&amp;gt;&amp;#039;; If exists, returns a connection to the session bus.&lt;br /&gt;
* Failing the above, it returns a connection to the system bus.&lt;br /&gt;
&lt;br /&gt;
= system =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;system(%params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simply returns a connection to the (default/Freedesktop.org?) DBus &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;system&amp;lt;/span&amp;gt;&amp;#039; bus. Given that the system bus is available to all programs and users on the system, certain restrictions are in effect.&lt;br /&gt;
&lt;br /&gt;
= session =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;session(%params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simply returns a connection to the (default/Freedesktop.org?) DBus &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;session&amp;lt;/span&amp;gt;&amp;#039; bus. This bus is only accessible by the user invoking the connection.&lt;br /&gt;
&lt;br /&gt;
= new =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;new($address, %params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This returns a connection to a specified, user-defined bus. It is used when you want to connect to a bus other than the default &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;system&amp;lt;/span&amp;gt;&amp;#039; or &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;session&amp;lt;/span&amp;gt;&amp;#039; bus.&lt;br /&gt;
&lt;br /&gt;
Where;&lt;br /&gt;
&amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$address&amp;lt;/span&amp;gt;&amp;#039; is the address of a bus to connect to. This value may look like;&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;my $address=&amp;quot;unix:abstract=/tmp/dbus-PBFyyuUiVb,guid=191e0a43c3efc222e0818be556d67500&amp;quot;;&amp;lt;/span&amp;gt; (connect to a &amp;#039;session&amp;#039; bus.)&lt;br /&gt;
* &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;my $address=&amp;quot;unix:/var/run/dbus/system_bus_socket&amp;quot;;&amp;lt;/span&amp;gt; (connect to a &amp;#039;system&amp;#039; bus.)&lt;br /&gt;
&lt;br /&gt;
= get_service =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $service=$bus-&amp;gt;get_service($name);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This returns a handle to the remote service specified in the &amp;#039;$name&amp;#039; variable. &lt;br /&gt;
&lt;br /&gt;
When the name is not &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;org.freedesktop.DBus&amp;lt;/span&amp;gt;&amp;quot;, this method checks to see if the name *doesn&amp;#039;t* start with a colon (:). If it doesn&amp;#039;t, it tries to see if the owner of the service can be determined using the &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;get_service_owner&amp;lt;/span&amp;gt;&amp;#039; method. Should that fail, it will try to start the remote service using the &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;get_bus_object-&amp;gt;StartServiceByName&amp;lt;/span&amp;gt;&amp;#039; method and then tries to determine the owner again. Finally, the local list of services are checked for a matching name and, if found, it is returned. If a local service of the given name is not found, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Net::DBus::RemoteService-&amp;gt;new&amp;lt;/span&amp;gt;&amp;#039; is called and the returned handle is fed into a local service of the same name and that is returned.&lt;br /&gt;
&lt;br /&gt;
Where;&lt;br /&gt;
&amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$name&amp;lt;/span&amp;gt;&amp;#039; can be;&lt;br /&gt;
* &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;org.freedesktop.DBus&amp;lt;/span&amp;gt;&amp;quot; which simply returns a connection to the default bus service. (accurate?)&lt;br /&gt;
* A value that does not begin with &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;:&amp;lt;/span&amp;gt;&amp;#039;.&lt;br /&gt;
* (others valid? If so, what restrictions?)&lt;br /&gt;
&lt;br /&gt;
= export_service =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $service=$bus-&amp;gt;export_service($name);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This takes a name and registers a service by that name on the bus. A handle to the new service is returned.&lt;br /&gt;
&lt;br /&gt;
= get_bus_object =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $object=$bus-&amp;gt;get_bus_object;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a handle to the bus object &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;/org/freedesktop/DBus&amp;lt;/span&amp;gt;&amp;quot; provided by the service &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;org.freedesktop.DBus&amp;lt;/span&amp;gt;&amp;#039;.&lt;br /&gt;
* When would this be used? What about when using a custom bus?&lt;br /&gt;
&lt;br /&gt;
= get_unique_name =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $name=$bus-&amp;gt;get_unique_name;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This returns the unique name of the active client&amp;#039;s connection to the bus.&lt;br /&gt;
&lt;br /&gt;
= get_service_owner =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $name = $bus-&amp;gt;get_service_owner($service);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This takes the name of a service and returns the unique name of the client on the bus that owns that service. The method &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$bus-&amp;gt;GetNameOwner($service);&amp;lt;/span&amp;gt;&amp;#039; is called in an &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eval&amp;lt;/span&amp;gt;&amp;#039;. If a value is retrieved, it is returned. If an error is raised and the error is &amp;quot;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;org.freedesktop.DBus.Error.NameHasNoOwner&amp;lt;/span&amp;gt;&amp;quot;, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;undef&amp;lt;/span&amp;gt;&amp;#039; is returned. Otherwise an exception is thrown and the error set by the &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eval&amp;lt;/span&amp;gt;&amp;#039; is displayed.&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;Typing&amp;#039; Methods =&lt;br /&gt;
&lt;br /&gt;
Normally, introspection data is provided by a service so a client will not need to specifically define the type of data being used. If the introspection data is not complete though, you may need to explicitely specify the data typing.&lt;br /&gt;
&lt;br /&gt;
Before you can use any of the following typing methods, you will need to change how you call &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Net::DBus&amp;lt;/span&amp;gt;&amp;#039; to explicitly export the typing methods by using &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;use Net::DBus (:typing);&amp;lt;/span&amp;gt;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Please review the [[List of DBus data types]] to get a better feel for the various data types and signatures below.&lt;br /&gt;
&lt;br /&gt;
== dbus_int16 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_int16($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a signed 16-bit integer. Valid values are (+/-) 0 to 65,535.&lt;br /&gt;
&lt;br /&gt;
== dbus_uint16 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_uint16($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being an unsigned 16-bit integer. Valid values are 0 to 65,535.&lt;br /&gt;
&lt;br /&gt;
== dbus_int32 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_int32($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a signed 32-bit integer. Valid values are (+/-) 0 to 4,294,967,295.&lt;br /&gt;
&lt;br /&gt;
== dbus_uint32 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_int32($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being an unsigned 32-bit integer. Valid values are 0 to 4,294,967,295.&lt;br /&gt;
&lt;br /&gt;
== dbus_int64 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_int64($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a signed 64-bit integer. Valid values are (+/-) 0 to 18,446,744,073,709,551,616.&lt;br /&gt;
&lt;br /&gt;
== dbus_uint64 ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_int64($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being an unsigned 64-bit integer. Valid values are 0 to 18,446,744,073,709,551,616.&lt;br /&gt;
&lt;br /&gt;
== dbus_double ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_double($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a double-precision [[IEEE 754]] floating point value.&lt;br /&gt;
&lt;br /&gt;
== dbus_byte ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_byte($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a [[byte]].&lt;br /&gt;
&lt;br /&gt;
== dbus_string ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_string($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a UTF-8 encoded string. This is generally not needed as Perl&amp;#039;s default scalar value is &amp;#039;string&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== dbus_signature ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_signature($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a UTF-8 string whose value is a valid [[List_of_DBus_data_types|DBus type signature]].&lt;br /&gt;
&lt;br /&gt;
== dbus_object_path ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_object_path($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a UTF-8 string whose value is a valid DBus object path.&lt;br /&gt;
&lt;br /&gt;
== dbus_boolean ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_boolean($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a [[boolean]] value.&lt;br /&gt;
&lt;br /&gt;
== dbus_array ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_array($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a DBus array.&lt;br /&gt;
&lt;br /&gt;
== dbus_struct ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value=dbus_struct($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a DBus structure.&lt;br /&gt;
&lt;br /&gt;
== dbus_dict ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value = dbus_dict($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a DBus dictionary.&lt;br /&gt;
&lt;br /&gt;
== dbus_variant ==&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $typed_value = dbus_variant($value);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mark a value as being a DBus variant.&lt;br /&gt;
&lt;br /&gt;
= get_connection =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $connection=$bus-&amp;gt;get_connection;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This returns a handle to the underlying connection object of the &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$bus&amp;lt;/span&amp;gt;&amp;#039;. Generally speaking, programmers won&amp;#039;t need to use this. As such, you should avoid using this call unless you have a good reason to be doing so.&lt;br /&gt;
- That said, an example of when you might want to this is ... (I think this should be defined, if only &amp;quot;for the record&amp;quot;).&lt;br /&gt;
* Calling &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;my $name=$bus-&amp;gt;get_unique_name;&amp;lt;/span&amp;gt;&amp;#039; simply calls &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;$bus-&amp;gt;get_connection-&amp;gt;get_unique_name;&amp;lt;/span&amp;gt;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= test =&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;my $bus=Net::DBus-&amp;gt;test(%params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is used for unit testing. It connects to an in-memory bus used for testing purposes.&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Digimer</name></author>
	</entry>
</feed>