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 |
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.
Instances
class GObject o => IsDBusObjectManagerServer o Source #
Type class for types which can be safely cast to DBusObjectManagerServer
, for instance with toDBusObjectManagerServer
.
Instances
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 #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) | |
=> a |
|
-> b |
|
-> 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 #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) | |
=> a |
|
-> b |
|
-> 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 #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) | |
=> a |
|
-> m DBusConnection | Returns: A |
Gets the DBusConnection
used by manager
.
Since: 2.30
isExported
dBusObjectManagerServerIsExported Source #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusObjectSkeleton b) | |
=> a |
|
-> b |
|
-> m Bool | Returns: |
Returns whether object
is currently exported on manager
.
Since: 2.34
new
dBusObjectManagerServerNew Source #
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m DBusObjectManagerServer | Returns: A |
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 #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a, IsDBusConnection b) | |
=> a |
|
-> Maybe b |
|
-> m () |
Exports all objects managed by manager
on connection
. If
connection
is Nothing
, stops exporting objects.
unexport
dBusObjectManagerServerUnexport Source #
:: (HasCallStack, MonadIO m, IsDBusObjectManagerServer a) | |
=> a |
|
-> Text |
|
-> m Bool | Returns: |
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