class Gio::DBusObjectManagerServer

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.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gio::DBusObjectManager

interface(object_path : String, interface_name : String) : Gio::DBusInterface | Nil interface, interface_added_signal interface_added_signal, interface_removed_signal interface_removed_signal, object(object_path : String) : Gio::DBusObject | Nil 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

Constructor methods inherited from module Gio::DBusObjectManager

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gio::DBusObjectManager

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, 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) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, 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) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil 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, 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

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : 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

def self.new(object_path : String) : self #

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.


[View source]
def self.new #

Initialize a new DBusObjectManagerServer.


[View source]
def self.new(*, connection : Gio::DBusConnection | Nil = nil, object_path : String | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def connection : Gio::DBusConnection | Nil #

Gets the #GDBusConnection used by manager.


[View source]
def connection=(connection : Gio::DBusConnection | Nil) : Nil #

Exports all objects managed by manager on connection. If connection is nil, stops exporting objects.


[View source]
def export(object : Gio::DBusObjectSkeleton) : Nil #

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.


[View source]
def 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. As such, the #GDBusObjectProxy:g-object-path property of object may be modified.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def is_exported(object : Gio::DBusObjectSkeleton) : Bool #

Returns whether object is currently exported on manager.


[View source]
def object_path : String #

[View source]
def object_path=(value : String) : String #

[View source]
def unexport(object_path : String) : Bool #

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.


[View source]