hbro-1.0.0.0: Minimal KISS compliant browser

Safe HaskellNone

Hbro.Socket

Description

Designed to be imported as qualified.

Synopsis

Documentation

open :: (MonadBaseControl IO m, MonadIO m, MonadReader r m, HasConfig r, HasOptions r, HasGUI r, HasZMQContext r, HasHooks r, MonadError HError m) => m ()Source

Open a response-socket at configured location, named hbro.pid, and start listening for commands.

close :: (Functor m, MonadIO m, MonadReader r m, HasConfig r, HasZMQContext r) => m ()Source

Close the response socket by sending it the command QUIT. Typically called when exiting application.

readCommands :: (Functor m, MonadIO m, MonadBaseControl IO m, MonadReader r m, HasConfig r, HasOptions r, HasGUI r, HasZMQContext r, HasHooks r, MonadError HError m) => Socket Rep -> m ()Source

Listen for incoming requests from response socket. Parse received commands and feed the corresponding callback, if any.

getPath :: (Functor m, MonadIO m, MonadReader r m, HasConfig r) => m StringSource

Return socket URI used for the current process.

socketPath :: ProcessID -> FilePath -> StringSource

Return the socket path to use for the given browser's process ID.

send :: MonadIO m => Socket a -> String -> m ()Source

read :: MonadIO m => Socket a -> m StringSource

sendCommand :: (MonadIO m, MonadReader r m, HasZMQContext r) => String -> String -> m StringSource

Send a single command (through a Request socket) to the given Response socket, and return the answer.

sendCommandToAll :: (MonadIO m, MonadReader r m, HasConfig r, HasZMQContext r) => String -> m [String]Source

Same as sendCommand, but for all running instances of the browser.