gi-gio-2.0.25: Gio bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Objects.DBusObjectManagerServer

Description

DBusObjectManagerServer is used to export DBusObject 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 DBusObjectManagerClient for the client-side code that is intended to be used with DBusObjectManagerServer or any D-Bus object implementing the org.freedesktop.DBus.ObjectManager interface.

Since: 2.30

Synopsis

Exported types

class (GObject o, IsDescendantOf DBusObjectManagerServer o) => IsDBusObjectManagerServer o Source #

Type class for types which can be safely cast to DBusObjectManagerServer, for instance with toDBusObjectManagerServer.

toDBusObjectManagerServer :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m DBusObjectManagerServer Source #

Cast to DBusObjectManagerServer, for types for which this is known to be safe. For general casts, use castTo.

Methods

Overloaded methods

export

dBusObjectManagerServerExport Source #

Exports object on manager.

If there is already a DBusObject 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

exportUniquely

dBusObjectManagerServerExportUniquely Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) 
=> a

manager: A DBusObjectManagerServer.

-> b

object: An object.

-> m () 

Like dBusObjectManagerServerExport 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 DBusObjectProxy:g-object-path property of object may be modified.

Since: 2.30

getConnection

dBusObjectManagerServerGetConnection Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) 
=> a

manager: A DBusObjectManagerServer

-> m DBusConnection

Returns: A DBusConnection object or Nothing if manager isn't exported on a connection. The returned object should be freed with objectUnref.

Gets the DBusConnection used by manager.

Since: 2.30

isExported

dBusObjectManagerServerIsExported Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) 
=> a

manager: A DBusObjectManagerServer.

-> b

object: An object.

-> m Bool

Returns: True if object is exported

Returns whether object is currently exported on manager.

Since: 2.34

new

dBusObjectManagerServerNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

objectPath: The object path to export the manager object at.

-> m DBusObjectManagerServer

Returns: A DBusObjectManagerServer object. Free with objectUnref.

Creates a new DBusObjectManagerServer object.

The returned server isn't yet exported on any connection. To do so, use dBusObjectManagerServerSetConnection. Normally you want to export all of your objects before doing so to avoid InterfacesAdded signals being emitted.

Since: 2.30

setConnection

dBusObjectManagerServerSetConnection Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusConnection b) 
=> a

manager: A DBusObjectManagerServer.

-> Maybe b

connection: A DBusConnection or Nothing.

-> m () 

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

unexport

dBusObjectManagerServerUnexport Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) 
=> a

manager: A DBusObjectManagerServer.

-> Text

objectPath: An object path.

-> m Bool

Returns: True if object at objectPath was removed, False otherwise.

If manager has an object at path, removes the object. Otherwise does nothing.

Note that objectPath must be in the hierarchy rooted by the object path for manager.

Since: 2.30

Properties

connection

The DBusConnection to export objects on.

Since: 2.30

clearDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m () Source #

Set the value of the “connection” property to Nothing. When overloading is enabled, this is equivalent to

clear #connection

constructDBusObjectManagerServerConnection :: (IsDBusObjectManagerServer o, IsDBusConnection a) => a -> IO (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “connection” property. This is rarely needed directly, but it is used by new.

getDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe DBusConnection) Source #

Get the value of the “connection” property. When overloading is enabled, this is equivalent to

get dBusObjectManagerServer #connection

setDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o, IsDBusConnection a) => o -> a -> m () Source #

Set the value of the “connection” property. When overloading is enabled, this is equivalent to

set dBusObjectManagerServer [ #connection := value ]

objectPath

The object path to register the manager object at.

Since: 2.30

constructDBusObjectManagerServerObjectPath :: IsDBusObjectManagerServer o => Text -> IO (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “object-path” property. This is rarely needed directly, but it is used by new.

getDBusObjectManagerServerObjectPath :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe Text) Source #

Get the value of the “object-path” property. When overloading is enabled, this is equivalent to

get dBusObjectManagerServer #objectPath