zeromq4-haskell-0.8.0: Bindings to ZeroMQ 4.x

Copyright | (c) 2010-2013 Toralf Wittner
License | MIT
Maintainer | Toralf Wittner <tw@dtex.org>
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell98

System.ZMQ4

Contents

- Type Definitions
  - Socket Types
  - Socket type-classes
  - Various type definitions
- General Operations
- Context Options (Read)
- Context Options (Write)
- Socket Options (Read)
- Socket Options (Write)
- Restrictions
- Error Handling
- Low-level Functions
- Utils

Description

0MQ haskell binding. The API closely follows the C-API of 0MQ with the main difference being that sockets are typed.

Notes

Many option settings use a `Restriction` to further constrain the range of possible values of their integral types. For example the maximum message size can be given as -1, which means no limit or by greater values, which denote the message size in bytes. The type of `setMaxMessageSize` is therefore:

    setMaxMessageSize :: Integral i
                        => Restricted (Nneg1, Int64) i
                        -> Socket a
                        -> IO ()

which means any integral value in the range of `-1` to (`maxBound :: Int64`) can be given. To create a restricted value from plain value, use `toRestricted` or `restrict`.

Synopsis

- data Pair = Pair
- data Pub = Pub
- data Sub = Sub
- data XPub = XPub
- data XSub = XSub
- data Req = Req
- data Rep = Rep
- data Dealer = Dealer
- data Router = Router
- type XReq = Dealer
- type XRep = Router
- data Pull = Pull
- data Push = Push
- data Stream = Stream
- class SocketType a
- class Sender a
- class Receiver a
- class Subscriber a
- class SocketLike (s :: Type -> Type)
- class Conflatable a
- class SendProbe a
- type Size = Word
- data Context
- data Socket a
- data Flag
  - = DontWait
  - | SendMore
- data Switch
  - = Default
  - | On
  - | Off
- type Timeout = Int64
- data Event
  - = In
  - | Out
  - | Err
- data EventType
  - = ConnectedEvent
  - | ConnectDelayedEvent
  - | ConnectRetriedEvent
  - | ListeningEvent
  - | BindFailedEvent
  - | AcceptedEvent
  - | AcceptFailedEvent
  - | ClosedEvent
  - | CloseFailedEvent
  - | DisconnectedEvent
  - | MonitorStoppedEvent
  - | AllEvents
- data EventMsg
  - = Connected !ByteString !Fd
  - | ConnectDelayed !ByteString
  - | ConnectRetried !ByteString !Int
  - | Listening !ByteString !Fd
  - | BindFailed !ByteString !Int
  - | Accepted !ByteString !Fd
  - | AcceptFailed !ByteString !Int
  - | Closed !ByteString !Fd
  - | CloseFailed !ByteString !Int
  - | Disconnected !ByteString !Fd
  - | MonitorStopped !ByteString !Int
- data Poll (s :: Type -> Type) (m :: Type -> Type) where
  - Sock :: forall (s :: Type -> Type) t (m :: Type -> Type). s t -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m
  - File :: forall (m :: Type -> Type) (s :: Type -> Type). Fd -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m
- data KeyFormat a where
  - BinaryFormat :: KeyFormat Div4
  - TextFormat :: KeyFormat Div5
- data SecurityMechanism
  - = Null
  - | Plain
  - | Curve
