You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.0 KiB
60 lines
2.0 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<maintainer type="project">
|
|
<email>haskell@gentoo.org</email>
|
|
</maintainer>
|
|
<longdescription>
|
|
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
|
|
</longdescription>
|
|
</pkgmetadata>
|