zeromq4-haskell-0.8.0: Bindings to ZeroMQ 4.x
Copyright(c) 2013 Toralf Wittner
LicenseMIT
MaintainerToralf Wittner <tw@dtex.org>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

System.ZMQ4.Monadic

Description

This modules exposes a monadic interface of ZMQ4. Actions run inside a ZMQ monad and Sockets are guaranteed not to leak outside their corresponding runZMQ scope. Running ZMQ computations asynchronously is directly supported through async.

Synopsis

Type Definitions

data ZMQ z a #

The ZMQ monad is modeled after ST and encapsulates a Context. It uses the uninstantiated type variable z to distinguish different invoctions of runZMQ and to prevent unintented use of Sockets outside their scope. Cf. the paper of John Launchbury and Simon Peyton Jones Lazy Functional State Threads.

Instances

Instances details
MonadBase IO (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

liftBase :: IO α -> ZMQ z α #

MonadBaseControl IO (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Associated Types

type StM (ZMQ z) a #

Methods

liftBaseWith :: (RunInBase (ZMQ z) IO -> IO a) -> ZMQ z a #

restoreM :: StM (ZMQ z) a -> ZMQ z a #

Monad (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

(>>=) :: ZMQ z a -> (a -> ZMQ z b) -> ZMQ z b #

(>>) :: ZMQ z a -> ZMQ z b -> ZMQ z b #

return :: a -> ZMQ z a #

Functor (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

fmap :: (a -> b) -> ZMQ z a -> ZMQ z b #

(<$) :: a -> ZMQ z b -> ZMQ z a #

Applicative (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

pure :: a -> ZMQ z a #

(<*>) :: ZMQ z (a -> b) -> ZMQ z a -> ZMQ z b #

liftA2 :: (a -> b -> c) -> ZMQ z a -> ZMQ z b -> ZMQ z c #

(*>) :: ZMQ z a -> ZMQ z b -> ZMQ z b #

(<*) :: ZMQ z a -> ZMQ z b -> ZMQ z a #

MonadIO (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

liftIO :: IO a -> ZMQ z a #

MonadThrow (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

throwM :: Exception e => e -> ZMQ z a #

MonadCatch (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

catch :: Exception e => ZMQ z a -> (e -> ZMQ z a) -> ZMQ z a #

MonadMask (ZMQ z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

mask :: ((forall a. ZMQ z a -> ZMQ z a) -> ZMQ z b) -> ZMQ z b #

uninterruptibleMask :: ((forall a. ZMQ z a -> ZMQ z a) -> ZMQ z b) -> ZMQ z b #

generalBracket :: ZMQ z a -> (a -> ExitCase b -> ZMQ z c) -> (a -> ZMQ z b) -> ZMQ z (b, c) #

type StM (ZMQ z) a # 
Instance details

Defined in System.ZMQ4.Monadic

type StM (ZMQ z) a = a

data Socket z t #

The ZMQ socket, parameterised by SocketType and belonging to a particular ZMQ thread.

Instances

Instances details
SocketLike (Socket z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

toSocket :: Socket z t -> Socket0 t #

data Flag #

Flags to apply on send operations (cf. man zmq_send)

Constructors

DontWait

ZMQ_DONTWAIT (Only relevant on Windows.)

SendMore

ZMQ_SNDMORE

Instances

Instances details
Eq Flag # 
Instance details

Defined in System.ZMQ4.Internal

Methods

(==) :: Flag -> Flag -> Bool #

(/=) :: Flag -> Flag -> Bool #

Ord Flag # 
Instance details

Defined in System.ZMQ4.Internal

Methods

compare :: Flag -> Flag -> Ordering #

(<) :: Flag -> Flag -> Bool #

(<=) :: Flag -> Flag -> Bool #

(>) :: Flag -> Flag -> Bool #

(>=) :: Flag -> Flag -> Bool #

max :: Flag -> Flag -> Flag #

min :: Flag -> Flag -> Flag #

Show Flag # 
Instance details

Defined in System.ZMQ4.Internal

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

data Switch #

Configuration switch

Constructors

Default

Use default setting

On

Activate setting

Off

De-activate setting

Instances

Instances details
Eq Switch # 
Instance details

Defined in System.ZMQ4.Internal

Methods

(==) :: Switch -> Switch -> Bool #

(/=) :: Switch -> Switch -> Bool #

Ord Switch # 
Instance details

Defined in System.ZMQ4.Internal

Show Switch # 
Instance details

Defined in System.ZMQ4.Internal

type Timeout = Int64 #

data Event #

Socket events.

Constructors

In

ZMQ_POLLIN (incoming messages)

Out

ZMQ_POLLOUT (outgoing messages, i.e. at least 1 byte can be written)

Err
ZMQ_POLLERR

Instances

Instances details
Eq Event # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Event -> Event -> Bool #

(/=) :: Event -> Event -> Bool #

Ord Event # 
Instance details

Defined in System.ZMQ4

Methods

compare :: Event -> Event -> Ordering #

(<) :: Event -> Event -> Bool #

(<=) :: Event -> Event -> Bool #

(>) :: Event -> Event -> Bool #

(>=) :: Event -> Event -> Bool #

max :: Event -> Event -> Event #

min :: Event -> Event -> Event #

Read Event # 
Instance details

Defined in System.ZMQ4

Show Event # 
Instance details

Defined in System.ZMQ4

Methods

showsPrec :: Int -> Event -> ShowS #

show :: Event -> String #

showList :: [Event] -> ShowS #

data EventMsg #

Event Message to receive when monitoring socket events.

Instances

Instances details
Eq EventMsg # 
Instance details

Defined in System.ZMQ4.Internal

Show EventMsg # 
Instance details

Defined in System.ZMQ4.Internal

data Poll s m where #

A Poll value contains the object to poll (a 0MQ socket or a file descriptor), the set of Events which are of interest and--optionally-- a callback-function which is invoked iff the set of interested events overlaps with the actual events.

Constructors

Sock :: s t -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m 
File :: Fd -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m 

data KeyFormat a where #

Instances

Instances details
Eq (KeyFormat a) # 
Instance details

Defined in System.ZMQ4.Internal

Methods

(==) :: KeyFormat a -> KeyFormat a -> Bool #

(/=) :: KeyFormat a -> KeyFormat a -> Bool #

Show (KeyFormat a) # 
Instance details

Defined in System.ZMQ4.Internal

Socket type-classes

class SocketType a #

Socket types.

Minimal complete definition

zmqSocketType

Instances

Instances details
SocketType Stream # 
Instance details

Defined in System.ZMQ4

SocketType Push # 
Instance details

Defined in System.ZMQ4

SocketType Pull # 
Instance details

Defined in System.ZMQ4

SocketType Router # 
Instance details

Defined in System.ZMQ4

SocketType Dealer # 
Instance details

Defined in System.ZMQ4

SocketType Rep # 
Instance details

Defined in System.ZMQ4

SocketType Req # 
Instance details

Defined in System.ZMQ4

SocketType XSub # 
Instance details

Defined in System.ZMQ4

SocketType XPub # 
Instance details

Defined in System.ZMQ4

SocketType Sub # 
Instance details

Defined in System.ZMQ4

SocketType Pub # 
Instance details

Defined in System.ZMQ4

SocketType Pair # 
Instance details

Defined in System.ZMQ4

class Sender a #

Sockets which can send.

Instances

Instances details
Sender Stream # 
Instance details

Defined in System.ZMQ4

Sender Push # 
Instance details

Defined in System.ZMQ4

Sender Router # 
Instance details

Defined in System.ZMQ4

Sender Dealer # 
Instance details

Defined in System.ZMQ4

Sender Rep # 
Instance details

Defined in System.ZMQ4

Sender Req # 
Instance details

Defined in System.ZMQ4

Sender XSub # 
Instance details

Defined in System.ZMQ4

Sender XPub # 
Instance details

Defined in System.ZMQ4

Sender Pub # 
Instance details

Defined in System.ZMQ4

Sender Pair # 
Instance details

Defined in System.ZMQ4

class Receiver a #

Sockets which can receive.

Instances

Instances details
Receiver Stream # 
Instance details

Defined in System.ZMQ4

Receiver Pull # 
Instance details

Defined in System.ZMQ4

Receiver Router # 
Instance details

Defined in System.ZMQ4

Receiver Dealer # 
Instance details

Defined in System.ZMQ4

Receiver Rep # 
Instance details

Defined in System.ZMQ4

Receiver Req # 
Instance details

Defined in System.ZMQ4

Receiver XSub # 
Instance details

Defined in System.ZMQ4

Receiver XPub # 
Instance details

Defined in System.ZMQ4

Receiver Sub # 
Instance details

Defined in System.ZMQ4

Receiver Pair # 
Instance details

Defined in System.ZMQ4

class Subscriber a #

Sockets which can subscribe.

Instances

Instances details
Subscriber Sub # 
Instance details

Defined in System.ZMQ4

class SocketLike s #

Minimal complete definition

toSocket

Instances

Instances details
SocketLike Socket # 
Instance details

Defined in System.ZMQ4.Internal

Methods

toSocket :: Socket t -> Socket t #

SocketLike (Socket z) # 
Instance details

Defined in System.ZMQ4.Monadic

Methods

toSocket :: Socket z t -> Socket0 t #

class Conflatable a #

Sockets which can be conflated.

Instances

Instances details
Conflatable Push # 
Instance details

Defined in System.ZMQ4

Conflatable Pull # 
Instance details

Defined in System.ZMQ4

Conflatable Dealer # 
Instance details

Defined in System.ZMQ4

Conflatable Sub # 
Instance details

Defined in System.ZMQ4

Conflatable Pub # 
Instance details

Defined in System.ZMQ4

class SendProbe a #

Sockets which can send probes (cf. setProbeRouter).

Instances

Instances details
SendProbe Router # 
Instance details

Defined in System.ZMQ4

SendProbe Dealer # 
Instance details

Defined in System.ZMQ4

SendProbe Req # 
Instance details

Defined in System.ZMQ4

Socket Types

data Pair #

Constructors

Pair 

Instances

Instances details
Eq Pair # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Pair -> Pair -> Bool #

(/=) :: Pair -> Pair -> Bool #

Generic Pair # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pair :: Type -> Type #

Methods

from :: Pair -> Rep Pair x #

to :: Rep Pair x -> Pair #

SocketType Pair # 
Instance details

Defined in System.ZMQ4

Receiver Pair # 
Instance details

Defined in System.ZMQ4

Sender Pair # 
Instance details

Defined in System.ZMQ4

type Rep Pair # 
Instance details

Defined in System.ZMQ4

type Rep Pair = D1 ('MetaData "Pair" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Pair" 'PrefixI 'False) (U1 :: Type -> Type))

data Pub #

Constructors

Pub 

Instances

Instances details
Eq Pub # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Pub -> Pub -> Bool #

(/=) :: Pub -> Pub -> Bool #

Generic Pub # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pub :: Type -> Type #

Methods

from :: Pub -> Rep Pub x #

to :: Rep Pub x -> Pub #

SocketType Pub # 
Instance details

Defined in System.ZMQ4

Conflatable Pub # 
Instance details

Defined in System.ZMQ4

Sender Pub # 
Instance details

Defined in System.ZMQ4

type Rep Pub # 
Instance details

Defined in System.ZMQ4

type Rep Pub = D1 ('MetaData "Pub" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Pub" 'PrefixI 'False) (U1 :: Type -> Type))

data Sub #

Constructors

Sub 

Instances

Instances details
Eq Sub # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Sub -> Sub -> Bool #

(/=) :: Sub -> Sub -> Bool #

Generic Sub # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Sub :: Type -> Type #

Methods

from :: Sub -> Rep Sub x #

to :: Rep Sub x -> Sub #

SocketType Sub # 
Instance details

Defined in System.ZMQ4

Conflatable Sub # 
Instance details

Defined in System.ZMQ4

Receiver Sub # 
Instance details

Defined in System.ZMQ4

Subscriber Sub # 
Instance details

Defined in System.ZMQ4

type Rep Sub # 
Instance details

Defined in System.ZMQ4

type Rep Sub = D1 ('MetaData "Sub" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Sub" 'PrefixI 'False) (U1 :: Type -> Type))

data XPub #

Constructors

XPub 

Instances

Instances details
Eq XPub # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: XPub -> XPub -> Bool #

(/=) :: XPub -> XPub -> Bool #

Generic XPub # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep XPub :: Type -> Type #

Methods

from :: XPub -> Rep XPub x #

to :: Rep XPub x -> XPub #

SocketType XPub # 
Instance details

Defined in System.ZMQ4

Receiver XPub # 
Instance details

Defined in System.ZMQ4

Sender XPub # 
Instance details

Defined in System.ZMQ4

type Rep XPub # 
Instance details

Defined in System.ZMQ4

type Rep XPub = D1 ('MetaData "XPub" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "XPub" 'PrefixI 'False) (U1 :: Type -> Type))

data XSub #

Constructors

XSub 

Instances

Instances details
Eq XSub # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: XSub -> XSub -> Bool #

(/=) :: XSub -> XSub -> Bool #

Generic XSub # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep XSub :: Type -> Type #

Methods

from :: XSub -> Rep XSub x #

to :: Rep XSub x -> XSub #

SocketType XSub # 
Instance details

Defined in System.ZMQ4

Receiver XSub # 
Instance details

Defined in System.ZMQ4

Sender XSub # 
Instance details

Defined in System.ZMQ4

type Rep XSub # 
Instance details

Defined in System.ZMQ4

type Rep XSub = D1 ('MetaData "XSub" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "XSub" 'PrefixI 'False) (U1 :: Type -> Type))

data Req #

Constructors

Req 

Instances

Instances details
Eq Req # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Req -> Req -> Bool #

(/=) :: Req -> Req -> Bool #

Generic Req # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Req :: Type -> Type #

Methods

from :: Req -> Rep Req x #

to :: Rep Req x -> Req #

SocketType Req # 
Instance details

Defined in System.ZMQ4

SendProbe Req # 
Instance details

Defined in System.ZMQ4

Receiver Req # 
Instance details

Defined in System.ZMQ4

Sender Req # 
Instance details

Defined in System.ZMQ4

type Rep Req # 
Instance details

Defined in System.ZMQ4

type Rep Req = D1 ('MetaData "Req" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Req" 'PrefixI 'False) (U1 :: Type -> Type))

data Rep #

Constructors

Rep 

Instances

Instances details
Eq Rep # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Rep -> Rep -> Bool #

(/=) :: Rep -> Rep -> Bool #

Generic Rep # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Rep :: Type -> Type #

Methods

from :: Rep -> Rep0 Rep x #

to :: Rep0 Rep x -> Rep #

SocketType Rep # 
Instance details

Defined in System.ZMQ4

Receiver Rep # 
Instance details

Defined in System.ZMQ4

Sender Rep # 
Instance details

Defined in System.ZMQ4

type Rep Rep # 
Instance details

Defined in System.ZMQ4

type Rep Rep = D1 ('MetaData "Rep" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Rep" 'PrefixI 'False) (U1 :: Type -> Type))

data Dealer #

Constructors

Dealer 

Instances

Instances details
Eq Dealer # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Dealer -> Dealer -> Bool #

(/=) :: Dealer -> Dealer -> Bool #

Generic Dealer # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Dealer :: Type -> Type #

Methods

from :: Dealer -> Rep Dealer x #

to :: Rep Dealer x -> Dealer #

SocketType Dealer # 
Instance details

Defined in System.ZMQ4

SendProbe Dealer # 
Instance details

Defined in System.ZMQ4

Conflatable Dealer # 
Instance details

Defined in System.ZMQ4

Receiver Dealer # 
Instance details

Defined in System.ZMQ4

Sender Dealer # 
Instance details

Defined in System.ZMQ4

type Rep Dealer # 
Instance details

Defined in System.ZMQ4

type Rep Dealer = D1 ('MetaData "Dealer" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Dealer" 'PrefixI 'False) (U1 :: Type -> Type))

data Router #

Constructors

Router 

Instances

Instances details
Eq Router # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Router -> Router -> Bool #

(/=) :: Router -> Router -> Bool #

Generic Router # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Router :: Type -> Type #

Methods

from :: Router -> Rep Router x #

to :: Rep Router x -> Router #

SocketType Router # 
Instance details

Defined in System.ZMQ4

SendProbe Router # 
Instance details

Defined in System.ZMQ4

Receiver Router # 
Instance details

Defined in System.ZMQ4

Sender Router # 
Instance details

Defined in System.ZMQ4

type Rep Router # 
Instance details

Defined in System.ZMQ4

type Rep Router = D1 ('MetaData "Router" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Router" 'PrefixI 'False) (U1 :: Type -> Type))

data Pull #

Constructors

Pull 

Instances

Instances details
Eq Pull # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Pull -> Pull -> Bool #

(/=) :: Pull -> Pull -> Bool #

Generic Pull # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pull :: Type -> Type #

Methods

from :: Pull -> Rep Pull x #

to :: Rep Pull x -> Pull #

SocketType Pull # 
Instance details

Defined in System.ZMQ4

Conflatable Pull # 
Instance details

Defined in System.ZMQ4

Receiver Pull # 
Instance details

Defined in System.ZMQ4

type Rep Pull # 
Instance details

Defined in System.ZMQ4

type Rep Pull = D1 ('MetaData "Pull" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Pull" 'PrefixI 'False) (U1 :: Type -> Type))

data Push #

Constructors

Push 

Instances

Instances details
Eq Push # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Push -> Push -> Bool #

(/=) :: Push -> Push -> Bool #

Generic Push # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Push :: Type -> Type #

Methods

from :: Push -> Rep Push x #

to :: Rep Push x -> Push #

SocketType Push # 
Instance details

Defined in System.ZMQ4

Conflatable Push # 
Instance details

Defined in System.ZMQ4

Sender Push # 
Instance details

Defined in System.ZMQ4

type Rep Push # 
Instance details

Defined in System.ZMQ4

type Rep Push = D1 ('MetaData "Push" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Push" 'PrefixI 'False) (U1 :: Type -> Type))

data Stream #

Constructors

Stream 

Instances

Instances details
Eq Stream # 
Instance details

Defined in System.ZMQ4

Methods

(==) :: Stream -> Stream -> Bool #

(/=) :: Stream -> Stream -> Bool #

Generic Stream # 
Instance details

Defined in System.ZMQ4

Associated Types

type Rep Stream :: Type -> Type #

Methods

from :: Stream -> Rep Stream x #

to :: Rep Stream x -> Stream #

SocketType Stream # 
Instance details

Defined in System.ZMQ4

Receiver Stream # 
Instance details

Defined in System.ZMQ4

Sender Stream # 
Instance details

Defined in System.ZMQ4

type Rep Stream # 
Instance details

Defined in System.ZMQ4

type Rep Stream = D1 ('MetaData "Stream" "System.ZMQ4" "zeromq4-haskell-0.8.0-DwU6JKskGe36iDtd4CYGE2" 'False) (C1 ('MetaCons "Stream" 'PrefixI 'False) (U1 :: Type -> Type))

General Operations

version :: ZMQ z (Int, Int, Int) #

runZMQ :: MonadIO m => (forall z. ZMQ z a) -> m a #

Return the value computed by the given ZMQ monad. Rank-2 polymorphism is used to prevent leaking of z. An invocation of runZMQ will internally create a Context and all actions are executed relative to this context. On finish the context will be disposed, but see async.

async :: ZMQ z a -> ZMQ z (Async a) #

Run the given ZMQ computation asynchronously, i.e. this function runs the computation in a new thread using async. N.B. reference counting is used to prolong the lifetime of the Context encapsulated in ZMQ as necessary, e.g.:

runZMQ $ do
    s <- socket Pair
    async $ do
        liftIO (threadDelay 10000000)
        identity s >>= liftIO . print

Here, runZMQ will finish before the code section in async, but due to reference counting, the Context will only be disposed after async finishes as well.

socket :: SocketType t => t -> ZMQ z (Socket z t) #

ZMQ Options (Read)

ZMQ Options (Write)

setIoThreads :: Word -> ZMQ z () #

setMaxSockets :: Word -> ZMQ z () #

Socket operations

close :: Socket z t -> ZMQ z () #

bind :: Socket z t -> String -> ZMQ z () #

unbind :: Socket z t -> String -> ZMQ z () #

connect :: Socket z t -> String -> ZMQ z () #

disconnect :: Socket z t -> String -> ZMQ z () #

send :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z () #

send' :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z () #

sendMulti :: Sender t => Socket z t -> NonEmpty ByteString -> ZMQ z () #

subscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z () #

unsubscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z () #

proxy :: Socket z a -> Socket z b -> Maybe (Socket z c) -> ZMQ z () #

monitor :: [EventType] -> Socket z t -> ZMQ z (Bool -> IO (Maybe EventMsg)) #

socketMonitor :: [EventType] -> String -> Socket z t -> ZMQ z () #

poll :: (SocketLike s, MonadIO m) => Timeout -> [Poll s m] -> m [[Event]] #

Polls for events on the given Poll descriptors. Returns a list of events per descriptor which have occured. (cf. zmq_poll)

Socket Options (Read)

affinity :: Socket z t -> ZMQ z Word64 #

backlog :: Socket z t -> ZMQ z Int #

conflate :: Conflatable t => Socket z t -> ZMQ z Bool #

delayAttachOnConnect :: Socket z t -> ZMQ z Bool #

Deprecated: Use immediate

events :: Socket z t -> ZMQ z [Event] #

immediate :: Socket z t -> ZMQ z Bool #

ipv4Only :: Socket z t -> ZMQ z Bool #

Deprecated: Use ipv6

ipv6 :: Socket z t -> ZMQ z Bool #

linger :: Socket z t -> ZMQ z Int #

mcastHops :: Socket z t -> ZMQ z Int #

rate :: Socket z t -> ZMQ z Int #

sendBuffer :: Socket z t -> ZMQ z Int #

sendHighWM :: Socket z t -> ZMQ z Int #

sendTimeout :: Socket z t -> ZMQ z Int #

Socket Options (Write)

setAffinity :: Word64 -> Socket z t -> ZMQ z () #

setBacklog :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setConflate :: Conflatable t => Bool -> Socket z t -> ZMQ z () #

setCurveServer :: Bool -> Socket z t -> ZMQ z () #

setDelayAttachOnConnect :: Bool -> Socket z t -> ZMQ z () #

Deprecated: Use setImmediate

setImmediate :: Bool -> Socket z t -> ZMQ z () #

setIpv4Only :: Bool -> Socket z t -> ZMQ z () #

Deprecated: Use setIpv6

setIpv6 :: Bool -> Socket z t -> ZMQ z () #

setLinger :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setMcastHops :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z () #

setPlainServer :: Bool -> Socket z t -> ZMQ z () #

setProbeRouter :: SendProbe t => Bool -> Socket z t -> ZMQ z () #

setRate :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z () #

setReceiveBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReceiveHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReqRelaxed :: Bool -> Socket z Req -> ZMQ z () #

setSendBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setSendHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setSendTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setTcpKeepAlive :: Switch -> Socket z t -> ZMQ z () #

Error Handling

data ZMQError #

ZMQError encapsulates information about errors, which occur when using the native 0MQ API, such as error number and message.

errno :: ZMQError -> Int #

Error number value.

source :: ZMQError -> String #

Source where this error originates from.

message :: ZMQError -> String #

Actual error message.

Re-exports

liftIO :: MonadIO m => IO a -> m a #

Lift a computation from the IO monad.

restrict :: Restriction r v => v -> Restricted r v #

Create a restricted value. If the given value does not satisfy the restrictions, a modified variant is used instead, e.g. if an integer is larger than the upper bound, the upper bound value is used.

toRestricted :: Restriction r v => v -> Maybe (Restricted r v) #

Create a restricted value. Returns Nothing if the given value does not satisfy all restrictions.

Low-level Functions

waitRead :: Socket z t -> ZMQ z () #

waitWrite :: Socket z t -> ZMQ z () #

curveKeyPair :: MonadIO m => m (Restricted Div5 ByteString, Restricted Div5 ByteString) #

Generate a new curve key pair. (cf. zmq_curve_keypair)