network-transport-zeromq-0.2.1.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.

ValidTransportState

data ValidTransportState

Transport state.

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

RemoteEndPoint

LocalEndPoint

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

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)
 

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