# Gio::DBus Namespace Reference

## Typedefs

typedef sigc::slot< void, const Glib::RefPtr < Gio::DBusConnection > &, Glib::ustring > | SlotBusAcquired
| For example, void on_bus_acquired(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.
typedef sigc::slot< void, const Glib::RefPtr < Gio::DBusConnection > &, Glib::ustring > | SlotNameAcquired
| For example, void on_name_acquired(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.
typedef sigc::slot< void, const Glib::RefPtr < Gio::DBusConnection > &, Glib::ustring > | SlotNameLost
| For example, void on_name_lost(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.

## Enumerations

enum | BusNameOwnerFlags { BUS_NAME_OWNER_FLAGS_NONE = 0x0, BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT = (1<<0), BUS_NAME_OWNER_FLAGS_REPLACE = (1<<1) }

## Functions

BusNameOwnerFlags | operator| (BusNameOwnerFlags lhs, BusNameOwnerFlags rhs)
BusNameOwnerFlags | operator& (BusNameOwnerFlags lhs, BusNameOwnerFlags rhs)
BusNameOwnerFlags | operator^ (BusNameOwnerFlags lhs, BusNameOwnerFlags rhs)
BusNameOwnerFlags | operator~ (BusNameOwnerFlags flags)
BusNameOwnerFlags& | operator|= (BusNameOwnerFlags& lhs, BusNameOwnerFlags rhs)
BusNameOwnerFlags& | operator&= (BusNameOwnerFlags& lhs, BusNameOwnerFlags rhs)
BusNameOwnerFlags& | operator^= (BusNameOwnerFlags& lhs, BusNameOwnerFlags rhs)
guint | own_name (BusType bus_type, const Glib::ustring& name, BusNameOwnerFlags flags, const SlotBusAcquired& bus_acquired_slot, const SlotNameAcquired& name_acquired_slot, const SlotNameLost& name_lost_slot)
| Starts acquiring name on the bus specified by bus_type and calls name_acquired_slot and name_lost_slot when the name is acquired respectively lost.
void | unown_name (guint owner_id)
| Stops owning a name.

## Typedef Documentation

typedef sigc::slot<void, const Glib::RefPtr<Gio::DBusConnection>&, Glib::ustring> Gio::DBus::SlotBusAcquired

For example, void on_bus_acquired(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.

Since glibmm 2.26:

typedef sigc::slot<void, const Glib::RefPtr<Gio::DBusConnection>&, Glib::ustring> Gio::DBus::SlotNameAcquired

For example, void on_name_acquired(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.

typedef sigc::slot<void, const Glib::RefPtr<Gio::DBusConnection>&, Glib::ustring> Gio::DBus::SlotNameLost

For example, void on_name_lost(const Glib::RefPtr<Gio::DBusConnection>& connection, const Glib::ustring& name);.

## Function Documentation

guint Gio::DBus::own_name | ( | BusType | bus_type,
|  | const Glib::ustring& | name,
|  | BusNameOwnerFlags | flags,
|  | const SlotBusAcquired & | bus_acquired_slot,
|  | const SlotNameAcquired & | name_acquired_slot,
|  | const SlotNameLost & | name_lost_slot |
| ) |  |  |

Starts acquiring name on the bus specified by bus_type and calls name_acquired_slot and name_lost_slot when the name is acquired respectively lost.

Slots will be invoked in the thread-default main loop of the thread you are calling this function from.

You are guaranteed that one of the name_acquired_slot and name_lost_slot slots will be invoked after calling this function - there are three possible cases:

- name_lost_slot with a NULL connection (if a connection to the bus can't be made).
- bus_acquired_slot then name_lost_slot (if the name can't be obtained)
- bus_acquired_slot then name_acquired_slot (if the name was obtained).

When you are done owning the name, just call unown_name() with the owner id this function returns.

If the name is acquired or lost (for example another application could acquire the name if you allow replacement or the application currently owning the name exits), the slots are also invoked. If the DBusConnection that is used for attempting to own the name closes, then name_lost_slot is invoked since it is no longer possible for other processes to access the process.

You cannot use own_name() several times for the same name (unless interleaved with calls to unown_name()) - only the first call will work.

Another guarantee is that invocations of name_acquired_slot and name_lost_slot are guaranteed to alternate; that is, if name_acquired_slot is invoked then you are guaranteed that the next time one of the slots is invoked, it will be name_lost_slot. The reverse is also true.

If you plan on exporting objects (using e.g. Gio::DbusConnection::register_object()), note that it is generally too late to export the objects in name_acquired_slot. Instead, you can do this in bus_acquired_slot since you are guaranteed that this will run before name is requested from the bus.

This behavior makes it very simple to write applications that wants to own names and export objects.

Parameters:

  | bus_type | The type of bus to own a name on.
  | name | The well-known name to own.
  | flags | A set of flags from the BusNameOwnerFlags enumeration.
  | bus_acquired_slot | Slot to invoke when connected to the bus of type bus_type.
  | name_acquired_slot | Slot to invoke when name is acquired.
  | name_lost_slot | Slot to invoke when name is lost.

Returns:
  An identifier (never 0) that an be used with unown_name() to stop owning the name.

Since glibmm 2.26:

void Gio::DBus::unown_name | ( | guint | owner_id | ) |

Stops owning a name.

Parameters:

  | owner_id | An identifier obtained from own_name().