class Gio::DBusObjectManagerServer
- Gio::DBusObjectManagerServer
- GObject::Object
- Reference
- Object
Overview
#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.
Included Modules
Defined in:
lib/gi-crystal/src/auto/gio-2.0/d_bus_object_manager_server.crConstructors
-
.new(object_path : String) : self
Creates a new #GDBusObjectManagerServer object.
-
.new
Initialize a new
DBusObjectManagerServer
. - .new(*, connection : Gio::DBusConnection? = nil, object_path : String? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#connection : Gio::DBusConnection?
Gets the #GDBusConnection used by @manager.
-
#connection=(connection : Gio::DBusConnection?) : Nil
Exports all objects managed by @manager on @connection.
-
#export(object : Gio::DBusObjectSkeleton) : Nil
Exports @object on @manager.
-
#export_uniquely(object : Gio::DBusObjectSkeleton) : Nil
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.
-
#is_exported(object : Gio::DBusObjectSkeleton) : Bool
Returns whether @object is currently exported on @manager.
- #object_path : String
- #object_path=(value : String) : String
-
#unexport(object_path : String) : Bool
If @manager has an object at @path, removes the object.
Instance methods inherited from module Gio::DBusObjectManager
interface(object_path : String, interface_name : String) : Gio::DBusInterface?
interface,
interface_added_signal
interface_added_signal,
interface_removed_signal
interface_removed_signal,
object(object_path : String) : Gio::DBusObject?
object,
object_added_signal
object_added_signal,
object_path : String
object_path,
object_removed_signal
object_removed_signal,
objects : GLib::List
objects,
to_unsafe
to_unsafe
Class methods inherited from module Gio::DBusObjectManager
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
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.
Class Method Detail
Instance Method Detail
Exports all objects managed by @manager on @connection. If
@connection is nil
, stops exporting objects.
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.
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 #GDBusObjectProxy:g-object-path property of @object may be modified.
Returns whether @object is currently exported on @manager.