{-# LANGUAGE NamedFieldPuns #-}
module DMQ.NodeToClient
( LocalAddress (..)
, module DMQ.NodeToClient.Version
, Protocols (..)
, HandshakeTr
, ntcHandshakeArguments
) where
import Control.Monad.Class.MonadST (MonadST)
import Control.Tracer (Tracer, nullTracer)
import Codec.CBOR.Term qualified as CBOR
import Network.Mux qualified as Mx
import Ouroboros.Network.ConnectionId (ConnectionId)
import Ouroboros.Network.Driver.Simple (TraceSendRecv)
import Ouroboros.Network.Handshake.Acceptable (Acceptable (..))
import Ouroboros.Network.Handshake.Queryable (Queryable (..))
import Ouroboros.Network.Protocol.Handshake (Handshake, HandshakeArguments (..))
import Ouroboros.Network.Protocol.Handshake.Codec (cborTermVersionDataCodec,
codecHandshake, noTimeLimitsHandshake)
import Ouroboros.Network.Snocket (LocalAddress (..))
import DMQ.NodeToClient.Version
data Protocols =
Protocols {
}
type HandshakeTr ntcAddr = Mx.WithBearer (ConnectionId ntcAddr) (TraceSendRecv (Handshake NodeToClientVersion CBOR.Term))
ntcHandshakeArguments
:: MonadST m
=> Tracer m (HandshakeTr ntcAddr)
-> HandshakeArguments
(ConnectionId ntcAddr)
NodeToClientVersion
NodeToClientVersionData
m
ntcHandshakeArguments :: forall (m :: * -> *) ntcAddr.
MonadST m =>
Tracer m (HandshakeTr ntcAddr)
-> HandshakeArguments
(ConnectionId ntcAddr)
NodeToClientVersion
NodeToClientVersionData
m
ntcHandshakeArguments Tracer m (HandshakeTr ntcAddr)
tracer =
HandshakeArguments {
haHandshakeTracer :: Tracer m (HandshakeTr ntcAddr)
haHandshakeTracer = Tracer m (HandshakeTr ntcAddr)
tracer
, haBearerTracer :: Tracer m (WithBearer (ConnectionId ntcAddr) BearerTrace)
haBearerTracer = Tracer m (WithBearer (ConnectionId ntcAddr) BearerTrace)
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
, haHandshakeCodec :: Codec
(Handshake NodeToClientVersion Term)
DeserialiseFailure
m
ByteString
haHandshakeCodec = CodecCBORTerm (Text, Maybe Int) NodeToClientVersion
-> Codec
(Handshake NodeToClientVersion Term)
DeserialiseFailure
m
ByteString
forall vNumber (m :: * -> *) failure.
(MonadST m, Ord vNumber, Show failure) =>
CodecCBORTerm (failure, Maybe Int) vNumber
-> Codec (Handshake vNumber Term) DeserialiseFailure m ByteString
codecHandshake CodecCBORTerm (Text, Maybe Int) NodeToClientVersion
nodeToClientVersionCodec
, haVersionDataCodec :: VersionDataCodec Term NodeToClientVersion NodeToClientVersionData
haVersionDataCodec =
(NodeToClientVersion -> CodecCBORTerm Text NodeToClientVersionData)
-> VersionDataCodec
Term NodeToClientVersion NodeToClientVersionData
forall vNumber vData.
(vNumber -> CodecCBORTerm Text vData)
-> VersionDataCodec Term vNumber vData
cborTermVersionDataCodec
NodeToClientVersion -> CodecCBORTerm Text NodeToClientVersionData
nodeToClientCodecCBORTerm
, haAcceptVersion :: NodeToClientVersionData
-> NodeToClientVersionData -> Accept NodeToClientVersionData
haAcceptVersion = NodeToClientVersionData
-> NodeToClientVersionData -> Accept NodeToClientVersionData
forall v. Acceptable v => v -> v -> Accept v
acceptableVersion
, haQueryVersion :: NodeToClientVersionData -> Bool
haQueryVersion = NodeToClientVersionData -> Bool
forall v. Queryable v => v -> Bool
queryVersion
, haTimeLimits :: ProtocolTimeLimits (Handshake NodeToClientVersion Term)
haTimeLimits = ProtocolTimeLimits (Handshake NodeToClientVersion Term)
forall {k} (vNumber :: k).
ProtocolTimeLimits (Handshake vNumber Term)
noTimeLimitsHandshake
}