Top |
GDBusConnection * | connection | Read / Write |
gchar * | object-path | Read / Write / Construct Only |
GDBusObjectManagerServer is used to export GDBusObject instances using the standardized org.freedesktop.DBus.ObjectManager interface. For example, remote D-Bus clients can get all objects and properties in a single call. Additionally, any change in the object hierarchy is broadcast using signals. This means that D-Bus clients can keep caches up to date by only listening to D-Bus signals.
The recommended path to export an object manager at is the path form of the
well-known name of a D-Bus service, or below. For example, if a D-Bus service
is available at the well-known name net.example.ExampleService1
, the object
manager should typically be exported at /net/example/ExampleService1
, or
below (to allow for multiple object managers in a service).
It is supported, but not recommended, to export an object manager at the root
path, /
.
See GDBusObjectManagerClient for the client-side code that is intended to be used with GDBusObjectManagerServer or any D-Bus object implementing the org.freedesktop.DBus.ObjectManager interface.
GDBusObjectManagerServer *
g_dbus_object_manager_server_new (const gchar *object_path
);
Creates a new GDBusObjectManagerServer object.
The returned server isn't yet exported on any connection. To do so,
use g_dbus_object_manager_server_set_connection()
. Normally you
want to export all of your objects before doing so to avoid
InterfacesAdded
signals being emitted.
Since: 2.30
GDBusConnection *
g_dbus_object_manager_server_get_connection
(GDBusObjectManagerServer *manager
);
Gets the GDBusConnection used by manager
.
A GDBusConnection object or NULL
if
manager
isn't exported on a connection. The returned object should
be freed with g_object_unref()
.
[transfer full]
Since: 2.30
void g_dbus_object_manager_server_set_connection (GDBusObjectManagerServer *manager
,GDBusConnection *connection
);
Exports all objects managed by manager
on connection
. If
connection
is NULL
, stops exporting objects.
void g_dbus_object_manager_server_export (GDBusObjectManagerServer *manager
,GDBusObjectSkeleton *object
);
Exports object
on manager
.
If there is already a GDBusObject exported at the object path, then the old object is removed.
The object path for object
must be in the hierarchy rooted by the
object path for manager
.
Note that manager
will take a reference on object
for as long as
it is exported.
Since: 2.30
void g_dbus_object_manager_server_export_uniquely (GDBusObjectManagerServer *manager
,GDBusObjectSkeleton *object
);
Like g_dbus_object_manager_server_export()
but appends a string of
the form _N (with N being a natural number) to object
's object path
if an object with the given path already exists. As such, the
“g-object-path” property of object
may be modified.
Since: 2.30
gboolean g_dbus_object_manager_server_is_exported (GDBusObjectManagerServer *manager
,GDBusObjectSkeleton *object
);
Returns whether object
is currently exported on manager
.
Since: 2.34
gboolean g_dbus_object_manager_server_unexport (GDBusObjectManagerServer *manager
,const gchar *object_path
);
If manager
has an object at path
, removes the object. Otherwise
does nothing.
Note that object_path
must be in the hierarchy rooted by the
object path for manager
.
Since: 2.30
typedef struct _GDBusObjectManagerServer GDBusObjectManagerServer;
The GDBusObjectManagerServer structure contains private data and should only be accessed using the provided API.
Since: 2.30
struct GDBusObjectManagerServerClass { GObjectClass parent_class; };
Class structure for GDBusObjectManagerServer.
Since: 2.30
“connection”
property“connection” GDBusConnection *
The GDBusConnection to export objects on.
Flags: Read / Write
Since: 2.30