gi-gio-2.0.19: Gio bindings

Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com)
Safe Haskell | None
Language | Haskell2010

GI.Gio.Objects.DBusObjectManagerServer

Contents

- Exported types
- Methods
  - export
  - exportUniquely
  - getConnection
  - isExported
  - new
  - setConnection
  - unexport
- Properties
  - connection
  - objectPath

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

- newtype DBusObjectManagerServer = DBusObjectManagerServer (ManagedPtr DBusObjectManagerServer)
- class GObject o => IsDBusObjectManagerServer o
- toDBusObjectManagerServer :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m DBusObjectManagerServer
- noDBusObjectManagerServer :: Maybe DBusObjectManagerServer
- dBusObjectManagerServerExport :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) => a -> b -> m ()
- dBusObjectManagerServerExportUniquely :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) => a -> b -> m ()
- dBusObjectManagerServerGetConnection :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) => a -> m DBusConnection
- dBusObjectManagerServerIsExported :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) => a -> b -> m Bool
- dBusObjectManagerServerNew :: (HasCallStack, MonadIO m) => Text -> m DBusObjectManagerServer
- dBusObjectManagerServerSetConnection :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusConnection b) => a -> Maybe b -> m ()
- dBusObjectManagerServerUnexport :: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) => a -> Text -> m Bool
- clearDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m ()
- constructDBusObjectManagerServerConnection :: (IsDBusObjectManagerServer o, IsDBusConnection a) => a -> IO (GValueConstruct o)
- getDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe DBusConnection)
- setDBusObjectManagerServerConnection :: (MonadIO m, IsDBusObjectManagerServer o, IsDBusConnection a) => o -> a -> m ()
- constructDBusObjectManagerServerObjectPath :: IsDBusObjectManagerServer o => Text -> IO (GValueConstruct o)
- getDBusObjectManagerServerObjectPath :: (MonadIO m, IsDBusObjectManagerServer o) => o -> m (Maybe Text)

# Exported types

newtype DBusObjectManagerServer Source #

Memory-managed wrapper type.

Constructors

DBusObjectManagerServer (ManagedPtr DBusObjectManagerServer) |

Instances

GObject DBusObjectManagerServer Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer Methods gobjectType :: DBusObjectManagerServer -> IO GType Source #
IsObject DBusObjectManagerServer Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer
IsDBusObjectManager DBusObjectManagerServer Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer
IsDBusObjectManagerServer DBusObjectManagerServer Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer

class GObject o => IsDBusObjectManagerServer o Source #

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

Instances

(GObject a, (UnknownAncestorError DBusObjectManagerServer a :: Constraint)) => IsDBusObjectManagerServer a Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer
IsDBusObjectManagerServer DBusObjectManagerServer Source # |
Instance details Defined in GI.Gio.Objects.DBusObjectManagerServer

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

noDBusObjectManagerServer :: Maybe DBusObjectManagerServer Source #

A convenience alias for `Nothing` :: `Maybe` `DBusObjectManagerServer`.

# Methods

## export

dBusObjectManagerServerExport Source #

Arguments

:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) |
=> a | `manager`: A `DBusObjectManagerServer`.
-> b | `object`: A `DBusObjectSkeleton`.
-> m () |

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