EggDBusBusNameTracker

EggDBusBusNameTracker — Track bus names

Functions

Properties

EggDBusBus * bus Read / Write / Construct Only

Signals

void bus-name-gained-owner Run Last
void bus-name-has-info Run Last
void bus-name-lost-owner Run Last

Types and Values

Object Hierarchy

    GObject
    ╰── EggDBusBusNameTracker

Description

The EggDBusBusNameTracker class is used for tracking bus names on a message bus.

If you are writing a D-Bus client there's no need to use this class as it's used internally by EggDBusConnection to maintain the “name-owner” property on object proxies.

Functions

egg_dbus_bus_name_tracker_new ()

EggDBusBusNameTracker *
egg_dbus_bus_name_tracker_new (EggDBusBus *bus);

Creates a new bus name tracker for bus .

Parameters

bus

A EggDBusBus object that represents a message bus daemon.

 

egg_dbus_bus_name_tracker_watch_bus_name ()

void
egg_dbus_bus_name_tracker_watch_bus_name
                               (EggDBusBusNameTracker *bus_name_tracker,
                                const gchar *bus_name);

Starts watching bus_name .

This function can be called multiple times for the same name; bus_name_tracker internally maintains a count of watchers for each watched name.

TODO: it would be useful to pass callback functions as well.

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A unique or well-known name.

 

egg_dbus_bus_name_tracker_stop_watching_bus_name ()

void
egg_dbus_bus_name_tracker_stop_watching_bus_name
                               (EggDBusBusNameTracker *bus_name_tracker,
                                const gchar *bus_name);

Stops watching bus_name .

This function can be called multiple times for the same name; bus_name_tracker internally maintains a count of watchers for each watched name.

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A name being watched.

 

egg_dbus_bus_name_tracker_has_info_for_bus_name ()

gboolean
egg_dbus_bus_name_tracker_has_info_for_bus_name
                               (EggDBusBusNameTracker *bus_name_tracker,
                                const gchar *bus_name);

Checks if information has been retrieved for bus_name . If this function returns FALSE, you can connect to the “bus-name-has-info” signal and use egg_dbus_bus_name_tracker_get_owner_for_bus_name() to retrieve the owner when information is available.

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A name being watched.

 

Returns

TRUE if bus_name_tracker has information about bus_name .


egg_dbus_bus_name_tracker_get_owner_for_bus_name ()

gchar *
egg_dbus_bus_name_tracker_get_owner_for_bus_name
                               (EggDBusBusNameTracker *bus_name_tracker,
                                const gchar *bus_name);

Gets owner of bus_name .

If bus_name_tracker recently started watching bus_name , a call to egg_dbus_bus_get_name_owner() call may be still be pending. This function will block in a main loop until the owner is resolved.

If this synchronous behavior is not desired, use call egg_dbus_bus_name_tracker_has_info_for_bus_name() and connect to the “bus-name-has-info” signal to get informed when owner information is available.

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A name being watched.

 

Returns

The owner of bus_name or NULL if there is no owner. Free with g_free().


egg_dbus_bus_name_tracker_get_known_well_known_bus_names_for_unique_bus_name ()

gchar **
egg_dbus_bus_name_tracker_get_known_well_known_bus_names_for_unique_bus_name
                               (EggDBusBusNameTracker *bus_name_tracker,
                                const gchar *unique_bus_name);

Returns the known set (e.g. only the set of well-known bus names currently being watched) of well-known bus names that unique_bus_name owns.

This function is used to dispatch signals to proxies in EggDBusConnection; it is probably not of much general use.

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

unique_bus_name

A unique or well-known bus name earlier passed to egg_dbus_bus_name_tracker_watch_bus_name().

 

Returns

An NULL terminated array of well-known bus names or NULL if there are no known well-known bus names owned by unique_bus_name . Free with g_strfreev().

Types and Values

EggDBusBusNameTracker

typedef struct _EggDBusBusNameTracker EggDBusBusNameTracker;

Property Details

The “bus” property

  “bus”                      EggDBusBus *

The bus we're tracking names for.

Owner: EggDBusBusNameTracker

Flags: Read / Write / Construct Only

Signal Details

The “bus-name-gained-owner” signal

void
user_function (EggDBusBusNameTracker *bus_name_tracker,
               char                  *bus_name,
               char                  *new_owner,
               gpointer               user_data)

Emitted when new_owner gains ownership of bus_name .

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A bus name being watched.

 

new_owner

A unique bus name.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “bus-name-has-info” signal

void
user_function (EggDBusBusNameTracker *bus_name_tracker,
               char                  *bus_name,
               gpointer               user_data)

Emitted when bus_name_tracker has information about bus_name .

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A bus name being watched.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “bus-name-lost-owner” signal

void
user_function (EggDBusBusNameTracker *bus_name_tracker,
               char                  *bus_name,
               char                  *old_owner,
               gpointer               user_data)

Emitted when old_owner loses ownership of bus_name .

Parameters

bus_name_tracker

A EggDBusBusNameTracker.

 

bus_name

A bus name being watched.

 

old_owner

A unique bus name.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last