Safe Haskell | None |
---|---|
Language | Haskell2010 |
Network.Mux.Bearer
Synopsis
- data Bearer (m :: Type -> Type) = Bearer (Tracer m BearerTrace -> TimeoutFn m -> SDU -> m Time) (Tracer m BearerTrace -> TimeoutFn m -> [SDU] -> m Time) (Tracer m BearerTrace -> TimeoutFn m -> m (SDU, Time)) SDUSize Int String DiffTime
- type MakeBearerCb (m :: Type -> Type) fd = DiffTime -> fd -> Maybe (ReadBuffer m) -> m (Bearer m)
- newtype MakeBearer (m :: Type -> Type) fd = MakeBearer {
- getBearer :: MakeBearerCb m fd
- data BearerTrace
- = TraceRecvHeaderStart
- | TraceRecvHeaderEnd SDUHeader
- | TraceRecvDeltaQObservation SDUHeader Time
- | TraceRecvDeltaQSample Double Int Int Double Double Double Double String
- | TraceEmitDeltaQ
- | TraceRecvRaw Int
- | TraceRecvStart Int
- | TraceRecvEnd Int
- | TraceSendStart SDUHeader
- | TraceSendEnd
- | TraceSDUReadTimeoutException
- | TraceSDUWriteTimeoutException
- | TraceTCPInfo StructTCPInfo Word16
- makeSocketBearer :: MakeBearer IO Socket
- makeSocketBearer' :: DiffTime -> MakeBearer IO Socket
- makePipeChannelBearer :: MakeBearer IO PipeChannel
- makeQueueChannelBearer :: forall (m :: Type -> Type). (MonadSTM m, MonadMonotonicTime m, MonadThrow m) => MakeBearer m (QueueChannel m)
- withReadBufferIO :: (Maybe (ReadBuffer IO) -> IO b) -> IO b
Documentation
data Bearer (m :: Type -> Type) Source #
Low level access to underlying socket or pipe. There are three smart constructors:
socketAsBearer
pipeAsBearer
Test.Mux.queuesAsBearer
type MakeBearerCb (m :: Type -> Type) fd Source #
Arguments
= DiffTime | Timeout for reading an SDU segment, if negative no timeout is applied. The timeout is not applied to the first SDU segment received from the network, which allows a mini-protocol to have longer timeouts than the one given here (or even have no timeout). NOTE: a mini-protocol timeouts (which are not responsibility of `network-mux` library) might include the time waiting for the response, receiving all bytes, and the time required to parse the message. |
-> fd | file descriptor |
-> Maybe (ReadBuffer m) | optional |
-> m (Bearer m) |
Callback which constructs a bearer, see MakeBearer
.
newtype MakeBearer (m :: Type -> Type) fd Source #
Construct a bearer using a MakeBearerCb
.
Constructors
MakeBearer | |
Fields
|
data BearerTrace Source #
Low-level bearer trace tags (these are not traced by the tracer which is passed to Mux).
Constructors
Instances
Show BearerTrace Source # | |
Defined in Network.Mux.Types Methods showsPrec :: Int -> BearerTrace -> ShowS # show :: BearerTrace -> String # showList :: [BearerTrace] -> ShowS # |
makeSocketBearer :: MakeBearer IO Socket Source #
Socket
Bearer without egress interval.
Arguments
:: DiffTime | egress interval |
-> MakeBearer IO Socket |
makeQueueChannelBearer :: forall (m :: Type -> Type). (MonadSTM m, MonadMonotonicTime m, MonadThrow m) => MakeBearer m (QueueChannel m) Source #
withReadBufferIO :: (Maybe (ReadBuffer IO) -> IO b) -> IO b Source #