network-transport-zeromq-0.2.1: ZeroMQ backend for network-transport

Copyright(C) 2014 EURL Tweag
Safe HaskellNone
LanguageHaskell2010

Network.Transport.ZMQ.Internal.Types

Contents

Description

 

Synopsis

Documentation

data ZMQParameters

Parameters for ZeroMQ connection.

Constructors

ZMQParameters 

data SecurityMechanism

A ZeroMQ "security mechanism".

Constructors

SecurityPlain

Clear-text authentication, using a (username, password) pair.

Fields

plainPassword :: ByteString
 
plainUsername :: ByteString
 

Internal types

data TransportInternals

Transport data type.

Constructors

TransportInternals 

Fields

transportAddress :: !TransportAddress

Transport address (used as identifier).

transportState :: !(MVar TransportState)

Internal state.

transportParameters :: !ZMQParameters

Parameters that were used to create the transport.

data TransportState

Transport state.

Constructors

TransportValid !ValidTransportState

Transport is in active state.

TransportClosed

Transport is closed.

mkTransportState :: Context -> Maybe (Async ()) -> IO TransportState

ValidTransportState

data ValidTransportState

Transport state.

transportEndPoints :: Accessor ValidTransportState (Map EndPointAddress LocalEndPoint)

transportEndPointAt :: EndPointAddress -> Accessor ValidTransportState (Maybe LocalEndPoint)

transportAuth :: Accessor ValidTransportState (Maybe (Async ()))

transportSockets :: Accessor ValidTransportState (IORef (IntMap (IO ())))

RemoteEndPoint

data RemoteEndPoint

Constructors

RemoteEndPoint 

Fields

remoteEndPointAddress :: !EndPointAddress
 
remoteEndPointState :: !(MVar RemoteEndPointState)
 
remoteEndPointOpened :: !(IORef Bool)
 

data ClosingRemoteEndPoint

Constructors

ClosingRemoteEndPoint 

Fields

_remoteEndPointClosingSocket :: !(Socket Push)
 
_remoteEndPointDone :: !(MVar ())
 

LocalEndPoint

data LocalEndPoint

Constructors

LocalEndPoint 

Fields

localEndPointAddress :: !EndPointAddress
 
localEndPointState :: !(MVar LocalEndPointState)
 
localEndPointPort :: !Int
 

data ValidLocalEndPoint

Constructors

ValidLocalEndPoint 

Fields

localEndPointChan :: !(TMChan Event)

channel for n-t - user communication

_localEndPointConnections :: !(Counter ConnectionId ZMQConnection)

list of incomming connections

_localEndPointRemotes :: !(Map EndPointAddress RemoteEndPoint)

list of remote end points

localEndPointThread :: !(Async ())

thread id

localEndPointOpened :: !(IORef Bool)

is remote endpoint opened

_localEndPointMulticastGroups :: !(Map MulticastAddress ZMQMulticastGroup)

list of multicast nodes

localEndPointConnectionAt :: ConnectionId -> Accessor ValidLocalEndPoint (Maybe ZMQConnection)

localEndPointRemotes :: Accessor ValidLocalEndPoint (Map EndPointAddress RemoteEndPoint)

localEndPointRemoteAt :: EndPointAddress -> Accessor ValidLocalEndPoint (Maybe RemoteEndPoint)

ZeroMQ connection

data ValidZMQConnection

Constructors

ValidZMQConnection 

Fields

_connectionSocket :: !(Maybe (Socket Push))
 
_connectionId :: !Word64
 

ZeroMQ multicast

ZeroMQ specific types

data Hints

A list of Hints provided for connection

Constructors

Hints 

Fields

hintsPort :: Maybe Int

The port to bind.

hintsControlPort :: Maybe Int

The port that is used to receive multicast messages.

Internal data structures

data Counter a b

Constructors

Counter 

Fields

_counterNext :: !a
 
_counterValue :: !(Map a b)
 

counterNextId :: Accessor (Counter a b) a

counterValues :: Accessor (Counter a b) (Map a b)

counterValueAt :: Ord a => a -> Accessor (Counter a b) (Maybe b)

nextElement :: (Enum a, Ord a) => (b -> IO Bool) -> b -> Counter a b -> IO (Counter a b, (a, b))

nextElement' :: (Enum a, Ord a) => (b -> IO Bool) -> (a -> b) -> Counter a b -> IO (Counter a b, (a, b))

nextElementM :: (Enum a, Ord a) => (b -> IO Bool) -> (a -> IO b) -> Counter a b -> IO (Counter a b, (a, b))

nextElementM' :: (Enum a, Ord a) => (b -> IO Bool) -> (a -> IO (b, c)) -> Counter a b -> IO (Counter a b, (a, c))