ghc-dbus
A client library for the D-Bus IPC system


D-Bus is a simple, message-based protocol for inter-process communication, which allows applications to interact with other parts of the machine and the user's session using remote procedure calls. D-Bus is a essential part of the modern Linux desktop, where it replaces earlier protocols such as CORBA and DCOP. This library is an implementation of the D-Bus protocol in Haskell. It can be used to add D-Bus support to Haskell applications, without the awkward interfaces common to foreign bindings. Example: connect to the session bus, and get a list of active names. '&#x7b;-# LANGUAGE OverloadedStrings #-&#x7d; import Data.List (sort) import DBus import DBus.Client main = do&#x20; client<- connectSession&#x20;&#x20; -- Request a list of connected clients from the bus&#x20; reply<- call_ client (methodCall "/org/freedesktop/DBus" "org.freedesktop.DBus" "ListNames")&#x20;&#x7b; methodCallDestination = Just "org.freedesktop.DBus"&#x20;&#x7d;&#x20;&#x20; -- org.freedesktop.DBus.ListNames() returns a single value, which is&#x20; -- a list of names (here represented as [String])&#x20; let Just names = fromVariant (methodReturnBody reply !! 0)&#x20;&#x20; -- Print each name on a line, sorted so reserved names are below&#x20; -- temporary names.&#x20; mapM_ putStrLn (sort names) '>$ ghc --make list-names.hs>$ ./list-names>:1.0>:1.1>:1.10>:1.106>:1.109>:1.110>ca.desrt.dconf>org.freedesktop.DBus>org.freedesktop.Notifications>org.freedesktop.secrets>org.gnome.ScreenSaver.

Apache-2.0

cloud_download Downloads

Please select a product to see the available package versions:
Loading...
Loading package downloads...