relay
Safe HaskellNone
LanguageGHC2024

Relay.Buffer

Description

 
Synopsis

Documentation

newtype Buffer a Source #

A reorder buffer: one ReceiverHalf per session.

Constructors

Buffer (Map SessionId (ReceiverHalf a)) 

Instances

Instances details
Eq a => Eq (Buffer a) Source # 
Instance details

Defined in Relay.Buffer

Methods

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

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

Show a => Show (Buffer a) Source # 
Instance details

Defined in Relay.Buffer

Methods

showsPrec :: Int -> Buffer a -> ShowS #

show :: Buffer a -> String #

showList :: [Buffer a] -> ShowS #

emptyBuffer :: Buffer a Source #

An empty buffer with no sessions.

deliver :: SessionId -> Nat -> a -> Buffer a -> (Buffer a, [a]) Source #

Route a frame to the correct ReceiverHalf, inserting emptyReceiver on first contact with a new session.