- withContext :: (Context -> IO a) -> IO a
- withSocket :: SocketType a => Context -> a -> (Socket a -> IO b) -> IO b
- bind :: Socket a -> String -> IO ()
- unbind :: Socket a -> String -> IO ()
- connect :: Socket a -> String -> IO ()
- disconnect :: Socket a -> String -> IO ()
- send :: Sender a => Socket a -> [Flag] -> ByteString -> IO ()
- send' :: Sender a => Socket a -> [Flag] -> ByteString -> IO ()
- sendMulti :: Sender a => Socket a -> NonEmpty ByteString -> IO ()
- receive :: Receiver a => Socket a -> IO ByteString
- receiveMulti :: Receiver a => Socket a -> IO [ByteString]
- version :: IO (Int, Int, Int)
- monitor :: [EventType] -> Context -> Socket a -> IO (Bool -> IO (Maybe EventMsg))
- socketMonitor :: [EventType] -> String -> Socket a -> IO ()
- poll :: forall (s :: Type -> Type) m. (SocketLike s, MonadIO m) => Timeout -> [Poll s m] -> m [[Event]]
- subscribe :: Subscriber a => Socket a -> ByteString -> IO ()
- unsubscribe :: Subscriber a => Socket a -> ByteString -> IO ()
- ioThreads :: Context -> IO Word
- maxSockets :: Context -> IO Word
- setIoThreads :: Word -> Context -> IO ()
- setMaxSockets :: Word -> Context -> IO ()
- affinity :: Socket a -> IO Word64
- backlog :: Socket a -> IO Int
- conflate :: Conflatable a => Socket a -> IO Bool
- curvePublicKey :: KeyFormat f -> Socket a -> IO ByteString
- curveSecretKey :: KeyFormat f -> Socket a -> IO ByteString
- curveServerKey :: KeyFormat f -> Socket a -> IO ByteString
- delayAttachOnConnect :: Socket a -> IO Bool
- events :: Socket a -> IO [Event]
- fileDescriptor :: Socket a -> IO Fd
- identity :: Socket a -> IO ByteString
- immediate :: Socket a -> IO Bool
- ipv4Only :: Socket a -> IO Bool
- ipv6 :: Socket a -> IO Bool
- lastEndpoint :: Socket a -> IO String
- linger :: Socket a -> IO Int
- maxMessageSize :: Socket a -> IO Int64
- mcastHops :: Socket a -> IO Int
- mechanism :: Socket a -> IO SecurityMechanism
- moreToReceive :: Socket a -> IO Bool
- plainServer :: Socket a -> IO Bool
- plainPassword :: Socket a -> IO ByteString
- plainUserName :: Socket a -> IO ByteString
- rate :: Socket a -> IO Int
- receiveBuffer :: Socket a -> IO Int
- receiveHighWM :: Socket a -> IO Int
- receiveTimeout :: Socket a -> IO Int
- reconnectInterval :: Socket a -> IO Int
- reconnectIntervalMax :: Socket a -> IO Int
- recoveryInterval :: Socket a -> IO Int
- sendBuffer :: Socket a -> IO Int
- sendHighWM :: Socket a -> IO Int
- sendTimeout :: Socket a -> IO Int
- tcpKeepAlive :: Socket a -> IO Switch
- tcpKeepAliveCount :: Socket a -> IO Int
- tcpKeepAliveIdle :: Socket a -> IO Int
- tcpKeepAliveInterval :: Socket a -> IO Int
- zapDomain :: Socket a -> IO ByteString
- setAffinity :: Word64 -> Socket a -> IO ()
- setBacklog :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setConflate :: Conflatable a => Bool -> Socket a -> IO ()
- setCurveServer :: Bool -> Socket a -> IO ()
- setCurvePublicKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO ()
- setCurveSecretKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO ()
- setCurveServerKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO ()
- setDelayAttachOnConnect :: Bool -> Socket a -> IO ()
- setIdentity :: Restricted (N1, N254) ByteString -> Socket a -> IO ()
- setImmediate :: Bool -> Socket a -> IO ()
- setIpv4Only :: Bool -> Socket a -> IO ()
- setIpv6 :: Bool -> Socket a -> IO ()
- setLinger :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setMaxMessageSize :: Integral i => Restricted (Nneg1, Int64) i -> Socket a -> IO ()
- setMcastHops :: Integral i => Restricted (N1, Int32) i -> Socket a -> IO ()
- setPlainServer :: Bool -> Socket a -> IO ()
- setPlainPassword :: Restricted (N1, N254) ByteString -> Socket a -> IO ()
- setPlainUserName :: Restricted (N1, N254) ByteString -> Socket a -> IO ()
- setProbeRouter :: SendProbe a => Bool -> Socket a -> IO ()
- setRate :: Integral i => Restricted (N1, Int32) i -> Socket a -> IO ()
- setReceiveBuffer :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setReceiveHighWM :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setReceiveTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setReconnectInterval :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setReconnectIntervalMax :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setRecoveryInterval :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setReqCorrelate :: Bool -> Socket Req -> IO ()
- setReqRelaxed :: Bool -> Socket Req -> IO ()
- setRouterMandatory :: Bool -> Socket Router -> IO ()
- setSendBuffer :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setSendHighWM :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO ()
- setSendTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setTcpAcceptFilter :: Maybe ByteString -> Socket a -> IO ()
- setTcpKeepAlive :: Switch -> Socket a -> IO ()
- setTcpKeepAliveCount :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setTcpKeepAliveIdle :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setTcpKeepAliveInterval :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO ()
- setXPubVerbose :: Bool -> Socket XPub -> IO ()
- setZapDomain :: Restricted (N1, N254) ByteString -> Socket a -> IO ()
- restrict :: Restriction r v => v -> Restricted r v
- toRestricted :: Restriction r v => v -> Maybe (Restricted r v)
- data ZMQError
- errno :: ZMQError -> Int
- source :: ZMQError -> String
- message :: ZMQError -> String
- init :: Size -> IO Context
- term :: Context -> IO ()
- shutdown :: Context -> IO ()
- context :: IO Context
- socket :: SocketType a => Context -> a -> IO (Socket a)
- close :: Socket a -> IO ()
- waitRead :: Socket a -> IO ()
- waitWrite :: Socket a -> IO ()
- z85Encode :: MonadIO m => Restricted Div4 ByteString -> m ByteString
- z85Decode :: MonadIO m => Restricted Div5 ByteString -> m ByteString
- proxy :: Socket a -> Socket b -> Maybe (Socket c) -> IO ()
- curveKeyPair :: MonadIO m => m (Restricted Div5 ByteString, Restricted Div5 ByteString)

# Type Definitions

## Socket Types

data Pair Source #

ZMQ_PAIR

Constructors

Pair |

#### Instances

Instances details

