name: dbus version: 1.0.1 x-revision: 2 license: Apache-2.0 license-file: license.txt author: John Millikin maintainer: Andrey Sverdlichenko build-type: Simple cabal-version: >= 1.8 category: Network, Desktop stability: experimental homepage: https://github.com/rblaze/haskell-dbus#readme synopsis: A client library for the D-Bus IPC system. description: 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. . @ {-\# LANGUAGE OverloadedStrings \#-} . import Data.List (sort) import DBus import DBus.Client . main = do client <- connectSession // \-- Request a list of connected clients from the bus reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\") { methodCallDestination = Just \"org.freedesktop.DBus\" } // \-- org.freedesktop.DBus.ListNames() returns a single value, which is \-- a list of names (here represented as [String]) let Just names = fromVariant (methodReturnBody reply !! 0) // \-- Print each name on a line, sorted so reserved names are below \-- temporary names. 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 extra-source-files: examples/dbus-monitor.hs examples/export.hs examples/introspect.hs examples/list-names.hs idlxml/dbus.xml source-repository head type: git location: https://github.com/rblaze/haskell-dbus library ghc-options: -W -Wall hs-source-dirs: lib build-depends: base >=4.8 && <5 , bytestring , cereal , containers , deepseq , filepath , lens , libxml-sax , network < 2.9 , parsec , random , split , template-haskell , text , th-lift , transformers , unix , vector , xml-types exposed-modules: DBus DBus.Client DBus.Generation DBus.Internal.Address DBus.Internal.Message DBus.Internal.Types DBus.Internal.Wire DBus.Introspection DBus.Socket DBus.TH DBus.Transport test-suite dbus_tests type: exitcode-stdio-1.0 main-is: DBusTests.hs hs-source-dirs: tests ghc-options: -W -Wall build-depends: dbus , base , bytestring , cereal , containers , directory , extra , filepath , libxml-sax , network < 2.9 , parsec , process , QuickCheck , random , resourcet , tasty , tasty-hunit , tasty-quickcheck , text , transformers , unix , vector , xml-types other-modules: DBusTests.Address DBusTests.BusName DBusTests.Client DBusTests.ErrorName DBusTests.Generation DBusTests.Integration DBusTests.InterfaceName DBusTests.Introspection DBusTests.MemberName DBusTests.Message DBusTests.ObjectPath DBusTests.Serialization DBusTests.Signature DBusTests.Socket DBusTests.TH DBusTests.Transport DBusTests.Util DBusTests.Variant DBusTests.Wire benchmark dbus_benchmarks type: exitcode-stdio-1.0 main-is: DBusBenchmarks.hs hs-source-dirs: benchmarks ghc-options: -Wall -fno-warn-orphans build-depends: dbus , base , criterion