ouroboros-network:framework
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.Protocol.Handshake.Codec

Synopsis

Documentation

codecHandshake Source #

Arguments

:: forall vNumber (m :: Type -> Type) failure. (MonadST m, Ord vNumber, Show failure) 
=> CodecCBORTerm (failure, Maybe Int) vNumber

Term codec for vNumber

-> Codec (Handshake vNumber Term) DeserialiseFailure m ByteString 

Handshake codec. The MsgProposeVersions encodes proposed map in ascending order and it expects to receive them in this order. The whole MsgProposeVersions message must fit into a single TCP segment which limits number of versions that can be proposed.

byteLimitsHandshake :: forall {k} (vNumber :: k). ProtocolSizeLimits (Handshake vNumber Term) ByteString Source #

Byte limits

timeLimitsHandshake :: forall {k} (vNumber :: k). ProtocolTimeLimits (Handshake vNumber Term) Source #

Time limits.

Handshake statetimeout (s)
StProposeshortWait
StConfirmshortWait

noTimeLimitsHandshake :: forall {k} (vNumber :: k). ProtocolTimeLimits (Handshake vNumber Term) Source #

encodeRefuseReason :: CodecCBORTerm fail vNumber -> RefuseReason vNumber -> Encoding Source #

decodeRefuseReason :: Show failure => CodecCBORTerm (failure, Maybe Int) vNumber -> Decoder s (RefuseReason vNumber) Source #

Version data codec

type VersionDataCodec versionNumber versionData = VersionedCodecCBORTerm Text versionNumber versionData #

data VersionedCodecCBORTerm fail v a #

Constructors

VersionedCodecCBORTerm 

Fields

Bundled Patterns

pattern VersionDataCodec :: (v -> a -> Term) -> (v -> Term -> Either Text a) -> VersionDataCodec v a 

mkVersionedCodecCBORTerm :: (vNumber -> CodecCBORTerm fail vData) -> VersionedCodecCBORTerm fail vNumber vData #