ouroboros-network:protocols
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.Protocol.ObjectDiffusion.Type

Description

The type of the object diffusion protocol.

This is used to diffuse generic objects between nodes.

Synopsis

Documentation

data ObjectDiffusion objectId object where Source #

The kind of the object diffusion protocol, and the types of the states in the protocol state machine.

We describe this protocol using indiscriminately the labels "inbound"/"client" for the peer that is receiving objects, and "outbound"/"server" for the one sending them.

Constructors

StInit :: forall objectId object. ObjectDiffusion objectId object

Initial protocol message.

StIdle :: forall objectId object. ObjectDiffusion objectId object

The inbound node has agency; it can either terminate, ask for object identifiers or ask for objects.

There is no timeout in this state.

StObjectIds :: forall objectId object. StBlockingStyle -> ObjectDiffusion objectId object

The outbound node has agency; it must reply with a list of object identifiers that it wishes to submit.

There are two sub-states for this, for blocking and non-blocking cases.

StObjects :: forall objectId object. ObjectDiffusion objectId object

The outbound node has agency; it must reply with the list of objects.

StDone :: forall objectId object. ObjectDiffusion objectId object

Nobody has agency; termination state.

Instances

Instances details
(ShowProxy objectId, ShowProxy object) => ShowProxy (ObjectDiffusion objectId object :: Type) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

showProxy :: Proxy (ObjectDiffusion objectId object) -> String

Protocol (ObjectDiffusion objectId object) Source #

There are some constraints of the protocol that are not captured in the types of the messages, but are documented with the messages. Violation of these constraints is also a protocol error. The constraints are intended to ensure that implementations are able to work in bounded space.

Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Associated Types