Generic Pair Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pair |
Instance details Defined in System.ZMQ4 type Rep Pair = D1 ('MetaData "Pair" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pair" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Pair -> Rep Pair x Source #

to :: Rep Pair x -> Pair Source #

Eq Pair Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pair -> Pair -> Bool Source # (/=) :: Pair -> Pair -> Bool Source #
Receiver Pair Source # |
Instance details Defined in System.ZMQ4
Sender Pair Source # |
Instance details Defined in System.ZMQ4
SocketType Pair Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pair -> ZMQSocketType Source #
type Rep Pair Source # |
Instance details Defined in System.ZMQ4 type Rep Pair = D1 ('MetaData "Pair" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pair" 'PrefixI 'False) (U1 :: Type -> Type))

data Pub Source #

ZMQ_PUB

Constructors

Pub |

#### Instances

Instances details

Generic Pub Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pub |
Instance details Defined in System.ZMQ4 type Rep Pub = D1 ('MetaData "Pub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pub" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Pub -> Rep Pub x Source #

to :: Rep Pub x -> Pub Source #

Eq Pub Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pub -> Pub -> Bool Source # (/=) :: Pub -> Pub -> Bool Source #
Conflatable Pub Source # |
Instance details Defined in System.ZMQ4
Sender Pub Source # |
Instance details Defined in System.ZMQ4
SocketType Pub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pub -> ZMQSocketType Source #
type Rep Pub Source # |
Instance details Defined in System.ZMQ4 type Rep Pub = D1 ('MetaData "Pub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pub" 'PrefixI 'False) (U1 :: Type -> Type))

data Sub Source #

ZMQ_SUB

Constructors

Sub |

#### Instances

Instances details

Generic Sub Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Sub |
Instance details Defined in System.ZMQ4 type Rep Sub = D1 ('MetaData "Sub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Sub" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Sub -> Rep Sub x Source #

to :: Rep Sub x -> Sub Source #

Eq Sub Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Sub -> Sub -> Bool Source # (/=) :: Sub -> Sub -> Bool Source #
Conflatable Sub Source # |
Instance details Defined in System.ZMQ4
Receiver Sub Source # |
Instance details Defined in System.ZMQ4
Subscriber Sub Source # |
Instance details Defined in System.ZMQ4
SocketType Sub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Sub -> ZMQSocketType Source #
type Rep Sub Source # |
Instance details Defined in System.ZMQ4 type Rep Sub = D1 ('MetaData "Sub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Sub" 'PrefixI 'False) (U1 :: Type -> Type))

data XPub Source #

ZMQ_XPUB

Constructors

XPub |

#### Instances

Instances details

Generic XPub Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep XPub |
Instance details Defined in System.ZMQ4 type Rep XPub = D1 ('MetaData "XPub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "XPub" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: XPub -> Rep XPub x Source #

to :: Rep XPub x -> XPub Source #

Eq XPub Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: XPub -> XPub -> Bool Source # (/=) :: XPub -> XPub -> Bool Source #
Receiver XPub Source # |
Instance details Defined in System.ZMQ4
Sender XPub Source # |
Instance details Defined in System.ZMQ4
SocketType XPub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XPub -> ZMQSocketType Source #
type Rep XPub Source # |
Instance details Defined in System.ZMQ4 type Rep XPub = D1 ('MetaData "XPub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "XPub" 'PrefixI 'False) (U1 :: Type -> Type))

data XSub Source #

ZMQ_XSUB

Constructors

XSub |

#### Instances

Instances details

Generic XSub Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep XSub |
Instance details Defined in System.ZMQ4 type Rep XSub = D1 ('MetaData "XSub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "XSub" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: XSub -> Rep XSub x Source #

to :: Rep XSub x -> XSub Source #

Eq XSub Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: XSub -> XSub -> Bool Source # (/=) :: XSub -> XSub -> Bool Source #
Receiver XSub Source # |
Instance details Defined in System.ZMQ4
Sender XSub Source # |
Instance details Defined in System.ZMQ4
SocketType XSub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XSub -> ZMQSocketType Source #
type Rep XSub Source # |
Instance details Defined in System.ZMQ4 type Rep XSub = D1 ('MetaData "XSub" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "XSub" 'PrefixI 'False) (U1 :: Type -> Type))

data Req Source #

ZMQ_REQ

Constructors

Req |

#### Instances

Instances details

Generic Req Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Req |
Instance details Defined in System.ZMQ4 type Rep Req = D1 ('MetaData "Req" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Req" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Req -> Rep Req x Source #

to :: Rep Req x -> Req Source #

Eq Req Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Req -> Req -> Bool Source # (/=) :: Req -> Req -> Bool Source #
Receiver Req Source # |
Instance details Defined in System.ZMQ4
SendProbe Req Source # |
Instance details Defined in System.ZMQ4
Sender Req Source # |
Instance details Defined in System.ZMQ4
SocketType Req Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Req -> ZMQSocketType Source #
type Rep Req Source # |
Instance details Defined in System.ZMQ4 type Rep Req = D1 ('MetaData "Req" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Req" 'PrefixI 'False) (U1 :: Type -> Type))

data Rep Source #

ZMQ_REP

Constructors

Rep |

#### Instances

Instances details

Generic Rep Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Rep |
Instance details Defined in System.ZMQ4 type Rep Rep = D1 ('MetaData "Rep" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Rep" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Rep -> Rep Rep x Source #

to :: Rep Rep x -> Rep Source #

Eq Rep Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Rep -> Rep -> Bool Source # (/=) :: Rep -> Rep -> Bool Source #
Receiver Rep Source # |
Instance details Defined in System.ZMQ4
Sender Rep Source # |
Instance details Defined in System.ZMQ4
SocketType Rep Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Rep -> ZMQSocketType Source #
type Rep Rep Source # |
Instance details Defined in System.ZMQ4 type Rep Rep = D1 ('MetaData "Rep" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Rep" 'PrefixI 'False) (U1 :: Type -> Type))

data Dealer Source #

ZMQ_DEALER

Constructors

Dealer |

#### Instances

Instances details

Generic Dealer Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Dealer |
Instance details Defined in System.ZMQ4 type Rep Dealer = D1 ('MetaData "Dealer" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Dealer" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Dealer -> Rep Dealer x Source #

to :: Rep Dealer x -> Dealer Source #

Eq Dealer Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Dealer -> Dealer -> Bool Source # (/=) :: Dealer -> Dealer -> Bool Source #
Conflatable Dealer Source # |
Instance details Defined in System.ZMQ4
Receiver Dealer Source # |
Instance details Defined in System.ZMQ4
SendProbe Dealer Source # |
Instance details Defined in System.ZMQ4
Sender Dealer Source # |
Instance details Defined in System.ZMQ4
SocketType Dealer Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Dealer -> ZMQSocketType Source #
type Rep Dealer Source # |
Instance details Defined in System.ZMQ4 type Rep Dealer = D1 ('MetaData "Dealer" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Dealer" 'PrefixI 'False) (U1 :: Type -> Type))

data Router Source #

ZMQ_ROUTER

Constructors

Router |

#### Instances

Instances details

Generic Router Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Router |
Instance details Defined in System.ZMQ4 type Rep Router = D1 ('MetaData "Router" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Router" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Router -> Rep Router x Source #

to :: Rep Router x -> Router Source #

Eq Router Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Router -> Router -> Bool Source # (/=) :: Router -> Router -> Bool Source #
Receiver Router Source # |
Instance details Defined in System.ZMQ4
SendProbe Router Source # |
Instance details Defined in System.ZMQ4
Sender Router Source # |
Instance details Defined in System.ZMQ4
SocketType Router Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Router -> ZMQSocketType Source #
type Rep Router Source # |
Instance details Defined in System.ZMQ4 type Rep Router = D1 ('MetaData "Router" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Router" 'PrefixI 'False) (U1 :: Type -> Type))

type XReq = Dealer Source #

Deprecated: Use Dealer

type XRep = Router Source #

Deprecated: Use Router

data Pull Source #

ZMQ_PULL

Constructors

Pull |

#### Instances

Instances details

Generic Pull Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Pull |
Instance details Defined in System.ZMQ4 type Rep Pull = D1 ('MetaData "Pull" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pull" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Pull -> Rep Pull x Source #

to :: Rep Pull x -> Pull Source #

Eq Pull Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pull -> Pull -> Bool Source # (/=) :: Pull -> Pull -> Bool Source #
Conflatable Pull Source # |
Instance details Defined in System.ZMQ4
Receiver Pull Source # |
Instance details Defined in System.ZMQ4
SocketType Pull Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pull -> ZMQSocketType Source #
type Rep Pull Source # |
Instance details Defined in System.ZMQ4 type Rep Pull = D1 ('MetaData "Pull" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Pull" 'PrefixI 'False) (U1 :: Type -> Type))

data Push Source #

ZMQ_PUSH

Constructors

Push |

#### Instances

Instances details

Generic Push Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Push |
Instance details Defined in System.ZMQ4 type Rep Push = D1 ('MetaData "Push" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Push" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Push -> Rep Push x Source #

to :: Rep Push x -> Push Source #

Eq Push Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Push -> Push -> Bool Source # (/=) :: Push -> Push -> Bool Source #
Conflatable Push Source # |
Instance details Defined in System.ZMQ4
Sender Push Source # |
Instance details Defined in System.ZMQ4
SocketType Push Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Push -> ZMQSocketType Source #
type Rep Push Source # |
Instance details Defined in System.ZMQ4 type Rep Push = D1 ('MetaData "Push" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Push" 'PrefixI 'False) (U1 :: Type -> Type))

data Stream Source #

ZMQ_STREAM

Constructors

Stream |

#### Instances

Instances details

Generic Stream Source # |

Instance details

Defined in System.ZMQ4

Associated Types

type Rep Stream |
Instance details Defined in System.ZMQ4 type Rep Stream = D1 ('MetaData "Stream" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Stream" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Stream -> Rep Stream x Source #

to :: Rep Stream x -> Stream Source #

Eq Stream Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Stream -> Stream -> Bool Source # (/=) :: Stream -> Stream -> Bool Source #
Receiver Stream Source # |
Instance details Defined in System.ZMQ4
Sender Stream Source # |
Instance details Defined in System.ZMQ4
SocketType Stream Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Stream -> ZMQSocketType Source #
type Rep Stream Source # |
Instance details Defined in System.ZMQ4 type Rep Stream = D1 ('MetaData "Stream" "System.ZMQ4" "zeromq4-haskell-0.8.0-9TA86NO6k841oWdJZTSR1" 'False) (C1 ('MetaCons "Stream" 'PrefixI 'False) (U1 :: Type -> Type))

## Socket type-classes

class SocketType a Source #

Socket types.

Minimal complete definition

zmqSocketType

#### Instances

Instances details

SocketType Dealer Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Dealer -> ZMQSocketType Source #
SocketType Pair Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pair -> ZMQSocketType Source #
SocketType Pub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pub -> ZMQSocketType Source #
SocketType Pull Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pull -> ZMQSocketType Source #
SocketType Push Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Push -> ZMQSocketType Source #
SocketType Rep Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Rep -> ZMQSocketType Source #
SocketType Req Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Req -> ZMQSocketType Source #
SocketType Router Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Router -> ZMQSocketType Source #
SocketType Stream Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Stream -> ZMQSocketType Source #
SocketType Sub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Sub -> ZMQSocketType Source #
SocketType XPub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XPub -> ZMQSocketType Source #
SocketType XSub Source # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XSub -> ZMQSocketType Source #

class Sender a Source #

Sockets which can `send`.

#### Instances

Instances details

Sender Dealer Source # |
Instance details Defined in System.ZMQ4
Sender Pair Source # |
Instance details Defined in System.ZMQ4
Sender Pub Source # |
Instance details Defined in System.ZMQ4
Sender Push Source # |
Instance details Defined in System.ZMQ4
Sender Rep Source # |
Instance details Defined in System.ZMQ4
Sender Req Source # |
Instance details Defined in System.ZMQ4
Sender Router Source # |
Instance details Defined in System.ZMQ4
Sender Stream Source # |
Instance details Defined in System.ZMQ4
Sender XPub Source # |
Instance details Defined in System.ZMQ4
Sender XSub Source # |
Instance details Defined in System.ZMQ4

class Receiver a Source #

Sockets which can `receive`.

#### Instances

Instances details

Receiver Dealer Source # |
Instance details Defined in System.ZMQ4
Receiver Pair Source # |
Instance details Defined in System.ZMQ4
Receiver Pull Source # |
Instance details Defined in System.ZMQ4
Receiver Rep Source # |
Instance details Defined in System.ZMQ4
Receiver Req Source # |
Instance details Defined in System.ZMQ4
Receiver Router Source # |
Instance details Defined in System.ZMQ4
Receiver Stream Source # |
Instance details Defined in System.ZMQ4
Receiver Sub Source # |
Instance details Defined in System.ZMQ4
Receiver XPub Source # |
Instance details Defined in System.ZMQ4
Receiver XSub Source # |
Instance details Defined in System.ZMQ4

class Subscriber a Source #

Sockets which can `subscribe`.

#### Instances

Instances details

Subscriber Sub Source # |
Instance details Defined in System.ZMQ4

class SocketLike (s :: Type -> Type) Source #

Minimal complete definition

toSocket

#### Instances

Instances details

SocketLike Socket Source # |
Instance details Defined in System.ZMQ4.Internal Methods toSocket :: Socket t -> Socket t Source #
SocketLike (Socket z) Source # |
Instance details Defined in System.ZMQ4.Monadic Methods toSocket :: Socket z t -> Socket t Source #

class Conflatable a Source #

Sockets which can be `conflate`d.

#### Instances

Instances details

Conflatable Dealer Source # |
Instance details Defined in System.ZMQ4
Conflatable Pub Source # |
Instance details Defined in System.ZMQ4
Conflatable Pull Source # |
Instance details Defined in System.ZMQ4
Conflatable Push Source # |
Instance details Defined in System.ZMQ4
Conflatable Sub Source # |
Instance details Defined in System.ZMQ4

class SendProbe a Source #

Sockets which can send probes (cf. `setProbeRouter`).

#### Instances

Instances details

SendProbe Dealer Source # |
Instance details Defined in System.ZMQ4
SendProbe Req Source # |
Instance details Defined in System.ZMQ4
SendProbe Router Source # |
Instance details Defined in System.ZMQ4

## Various type definitions

type Size = Word Source #

data Context Source #

A 0MQ context representation.

data Socket a Source #

A 0MQ Socket.

#### Instances

Instances details

SocketLike Socket Source # |
Instance details Defined in System.ZMQ4.Internal Methods toSocket :: Socket t -> Socket t Source #

data Flag Source #

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

Constructors

DontWait | ZMQ_DONTWAIT (Only relevant on Windows.)
SendMore | ZMQ_SNDMORE

#### Instances

Instances details

Show Flag Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> Flag -> ShowS Source # show :: Flag -> String Source # showList :: [Flag] -> ShowS Source #
Eq Flag Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: Flag -> Flag -> Bool Source # (/=) :: Flag -> Flag -> Bool Source #
Ord Flag Source # |
Instance details Defined in System.ZMQ4.Internal Methods compare :: Flag -> Flag -> Ordering Source # (<) :: Flag -> Flag -> Bool Source # (<=) :: Flag -> Flag -> Bool Source # (>) :: Flag -> Flag -> Bool Source # (>=) :: Flag -> Flag -> Bool Source # max :: Flag -> Flag -> Flag Source # min :: Flag -> Flag -> Flag Source #

data Switch Source #

Configuration switch

Constructors

Default | Use default setting
On | Activate setting
Off | De-activate setting

#### Instances

Instances details

Show Switch Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> Switch -> ShowS Source # show :: Switch -> String Source # showList :: [Switch] -> ShowS Source #
Eq Switch Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: Switch -> Switch -> Bool Source # (/=) :: Switch -> Switch -> Bool Source #
Ord Switch Source # |
Instance details Defined in System.ZMQ4.Internal Methods compare :: Switch -> Switch -> Ordering Source # (<) :: Switch -> Switch -> Bool Source # (<=) :: Switch -> Switch -> Bool Source # (>) :: Switch -> Switch -> Bool Source # (>=) :: Switch -> Switch -> Bool Source # max :: Switch -> Switch -> Switch Source # min :: Switch -> Switch -> Switch Source #

type Timeout = Int64 Source #

data Event Source #

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

Read Event Source # |
Instance details Defined in System.ZMQ4 Methods readsPrec :: Int -> ReadS Event Source # readList :: ReadS [Event] Source # readPrec :: ReadPrec Event Source # readListPrec :: ReadPrec [Event] Source #
Show Event Source # |
Instance details Defined in System.ZMQ4 Methods showsPrec :: Int -> Event -> ShowS Source # show :: Event -> String Source # showList :: [Event] -> ShowS Source #
Eq Event Source # |
Instance details Defined in System.ZMQ4 Methods (==) :: Event -> Event -> Bool Source # (/=) :: Event -> Event -> Bool Source #
Ord Event Source # |
Instance details Defined in System.ZMQ4 Methods compare :: Event -> Event -> Ordering Source # (<) :: Event -> Event -> Bool Source # (<=) :: Event -> Event -> Bool Source # (>) :: Event -> Event -> Bool Source # (>=) :: Event -> Event -> Bool Source # max :: Event -> Event -> Event Source # min :: Event -> Event -> Event Source #

data EventType Source #

Event types to monitor.

Constructors

ConnectedEvent |
ConnectDelayedEvent |
ConnectRetriedEvent |
ListeningEvent |
BindFailedEvent |
AcceptedEvent |
AcceptFailedEvent |
ClosedEvent |
CloseFailedEvent |
DisconnectedEvent |
MonitorStoppedEvent |
AllEvents |

#### Instances

Instances details

Show EventType Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> EventType -> ShowS Source # show :: EventType -> String Source # showList :: [EventType] -> ShowS Source #
Eq EventType Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: EventType -> EventType -> Bool Source # (/=) :: EventType -> EventType -> Bool Source #
Ord EventType Source # |

Instance details

Defined in System.ZMQ4.Internal

Methods

compare :: EventType -> EventType -> Ordering Source #

(<) :: EventType -> EventType -> Bool Source #

(<=) :: EventType -> EventType -> Bool Source #

(>) :: EventType -> EventType -> Bool Source #

(>=) :: EventType -> EventType -> Bool Source #

max :: EventType -> EventType -> EventType Source #

min :: EventType -> EventType -> EventType Source #

data EventMsg Source #

Event Message to receive when monitoring socket events.

Constructors

Connected !ByteString !Fd |
ConnectDelayed !ByteString |
ConnectRetried !ByteString !Int |
Listening !ByteString !Fd |
BindFailed !ByteString !Int |
Accepted !ByteString !Fd |
AcceptFailed !ByteString !Int |
Closed !ByteString !Fd |
CloseFailed !ByteString !Int |
Disconnected !ByteString !Fd |
MonitorStopped !ByteString !Int |

#### Instances

Instances details

Show EventMsg Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> EventMsg -> ShowS Source # show :: EventMsg -> String Source # showList :: [EventMsg] -> ShowS Source #
Eq EventMsg Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: EventMsg -> EventMsg -> Bool Source # (/=) :: EventMsg -> EventMsg -> Bool Source #

data Poll (s :: Type -> Type) (m :: Type -> Type) where Source #

A `Poll` value contains the object to poll (a 0MQ socket or a file descriptor), the set of `Event`s 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 :: forall (s :: Type -> Type) t (m :: Type -> Type). s t -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m |
File :: forall (m :: Type -> Type) (s :: Type -> Type). Fd -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m |

data KeyFormat a where Source #

Constructors

BinaryFormat :: KeyFormat Div4 |
TextFormat :: KeyFormat Div5 |

#### Instances

Instances details

Show (KeyFormat a) Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> KeyFormat a -> ShowS Source # show :: KeyFormat a -> String Source # showList :: [KeyFormat a] -> ShowS Source #
Eq (KeyFormat a) Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: KeyFormat a -> KeyFormat a -> Bool Source # (/=) :: KeyFormat a -> KeyFormat a -> Bool Source #

data SecurityMechanism Source #

Constructors

Null |
Plain |
Curve |

#### Instances

Instances details

Show SecurityMechanism Source # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> SecurityMechanism -> ShowS Source # show :: SecurityMechanism -> String Source # showList :: [SecurityMechanism] -> ShowS Source #
Eq SecurityMechanism Source # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: SecurityMechanism -> SecurityMechanism -> Bool Source # (/=) :: SecurityMechanism -> SecurityMechanism -> Bool Source #

# General Operations

withContext :: (Context -> IO a) -> IO a Source #

Run an action with a 0MQ context. The `Context` supplied to your action will not be valid after the action either returns or throws an exception.

withSocket :: SocketType a => Context -> a -> (Socket a -> IO b) -> IO b Source #

Run an action with a 0MQ socket. The socket will be closed after running the supplied action even if an error occurs. The socket supplied to your action will not be valid after the action terminates.

bind :: Socket a -> String -> IO () Source #

Bind the socket to the given address (cf. zmq_bind).

unbind :: Socket a -> String -> IO () Source #

Unbind the socket from the given address (cf. zmq_unbind).

connect :: Socket a -> String -> IO () Source #

Connect the socket to the given address (cf. zmq_connect).

disconnect :: Socket a -> String -> IO () Source #

Disconnect the socket from the given endpoint (cf. zmq_disconnect).

send :: Sender a => Socket a -> [Flag] -> ByteString -> IO () Source #

Send the given `ByteString` over the socket (cf. zmq_sendmsg).

Note: This function always calls `zmq_sendmsg` in a non-blocking way, i.e. there is no need to provide the `ZMQ_DONTWAIT` flag as this is used by default. Still `send` is blocking the thread as long as the message can not be queued on the socket using GHC's `threadWaitWrite`.

send' :: Sender a => Socket a -> [Flag] -> ByteString -> IO () Source #

Send the given `ByteString` over the socket (cf. zmq_sendmsg).

This is operationally identical to `send socket (Strict.concat (Lazy.toChunks lbs)) flags` but may be more efficient.

Note: This function always calls `zmq_sendmsg` in a non-blocking way, i.e. there is no need to provide the `ZMQ_DONTWAIT` flag as this is used by default. Still `send'` is blocking the thread as long as the message can not be queued on the socket using GHC's `threadWaitWrite`.

sendMulti :: Sender a => Socket a -> NonEmpty ByteString -> IO () Source #

Send a multi-part message. This function applies the `SendMore` `Flag` between all message parts. 0MQ guarantees atomic delivery of a multi-part message (cf. zmq_sendmsg).

receive :: Receiver a => Socket a -> IO ByteString Source #

Receive a `ByteString` from socket (cf. zmq_recvmsg).

Note: This function always calls `zmq_recvmsg` in a non-blocking way, i.e. there is no need to provide the `ZMQ_DONTWAIT` flag as this is used by default. Still `receive` is blocking the thread as long as no data is available using GHC's `threadWaitRead`.

receiveMulti :: Receiver a => Socket a -> IO [ByteString] Source #

Receive a multi-part message. This function collects all message parts send via `sendMulti`.

version :: IO (Int, Int, Int) Source #

Return the runtime version of the underlying 0MQ library as a (major, minor, patch) triple.

monitor :: [EventType] -> Context -> Socket a -> IO (Bool -> IO (Maybe EventMsg)) Source #

Monitor socket events (cf. zmq_socket_monitor).

This function returns a function which can be invoked to retrieve the next socket event, potentially blocking until the next one becomes available. When applied to `False`, monitoring will terminate, i.e. internal monitoring resources will be disposed. Consequently after `monitor` has been invoked, the returned function must be applied once to `False`.

socketMonitor :: [EventType] -> String -> Socket a -> IO () Source #

Setup socket monitoring, i.e. a `Pair` socket which sends monitoring events about the given `Socket` to the given address.

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

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

subscribe :: Subscriber a => Socket a -> ByteString -> IO () Source #

Subscribe Socket to given subscription.

unsubscribe :: Subscriber a => Socket a -> ByteString -> IO () Source #

Unsubscribe Socket from given subscription.

# Context Options (Read)

ioThreads :: Context -> IO Word Source #

zmq_ctx_get ZMQ_IO_THREADS.

maxSockets :: Context -> IO Word Source #

zmq_ctx_get ZMQ_MAX_SOCKETS.

# Context Options (Write)

setIoThreads :: Word -> Context -> IO () Source #

zmq_ctx_get ZMQ_IO_THREADS.

setMaxSockets :: Word -> Context -> IO () Source #

zmq_ctx_get ZMQ_MAX_SOCKETS.

# Socket Options (Read)

affinity :: Socket a -> IO Word64 Source #

zmq_getsockopt ZMQ_AFFINITY.

backlog :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_BACKLOG.

conflate :: Conflatable a => Socket a -> IO Bool Source #

Restricts the outgoing and incoming socket buffers to a single message.

curvePublicKey :: KeyFormat f -> Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_CURVE_PUBLICKEY.

curveSecretKey :: KeyFormat f -> Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_CURVE_SECRETKEY.

curveServerKey :: KeyFormat f -> Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_CURVE_SERVERKEY.

delayAttachOnConnect :: Socket a -> IO Bool Source #

Deprecated: Use immediate

events :: Socket a -> IO [Event] Source #

zmq_getsockopt ZMQ_EVENTS.

fileDescriptor :: Socket a -> IO Fd Source #

zmq_getsockopt ZMQ_FD.

identity :: Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_IDENTITY.

immediate :: Socket a -> IO Bool Source #

zmq_getsockopt ZMQ_IMMEDIATE.

ipv4Only :: Socket a -> IO Bool Source #

Deprecated: Use ipv6

ipv6 :: Socket a -> IO Bool Source #

zmq_getsockopt ZMQ_IPV6.

lastEndpoint :: Socket a -> IO String Source #

zmq_getsockopt ZMQ_LAST_ENDPOINT.

linger :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_LINGER.

maxMessageSize :: Socket a -> IO Int64 Source #

zmq_getsockopt ZMQ_MAXMSGSIZE.

mcastHops :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_MULTICAST_HOPS.

mechanism :: Socket a -> IO SecurityMechanism Source #

zmq_getsockopt ZMQ_MECHANISM.

moreToReceive :: Socket a -> IO Bool Source #

zmq_getsockopt ZMQ_RCVMORE.

plainServer :: Socket a -> IO Bool Source #

zmq_getsockopt ZMQ_PLAIN_SERVER.

plainPassword :: Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_PLAIN_PASSWORD.

plainUserName :: Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_PLAIN_USERNAME.

rate :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RATE.

receiveBuffer :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RCVBUF.

receiveHighWM :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RCVHWM.

receiveTimeout :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RCVTIMEO.

reconnectInterval :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RECONNECT_IVL.

reconnectIntervalMax :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RECONNECT_IVL_MAX.

recoveryInterval :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_RECOVERY_IVL.

sendBuffer :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_SNDBUF.

sendHighWM :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_SNDHWM.

sendTimeout :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_SNDTIMEO.

tcpKeepAlive :: Socket a -> IO Switch Source #

zmq_getsockopt ZMQ_TCP_KEEPALIVE.

tcpKeepAliveCount :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_TCP_KEEPALIVE_CNT.

tcpKeepAliveIdle :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_TCP_KEEPALIVE_IDLE.

tcpKeepAliveInterval :: Socket a -> IO Int Source #

zmq_getsockopt ZMQ_TCP_KEEPALIVE_INTVL.

zapDomain :: Socket a -> IO ByteString Source #

zmq_getsockopt ZMQ_ZAP_DOMAIN.

# Socket Options (Write)

setAffinity :: Word64 -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_AFFINITY.

setBacklog :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_BACKLOG.

setConflate :: Conflatable a => Bool -> Socket a -> IO () Source #

Restrict the outgoing and incoming socket buffers to a single message.

setCurveServer :: Bool -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_CURVE_SERVER.

setCurvePublicKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_CURVE_PUBLICKEY.

setCurveSecretKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_CURVE_SECRETKEY.

setCurveServerKey :: KeyFormat f -> Restricted f ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_CURVE_SERVERKEY.

setDelayAttachOnConnect :: Bool -> Socket a -> IO () Source #

Deprecated: Use setImmediate

setIdentity :: Restricted (N1, N254) ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_IDENTITY.

setImmediate :: Bool -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_IMMEDIATE.

setIpv4Only :: Bool -> Socket a -> IO () Source #

Deprecated: Use setIpv6

setIpv6 :: Bool -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_IPV6.

setLinger :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_LINGER.

setMaxMessageSize :: Integral i => Restricted (Nneg1, Int64) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_MAXMSGSIZE.

setMcastHops :: Integral i => Restricted (N1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_MULTICAST_HOPS.

setPlainServer :: Bool -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_PLAIN_SERVER.

setPlainPassword :: Restricted (N1, N254) ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_PLAIN_USERNAME.

setPlainUserName :: Restricted (N1, N254) ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_PLAIN_USERNAME.

setProbeRouter :: SendProbe a => Bool -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_PROBE_ROUTER.

setRate :: Integral i => Restricted (N1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RATE.

setReceiveBuffer :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RCVBUF.

setReceiveHighWM :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RCVHWM.

setReceiveTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RCVTIMEO.

setReconnectInterval :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RECONNECT_IVL.

setReconnectIntervalMax :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RECONNECT_IVL_MAX.

setRecoveryInterval :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_RECOVERY_IVL.

setReqCorrelate :: Bool -> Socket Req -> IO () Source #

zmq_setsockopt ZMQ_REQ_CORRELATE.

setReqRelaxed :: Bool -> Socket Req -> IO () Source #

zmq_setsockopt ZMQ_REQ_RELAXED.

setRouterMandatory :: Bool -> Socket Router -> IO () Source #

zmq_setsockopt ZMQ_ROUTER_MANDATORY.

setSendBuffer :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_SNDBUF.

setSendHighWM :: Integral i => Restricted (N0, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_SNDHWM.

setSendTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_SNDTIMEO.

setTcpAcceptFilter :: Maybe ByteString -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_TCP_ACCEPT_FILTER.

setTcpKeepAlive :: Switch -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_TCP_KEEPALIVE.

setTcpKeepAliveCount :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_TCP_KEEPALIVE_CNT.

setTcpKeepAliveIdle :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_TCP_KEEPALIVE_IDLE.

setTcpKeepAliveInterval :: Integral i => Restricted (Nneg1, Int32) i -> Socket a -> IO () Source #

zmq_setsockopt ZMQ_TCP_KEEPALIVE_INTVL.

setXPubVerbose :: Bool -> Socket XPub -> IO () Source #

zmq_setsockopt ZMQ_XPUB_VERBOSE.

setZapDomain :: Restricted (N1, N254) ByteString -> Socket a -> IO () Source #

zmq_getsockopt ZMQ_ZAP_DOMAIN.

# Restrictions

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

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) Source #

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

# Error Handling

data ZMQError Source #

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

#### Instances

Instances details

Exception ZMQError Source # |
Instance details Defined in System.ZMQ4.Internal.Error Methods toException :: ZMQError -> SomeException Source # fromException :: SomeException -> Maybe ZMQError Source # displayException :: ZMQError -> String Source # backtraceDesired :: ZMQError -> Bool Source #
Show ZMQError Source # |
Instance details Defined in System.ZMQ4.Internal.Error Methods showsPrec :: Int -> ZMQError -> ShowS Source # show :: ZMQError -> String Source # showList :: [ZMQError] -> ShowS Source #
Eq ZMQError Source # |
Instance details Defined in System.ZMQ4.Internal.Error Methods (==) :: ZMQError -> ZMQError -> Bool Source # (/=) :: ZMQError -> ZMQError -> Bool Source #
Ord ZMQError Source # |
Instance details Defined in System.ZMQ4.Internal.Error Methods compare :: ZMQError -> ZMQError -> Ordering Source # (<) :: ZMQError -> ZMQError -> Bool Source # (<=) :: ZMQError -> ZMQError -> Bool Source # (>) :: ZMQError -> ZMQError -> Bool Source # (>=) :: ZMQError -> ZMQError -> Bool Source # max :: ZMQError -> ZMQError -> ZMQError Source # min :: ZMQError -> ZMQError -> ZMQError Source #

errno :: ZMQError -> Int Source #

Error number value.

source :: ZMQError -> String Source #

Source where this error originates from.

message :: ZMQError -> String Source #

Actual error message.

# Low-level Functions

init :: Size -> IO Context Source #

Deprecated: Use context

term :: Context -> IO () Source #

Terminate a 0MQ context. Equivalent to zmq_ctx_term.

shutdown :: Context -> IO () Source #

Shutdown a 0MQ context. Equivalent to zmq_ctx_shutdown.

context :: IO Context Source #

Initialize a 0MQ context. Equivalent to zmq_ctx_new.

socket :: SocketType a => Context -> a -> IO (Socket a) Source #

Create a new 0MQ socket within the given context. `withSocket` provides automatic socket closing and may be safer to use.

close :: Socket a -> IO () Source #

Close a 0MQ socket. `withSocket` provides automatic socket closing and may be safer to use.

waitRead :: Socket a -> IO () Source #

Wait until data is available for reading from the given Socket. After this function returns, a call to `receive` will essentially be non-blocking.

waitWrite :: Socket a -> IO () Source #

Wait until data can be written to the given Socket. After this function returns, a call to `send` will essentially be non-blocking.

z85Encode :: MonadIO m => Restricted Div4 ByteString -> m ByteString Source #

z85Decode :: MonadIO m => Restricted Div5 ByteString -> m ByteString Source #

# Utils

proxy :: Socket a -> Socket b -> Maybe (Socket c) -> IO () Source #

Starts built-in 0MQ proxy (cf. zmq_proxy)

Proxy connects front to back socket

Before calling proxy all sockets should be bound

If the capture socket is not Nothing, the proxy shall send all messages, received on both frontend and backend, to the capture socket.

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

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