Pup-Events-Client-1.0: A networked event handling framework for hooking into other programs.

Safe HaskellSafe-Infered



The Clients module in the PupEvents framework is used by the main application code to send events to the server. Its main function, client returns a pair of PQueues that the application uses to send and receive events (written following the specification defined in the Events module).





:: Maybe [Char]

The address to connect to. If ommitted we connect to localhost

-> Int

The number of priorities in the PQueue

-> (a -> Int)

A function to return the priority level of an event

-> (t -> t -> String)

A function to return the string representation of an event

-> [ParsecT [Char] () Identity a]

A list of parsers that return Event objects

-> IO (PQueue t, PQueue a)

We return a pair of PQueues to use in communicating events. The first is for all events going to the server, the second is for events coming from the server.

The client function is the main entry point for the client code. It creates a socket, spawns two processes (sendEvents and recvEvents) to handle outgoing and incoming events, and returns the queues used to communicate with those processes.

sendEvents :: Handle -> PQueue t -> (t -> t -> String) -> IO bSource

recvEvents :: Handle -> PQueue a -> (a -> Int) -> [ParsecT [Char] () Identity a] -> IO ()Source