Safe Haskell | Safe-Infered |
---|
- startDaemon :: (Serialize a, Serialize b) => String -> DaemonOptions -> (a -> IO b) -> IO ()
- startDaemonWithHandler :: String -> DaemonOptions -> Handler () -> IO ()
- runClient :: (Serialize a, Serialize b) => HostName -> Port -> a -> IO (Maybe b)
- runClientWithHandler :: HostName -> Port -> Handler a -> IO a
- data DaemonOptions = DaemonOptions {}
- data PidFile
- type HostName = String
- type Port = Int
- bindPort :: Port -> IO Socket
- getSocket :: HostName -> Port -> IO Socket
Daemons
Simple wrapper around startDaemonWithHandler
which uses a
simple function to respond to commands and doesn't deal with pipes.
The handler
is just a function that takes a command and returns a
response.
Start a daemon running on the given port, using the given handler to respond to events. If the daemon is already running, just return.
The pidfile PidFile options
will be created and locked. This
function checks the pidfile to see if the daemon is already
running.
The daemon will listen for incoming connections on all interfaces
on daemonPort options
.
The handler
is a function that takes the reader and writer
ByteString
pipes and does something with them. See
commandReceiver
for an example handler.
Clients,
Send a command to the daemon running at the given network address and wait for a response.
This is a simple wrapper around runClientWithHandler
that sends a
single command and waits for a single response.
If the connection is closed before receiving a response, return
Nothing
.
Connect to the given network address and run the handler on the reader and wrier pipes for the socket.
The handler
is a function that takes the reader and writer
ByteString
pipes and does something with them. For an example
handler, see commandSender
, which sends a command and waits for a
response.
Types
data DaemonOptions Source
The configuration options of a daemon. See startDaemon
for a
description of each.
The location of the daemon's pidfile.