D-Bus

## D-Bus D-Bus — The D-Bus Services |

## Synopsis

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

    #define             CAJA_ACTIONS_DBUS_SERVICE
    #define             CAJA_ACTIONS_DBUS_TRACKER_PATH
    #define             CAJA_ACTIONS_DBUS_TRACKER_IFACE

## Description

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

### Note

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

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

## Details

### CAJA_ACTIONS_DBUS_SERVICE

    #define CAJA_ACTIONS_DBUS_SERVICE            "org.caja-actions.DBus"

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

### CAJA_ACTIONS_DBUS_TRACKER_PATH

    #define CAJA_ACTIONS_DBUS_TRACKER_PATH       "/org/caja_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.caja-actions.DBus \
            /org/caja_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.caja_actions.DBus.Tracker.Status">
            <method name="GetSelectedPaths">
              <arg name="paths" type="as" direction="out"/>
            </method>
          </interface>
        </node>

### CAJA_ACTIONS_DBUS_TRACKER_IFACE

    #define CAJA_ACTIONS_DBUS_TRACKER_IFACE  	"org.caja_actions.DBus.Tracker.Properties1"

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