Safe Haskell | None |
---|---|
Language | Haskell2010 |
DMQ.NodeToNode
Synopsis
- data NodeToNodeVersion = NodeToNodeV_1
- nodeToNodeVersionCodec :: CodecCBORTerm (Text, Maybe Int) NodeToNodeVersion
- data NodeToNodeVersionData = NodeToNodeVersionData {}
- nodeToNodeCodecCBORTerm :: NodeToNodeVersion -> CodecCBORTerm Text NodeToNodeVersionData
- ntnDataFlow :: NodeToNodeVersionData -> DataFlow
- mapNtNDMQtoOuroboros :: NodeToNodeVersion -> NodeToNodeVersion
- type ClientApp addr bytes (m :: Type -> Type) a = NodeToNodeVersion -> ExpandedInitiatorContext addr m -> Channel m bytes -> m (a, Maybe bytes)
- type ServerApp addr bytes (m :: Type -> Type) a = NodeToNodeVersion -> ResponderContext addr -> Channel m bytes -> m (a, Maybe bytes)
- data Apps addr bKA bPS (m :: Type -> Type) a b = Apps {
- aKeepAliveClient :: ClientApp addr bKA m a
- aKeepAliveServer :: ServerApp addr bKA m b
- aPeerSharingClient :: ClientApp addr bPS m a
- aPeerSharingServer :: ServerApp addr bPS m b
- ntnApps :: forall (m :: Type -> Type) addr. (Alternative (STM m), MonadAsync m, MonadFork m, MonadMask m, MonadMVar m, MonadST m, MonadThread m, MonadThrow (STM m), MonadTimer m, Ord addr, Hashable addr) => NodeKernel addr m -> Codecs addr m -> LimitsAndTimeouts addr -> Apps addr ByteString ByteString m () ()
- data Protocols (appType :: Mode) initiatorCtx responderCtx bytes (m :: Type -> Type) a b = Protocols {
- keepAliveProtocol :: RunMiniProtocol appType initiatorCtx responderCtx bytes m a b
- peerSharingProtocol :: RunMiniProtocol appType initiatorCtx responderCtx bytes m a b
- nodeToNodeProtocols :: forall addr (appType :: Mode) initiatorCtx responderCtx bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr -> Protocols appType initiatorCtx responderCtx bytes m a b -> NodeToNodeVersion -> NodeToNodeVersionData -> OuroborosBundle appType initiatorCtx responderCtx bytes m a b
- initiatorProtocols :: forall addr bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr -> Apps addr bytes bytes m a b -> NodeToNodeVersion -> NodeToNodeVersionData -> OuroborosBundleWithExpandedCtx 'InitiatorMode addr bytes m a Void
- initiatorAndResponderProtocols :: forall addr bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr -> Apps addr bytes bytes m a b -> NodeToNodeVersion -> NodeToNodeVersionData -> OuroborosBundleWithExpandedCtx 'InitiatorResponderMode addr bytes m a b
- data Codecs addr (m :: Type -> Type) = Codecs {}
- dmqCodecs :: forall (m :: Type -> Type) addr. MonadST m => (addr -> Encoding) -> (forall s. Decoder s addr) -> Codecs addr m
- data LimitsAndTimeouts addr = LimitsAndTimeouts {
- keepAliveLimits :: MiniProtocolLimits
- keepAliveSizeLimits :: ProtocolSizeLimits KeepAlive ByteString
- keepAliveTimeLimits :: ProtocolTimeLimits KeepAlive
- peerSharingLimits :: MiniProtocolLimits
- peerSharingTimeLimits :: ProtocolTimeLimits (PeerSharing addr)
- peerSharingSizeLimits :: ProtocolSizeLimits (PeerSharing addr) ByteString
- dmqLimitsAndTimeouts :: LimitsAndTimeouts addr
- ntnHandshakeArguments :: forall (m :: Type -> Type) ntnAddr. MonadST m => Tracer m (HandshakeTr ntnAddr NodeToNodeVersion) -> HandshakeArguments (ConnectionId ntnAddr) NodeToNodeVersion NodeToNodeVersionData m
- stdVersionDataNTN :: NetworkMagic -> DiffusionMode -> PeerSharing -> NodeToNodeVersionData
Documentation
data NodeToNodeVersion Source #
Constructors
NodeToNodeV_1 |
Instances
data NodeToNodeVersionData Source #
Version data for NodeToNode protocols
This data type is inpired by the one defined in 'ouroboros-network-api',
however, it is redefined here to tie it to our custom NodeToNodeVersion
and to avoid divergences.
Constructors
NodeToNodeVersionData | |
Fields
|
Instances
Show NodeToNodeVersionData Source # | |
Defined in DMQ.NodeToNode Methods showsPrec :: Int -> NodeToNodeVersionData -> ShowS # show :: NodeToNodeVersionData -> String # showList :: [NodeToNodeVersionData] -> ShowS # | |
Eq NodeToNodeVersionData Source # | |
Defined in DMQ.NodeToNode Methods (==) :: NodeToNodeVersionData -> NodeToNodeVersionData -> Bool # (/=) :: NodeToNodeVersionData -> NodeToNodeVersionData -> Bool # | |
Acceptable NodeToNodeVersionData Source # | |
Defined in DMQ.NodeToNode | |
Queryable NodeToNodeVersionData Source # | |
Defined in DMQ.NodeToNode Methods |
mapNtNDMQtoOuroboros :: NodeToNodeVersion -> NodeToNodeVersion Source #
Map between DMQ NTNVersion and Ouroboros NTNVersion
Useful for reusing codecs and other functions
type ClientApp addr bytes (m :: Type -> Type) a = NodeToNodeVersion -> ExpandedInitiatorContext addr m -> Channel m bytes -> m (a, Maybe bytes) Source #
type ServerApp addr bytes (m :: Type -> Type) a = NodeToNodeVersion -> ResponderContext addr -> Channel m bytes -> m (a, Maybe bytes) Source #
data Apps addr bKA bPS (m :: Type -> Type) a b Source #
Constructors
Apps | |
Fields
|
ntnApps :: forall (m :: Type -> Type) addr. (Alternative (STM m), MonadAsync m, MonadFork m, MonadMask m, MonadMVar m, MonadST m, MonadThread m, MonadThrow (STM m), MonadTimer m, Ord addr, Hashable addr) => NodeKernel addr m -> Codecs addr m -> LimitsAndTimeouts addr -> Apps addr ByteString ByteString m () () Source #
data Protocols (appType :: Mode) initiatorCtx responderCtx bytes (m :: Type -> Type) a b Source #
Constructors
Protocols | |
Fields
|
Arguments
:: forall addr (appType :: Mode) initiatorCtx responderCtx bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr | |
-> Protocols appType initiatorCtx responderCtx bytes m a b | |
-> NodeToNodeVersion | negotiated version number |
-> NodeToNodeVersionData | negotiated version data |
-> OuroborosBundle appType initiatorCtx responderCtx bytes m a b |
initiatorProtocols :: forall addr bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr -> Apps addr bytes bytes m a b -> NodeToNodeVersion -> NodeToNodeVersionData -> OuroborosBundleWithExpandedCtx 'InitiatorMode addr bytes m a Void Source #
initiatorAndResponderProtocols :: forall addr bytes (m :: Type -> Type) a b. LimitsAndTimeouts addr -> Apps addr bytes bytes m a b -> NodeToNodeVersion -> NodeToNodeVersionData -> OuroborosBundleWithExpandedCtx 'InitiatorResponderMode addr bytes m a b Source #
dmqCodecs :: forall (m :: Type -> Type) addr. MonadST m => (addr -> Encoding) -> (forall s. Decoder s addr) -> Codecs addr m Source #
data LimitsAndTimeouts addr Source #
Constructors
LimitsAndTimeouts | |
Fields
|
dmqLimitsAndTimeouts :: LimitsAndTimeouts addr Source #
ntnHandshakeArguments :: forall (m :: Type -> Type) ntnAddr. MonadST m => Tracer m (HandshakeTr ntnAddr NodeToNodeVersion) -> HandshakeArguments (ConnectionId ntnAddr) NodeToNodeVersion NodeToNodeVersionData m Source #