type StateToken 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateToken = SingObjectDiffusion :: ObjectDiffusion objectId object -> Type
ShowProxy ('StIdle :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

showProxy :: Proxy ('StIdle :: ObjectDiffusion objectId object) -> String

StateTokenI ('StDone :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

stateToken :: StateToken ('StDone :: ObjectDiffusion objectId object) #

StateTokenI ('StIdle :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

stateToken :: StateToken ('StIdle :: ObjectDiffusion objectId object) #

StateTokenI ('StInit :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

stateToken :: StateToken ('StInit :: ObjectDiffusion objectId object) #

StateTokenI ('StObjects :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

stateToken :: StateToken ('StObjects :: ObjectDiffusion objectId object) #

SingI stBlocking => StateTokenI ('StObjectIds stBlocking :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

stateToken :: StateToken ('StObjectIds stBlocking :: ObjectDiffusion objectId object) #

(NFData objectId, NFData object) => NFData (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

rnf :: Message (ObjectDiffusion objectId object) from to -> () #

(Show objectId, Show object) => Show (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

showsPrec :: Int -> Message (ObjectDiffusion objectId object) from to -> ShowS #

show :: Message (ObjectDiffusion objectId object) from to -> String #

showList :: [Message (ObjectDiffusion objectId object) from to] -> ShowS #

(Eq objectId, Eq object) => Eq (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

(==) :: Message (ObjectDiffusion objectId object) from to -> Message (ObjectDiffusion objectId object) from to -> Bool #

(/=) :: Message (ObjectDiffusion objectId object) from to -> Message (ObjectDiffusion objectId object) from to -> Bool #

data Message (ObjectDiffusion objectId object) (from :: ObjectDiffusion objectId object) (to :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

data Message (ObjectDiffusion objectId object) (from :: ObjectDiffusion objectId object) (to :: ObjectDiffusion objectId object) where
type StateToken Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateToken = SingObjectDiffusion :: ObjectDiffusion objectId object -> Type
type StateAgency ('StDone :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateAgency ('StDone :: ObjectDiffusion objectId object) = 'NobodyAgency
type StateAgency ('StIdle :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateAgency ('StIdle :: ObjectDiffusion objectId object) = 'ClientAgency
type StateAgency ('StInit :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateAgency ('StInit :: ObjectDiffusion objectId object) = 'ClientAgency
type StateAgency ('StObjects :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateAgency ('StObjects :: ObjectDiffusion objectId object) = 'ServerAgency
type StateAgency ('StObjectIds b :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type StateAgency ('StObjectIds b :: ObjectDiffusion objectId object) = 'ServerAgency

data family Message ps (st :: ps) (st' :: ps) #

The messages for this protocol. It is expected to be a GADT that is indexed by the from and to protocol states. That is the protocol state the message transitions from, and the protocol state it transitions into. These are the edges of the protocol state transition system.

Instances

Instances details
(NFData block, NFData point) => NFData (Message (BlockFetch block point) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.BlockFetch.Type

Methods

rnf :: Message (BlockFetch block point) from to -> () #

(NFData header, NFData point, NFData tip) => NFData (Message (ChainSync header point tip) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ChainSync.Type

Methods

rnf :: Message (ChainSync header point tip) from to -> () #

NFData (Message KeepAlive from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.KeepAlive.Type

Methods

rnf :: Message KeepAlive from to -> () #

(forall result. NFData (query result), NFData point) => NFData (Message (LocalStateQuery block point query) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalStateQuery.Type

Methods

rnf :: Message (LocalStateQuery block point query) from to -> () #

(NFData txid, NFData tx, NFData slot) => NFData (Message (LocalTxMonitor txid tx slot) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxMonitor.Type

Methods

rnf :: Message (LocalTxMonitor txid tx slot) from to -> () #

(NFData tx, NFData reject) => NFData (Message (LocalTxSubmission tx reject) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxSubmission.Type

Methods

rnf :: Message (LocalTxSubmission tx reject) from to -> () #

(NFData objectId, NFData object) => NFData (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

rnf :: Message (ObjectDiffusion objectId object) from to -> () #

NFData peerAddress => NFData (Message (PeerSharing peerAddress) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.PeerSharing.Type

Methods

rnf :: Message (PeerSharing peerAddress) from to -> () #

(NFData txid, NFData tx) => NFData (Message (TxSubmission2 txid tx) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

rnf :: Message (TxSubmission2 txid tx) from to -> () #

(Show block, Show point) => Show (Message (BlockFetch block point) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.BlockFetch.Type

Methods

showsPrec :: Int -> Message (BlockFetch block point) from to -> ShowS #

show :: Message (BlockFetch block point) from to -> String #

showList :: [Message (BlockFetch block point) from to] -> ShowS #

(Show header, Show point, Show tip) => Show (Message (ChainSync header point tip) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ChainSync.Type

Methods

showsPrec :: Int -> Message (ChainSync header point tip) from to -> ShowS #

show :: Message (ChainSync header point tip) from to -> String #

showList :: [Message (ChainSync header point tip) from to] -> ShowS #

Show (Message KeepAlive from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.KeepAlive.Type

Methods

showsPrec :: Int -> Message KeepAlive from to -> ShowS #

show :: Message KeepAlive from to -> String #

showList :: [Message KeepAlive from to] -> ShowS #

(Show txid, Show tx, Show slot) => Show (Message (LocalTxMonitor txid tx slot) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxMonitor.Type

Methods

showsPrec :: Int -> Message (LocalTxMonitor txid tx slot) from to -> ShowS #

show :: Message (LocalTxMonitor txid tx slot) from to -> String #

showList :: [Message (LocalTxMonitor txid tx slot) from to] -> ShowS #

(Show tx, Show reject) => Show (Message (LocalTxSubmission tx reject) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxSubmission.Type

Methods

showsPrec :: Int -> Message (LocalTxSubmission tx reject) from to -> ShowS #

show :: Message (LocalTxSubmission tx reject) from to -> String #

showList :: [Message (LocalTxSubmission tx reject) from to] -> ShowS #

(Show objectId, Show object) => Show (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

showsPrec :: Int -> Message (ObjectDiffusion objectId object) from to -> ShowS #

show :: Message (ObjectDiffusion objectId object) from to -> String #

showList :: [Message (ObjectDiffusion objectId object) from to] -> ShowS #

Show peer => Show (Message (PeerSharing peer) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.PeerSharing.Type

Methods

showsPrec :: Int -> Message (PeerSharing peer) from to -> ShowS #

show :: Message (PeerSharing peer) from to -> String #

showList :: [Message (PeerSharing peer) from to] -> ShowS #

(Show txid, Show tx) => Show (Message (TxSubmission2 txid tx) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

showsPrec :: Int -> Message (TxSubmission2 txid tx) from to -> ShowS #

show :: Message (TxSubmission2 txid tx) from to -> String #

showList :: [Message (TxSubmission2 txid tx) from to] -> ShowS #

(Eq tx, Eq reject) => Eq (Message (LocalTxSubmission tx reject) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxSubmission.Type

Methods

(==) :: Message (LocalTxSubmission tx reject) from to -> Message (LocalTxSubmission tx reject) from to -> Bool #

(/=) :: Message (LocalTxSubmission tx reject) from to -> Message (LocalTxSubmission tx reject) from to -> Bool #

(Eq objectId, Eq object) => Eq (Message (ObjectDiffusion objectId object) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

(==) :: Message (ObjectDiffusion objectId object) from to -> Message (ObjectDiffusion objectId object) from to -> Bool #

(/=) :: Message (ObjectDiffusion objectId object) from to -> Message (ObjectDiffusion objectId object) from to -> Bool #

(Eq txid, Eq tx) => Eq (Message (TxSubmission2 txid tx) from to) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

(==) :: Message (TxSubmission2 txid tx) from to -> Message (TxSubmission2 txid tx) from to -> Bool #

(/=) :: Message (TxSubmission2 txid tx) from to -> Message (TxSubmission2 txid tx) from to -> Bool #

data Message KeepAlive (from :: KeepAlive) (to :: KeepAlive) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.KeepAlive.Type

data Message (PeerSharing peerAddress) (from :: PeerSharing peerAddress) (to :: PeerSharing peerAddress) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.PeerSharing.Type

data Message (PeerSharing peerAddress) (from :: PeerSharing peerAddress) (to :: PeerSharing peerAddress) where
data Message (BlockFetch block point) (from :: BlockFetch block point) (to :: BlockFetch block point) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.BlockFetch.Type

data Message (BlockFetch block point) (from :: BlockFetch block point) (to :: BlockFetch block point) where
data Message (LocalTxSubmission tx reject) (from :: LocalTxSubmission tx reject) (to :: LocalTxSubmission tx reject) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxSubmission.Type

data Message (LocalTxSubmission tx reject) (from :: LocalTxSubmission tx reject) (to :: LocalTxSubmission tx reject) where
data Message (ObjectDiffusion objectId object) (from :: ObjectDiffusion objectId object) (to :: ObjectDiffusion objectId object) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

data Message (ObjectDiffusion objectId object) (from :: ObjectDiffusion objectId object) (to :: ObjectDiffusion objectId object) where
data Message (TxSubmission2 txid tx) (from :: TxSubmission2 txid tx) (to :: TxSubmission2 txid tx) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

data Message (TxSubmission2 txid tx) (from :: TxSubmission2 txid tx) (to :: TxSubmission2 txid tx) where
data Message (ChainSync header point tip) (from :: ChainSync header point tip) (to :: ChainSync header point tip) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ChainSync.Type

data Message (ChainSync header point tip) (from :: ChainSync header point tip) (to :: ChainSync header point tip) where
data Message (LocalStateQuery block point query) (from :: LocalStateQuery block point query) (to :: LocalStateQuery block point query) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalStateQuery.Type

data Message (LocalStateQuery block point query) (from :: LocalStateQuery block point query) (to :: LocalStateQuery block point query) where
data Message (LocalTxMonitor txid tx slot) (from :: LocalTxMonitor txid tx slot) (to :: LocalTxMonitor txid tx slot) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.LocalTxMonitor.Type

data Message (LocalTxMonitor txid tx slot) (from :: LocalTxMonitor txid tx slot) (to :: LocalTxMonitor txid tx slot) where

data SingObjectDiffusion (k :: ObjectDiffusion objectId object) where Source #

Constructors

SingInit :: forall {objectId} {object}. SingObjectDiffusion ('StInit :: ObjectDiffusion objectId object) 
SingIdle :: forall {objectId} {object}. SingObjectDiffusion ('StIdle :: ObjectDiffusion objectId object) 
SingObjectIds :: forall {objectId} {object} (stBlocking :: StBlockingStyle). SingBlockingStyle stBlocking -> SingObjectDiffusion ('StObjectIds stBlocking :: ObjectDiffusion objectId object) 
SingObjects :: forall {objectId} {object}. SingObjectDiffusion ('StObjects :: ObjectDiffusion objectId object) 
SingDone :: forall {objectId} {object}. SingObjectDiffusion ('StDone :: ObjectDiffusion objectId object) 

newtype NumObjectIdsAck Source #

Constructors

NumObjectIdsAck 

Instances

Instances details
NFData NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

rnf :: NumObjectIdsAck -> () #

Monoid NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Semigroup NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Bounded NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Enum NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Generic NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Associated Types

type Rep NumObjectIdsAck 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsAck = D1 ('MetaData "NumObjectIdsAck" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectIdsAck" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectIdsAck") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Num NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Integral NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Real NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Show NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Eq NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Ord NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

NoThunks NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsAck Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsAck = D1 ('MetaData "NumObjectIdsAck" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectIdsAck" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectIdsAck") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

newtype NumObjectIdsReq Source #

Constructors

NumObjectIdsReq 

Instances

Instances details
NFData NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

rnf :: NumObjectIdsReq -> () #

Monoid NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Semigroup NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Bounded NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Enum NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Generic NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Associated Types

type Rep NumObjectIdsReq 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsReq = D1 ('MetaData "NumObjectIdsReq" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectIdsReq" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectIdsReq") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Num NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Integral NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Real NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Show NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Eq NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Ord NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

NoThunks NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectIdsReq = D1 ('MetaData "NumObjectIdsReq" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectIdsReq" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectIdsReq") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

newtype NumObjectsReq Source #

Constructors

NumObjectsReq 

Instances

Instances details
NFData NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Methods

rnf :: NumObjectsReq -> () #

Monoid NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Semigroup NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Bounded NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Enum NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Generic NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Associated Types

type Rep NumObjectsReq 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsReq = D1 ('MetaData "NumObjectsReq" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectsReq" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectsReq") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Num NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Integral NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Real NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Show NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Eq NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Ord NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

NoThunks NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsReq Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsReq = D1 ('MetaData "NumObjectsReq" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectsReq" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectsReq") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

newtype NumObjectsUnacknowledged Source #

Instances

Instances details
NFData NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Monoid NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Semigroup NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Bounded NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Enum NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Generic NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Associated Types

type Rep NumObjectsUnacknowledged 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsUnacknowledged = D1 ('MetaData "NumObjectsUnacknowledged" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectsUnacknowledged" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectsUnacknowledged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Num NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Integral NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Real NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Show NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Eq NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

Ord NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

NoThunks NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsUnacknowledged Source # 
Instance details

Defined in Ouroboros.Network.Protocol.ObjectDiffusion.Type

type Rep NumObjectsUnacknowledged = D1 ('MetaData "NumObjectsUnacknowledged" "Ouroboros.Network.Protocol.ObjectDiffusion.Type" "ouroboros-network-1.1.0.0-inplace-protocols" 'True) (C1 ('MetaCons "NumObjectsUnacknowledged" 'PrefixI 'True) (S1 ('MetaSel ('Just "getNumObjectsUnacknowledged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

data BlockingReplyList (blocking :: StBlockingStyle) a where Source #

We have requests for lists of things. In the blocking case the corresponding reply must be non-empty, whereas in the non-blocking case and empty reply is fine.

Constructors

BlockingReply :: forall a. NonEmpty a -> BlockingReplyList 'StBlocking a 
NonBlockingReply :: forall a. [a] -> BlockingReplyList 'StNonBlocking a 

Instances

Instances details
Foldable (BlockingReplyList blocking) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

fold :: Monoid m => BlockingReplyList blocking m -> m #

foldMap :: Monoid m => (a -> m) -> BlockingReplyList blocking a -> m #

foldMap' :: Monoid m => (a -> m) -> BlockingReplyList blocking a -> m #

foldr :: (a -> b -> b) -> b -> BlockingReplyList blocking a -> b #

foldr' :: (a -> b -> b) -> b -> BlockingReplyList blocking a -> b #

foldl :: (b -> a -> b) -> b -> BlockingReplyList blocking a -> b #

foldl' :: (b -> a -> b) -> b -> BlockingReplyList blocking a -> b #

foldr1 :: (a -> a -> a) -> BlockingReplyList blocking a -> a #

foldl1 :: (a -> a -> a) -> BlockingReplyList blocking a -> a #

toList :: BlockingReplyList blocking a -> [a] #

null :: BlockingReplyList blocking a -> Bool #

length :: BlockingReplyList blocking a -> Int #

elem :: Eq a => a -> BlockingReplyList blocking a -> Bool #

maximum :: Ord a => BlockingReplyList blocking a -> a #

minimum :: Ord a => BlockingReplyList blocking a -> a #

sum :: Num a => BlockingReplyList blocking a -> a #

product :: Num a => BlockingReplyList blocking a -> a #

NFData a => NFData (BlockingReplyList blocking a) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

rnf :: BlockingReplyList blocking a -> () #

Show a => Show (BlockingReplyList blocking a) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

showsPrec :: Int -> BlockingReplyList blocking a -> ShowS #

show :: BlockingReplyList blocking a -> String #

showList :: [BlockingReplyList blocking a] -> ShowS #

Eq a => Eq (BlockingReplyList blocking a) Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

(==) :: BlockingReplyList blocking a -> BlockingReplyList blocking a -> Bool #

(/=) :: BlockingReplyList blocking a -> BlockingReplyList blocking a -> Bool #

data SingBlockingStyle (k :: StBlockingStyle) where Source #

The value level equivalent of BlockingStyle.

This is also used in MsgRequestTxIds where it is interpreted (and can be encoded) as a Bool with True for blocking, and False for non-blocking.

newtype SizeInBytes #

Constructors

SizeInBytes 

Instances

Instances details
ToJSON SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

NFData SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Methods

rnf :: SizeInBytes -> () #

Monoid SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Semigroup SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Bounded SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Enum SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Generic SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Associated Types

type Rep SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

type Rep SizeInBytes = D1 ('MetaData "SizeInBytes" "Ouroboros.Network.SizeInBytes" "ouroboros-network-1.1.0.0-inplace-api" 'True) (C1 ('MetaCons "SizeInBytes" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSizeInBytes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))
Num SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Integral SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Real SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Show SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Eq SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Ord SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

BoundedMeasure SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

Measure SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

NoThunks SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

type Rep SizeInBytes 
Instance details

Defined in Ouroboros.Network.SizeInBytes

type Rep SizeInBytes = D1 ('MetaData "SizeInBytes" "Ouroboros.Network.SizeInBytes" "ouroboros-network-1.1.0.0-inplace-api" 'True) (C1 ('MetaCons "SizeInBytes" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSizeInBytes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

data StBlockingStyle where Source #

Constructors

StBlocking :: StBlockingStyle

In this sub-state the reply need not be prompt. There is no timeout.

StNonBlocking :: StBlockingStyle

In this state the peer must reply. There is a timeout.

Instances

Instances details
SingI 'StBlocking Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

Methods

sing :: Sing 'StBlocking #

SingI 'StNonBlocking Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type

type Sing Source # 
Instance details

Defined in Ouroboros.Network.Protocol.TxSubmission2.Type