## D-Bus

D-Bus — The D-Bus Services

## Synopsis

    #include <nautilus-actions/na-dbus.h>

    #define             NAUTILUS_ACTIONS_DBUS_SERVICE
    #define             NAUTILUS_ACTIONS_DBUS_TRACKER_PATH
    #define             NAUTILUS_ACTIONS_DBUS_TRACKER_IFACE

## Description

Nautilus-Actions™, through its tracker plugin, exposes several D-Bus interfaces. These interfaces may be queried in order to get informations about current selection, Nautilus-Actions™ status, and so on.

### Note

To be really clear, Nautilus-Actions™ relies on Nautilus™ in order to be able to register its own D-Bus services via the tracker plugin.

If Nautilus™ does not run, or the tracker plugin is not loaded at Nautilus™ startup, then these D-Bus services will not be available.

## Details

### NAUTILUS_ACTIONS_DBUS_SERVICE

    #define NAUTILUS_ACTIONS_DBUS_SERVICE            "org.nautilus-actions.DBus"

This is the « well-known » name that Nautilus-Actions™ reserves on D-Bus session bus.

### NAUTILUS_ACTIONS_DBUS_TRACKER_PATH

    #define NAUTILUS_ACTIONS_DBUS_TRACKER_PATH       "/org/nautilus_actions/DBus/Tracker"

The D-Bus path of the tracker object.

When requested through the `Introspect` of the `Introspectable` D-Bus interface, the tracker object returns following informations:

        dbus-send \
          --session \
          --type=method_call \
          --print-reply \
          --dest=org.nautilus-actions.DBus \
            /org/nautilus_actions/DBus/Tracker \
              org.freedesktop.DBus.Introspectable.Introspect

        method return sender=:1.29 -> dest=:1.145 reply_serial=2
          string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
        "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
        <node>
          <interface name="org.freedesktop.DBus.Introspectable">
            <method name="Introspect">
              <arg name="data" direction="out" type="s"/>
            </method>
          </interface>
          <interface name="org.freedesktop.DBus.Properties">
            <method name="Get">
              <arg name="interface" direction="in" type="s"/>
              <arg name="propname" direction="in" type="s"/>
              <arg name="value" direction="out" type="v"/>
            </method>
            <method name="Set">
              <arg name="interface" direction="in" type="s"/>
              <arg name="propname" direction="in" type="s"/>
              <arg name="value" direction="in" type="v"/>
            </method>
            <method name="GetAll">
              <arg name="interface" direction="in" type="s"/>
              <arg name="props" direction="out" type="a{sv}"/>
            </method>
          </interface>
          <interface name="org.nautilus_actions.DBus.Tracker.Status">
            <method name="GetSelectedPaths">
              <arg name="paths" type="as" direction="out"/>
            </method>
          </interface>
        </node>

### NAUTILUS_ACTIONS_DBUS_TRACKER_IFACE

    #define NAUTILUS_ACTIONS_DBUS_TRACKER_IFACE  	"org.nautilus_actions.DBus.Tracker.Properties1"

An interface defined on the tracker object, identified by its `NAUTILUS_ACTIONS_DBUS_TRACKER_PATH` D-Bus path.