GossipSessionEngine

org.sigilaris.node.gossip.GossipSessionEngine
final case class GossipSessionEngine(localPeer: PeerIdentity, topology: StaticPeerTopology, policy: HandshakePolicy, relationships: Map[PeerIdentity, PeerRelationship])

Attributes

Source
SessionEngine.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

Applies a received handshake ack to complete an outbound session open.

Applies a received handshake ack to complete an outbound session open.

Value parameters

ack

the received acknowledgement

now

the current timestamp

Attributes

Returns

the updated engine, or a rejection

Source
SessionEngine.scala

Gracefully closes a session.

Gracefully closes a session.

Value parameters

sessionId

the session to close

Attributes

Returns

the updated engine, or a rejection if the session is already dead

Source
SessionEngine.scala

Expires sessions that have been in Opening state beyond the handshake timeout.

Expires sessions that have been in Opening state beyond the handshake timeout.

Value parameters

now

the current timestamp

Attributes

Returns

the updated engine with expired sessions marked dead

Source
SessionEngine.scala

Expires all sessions that have exceeded their handshake timeout or liveness timeout.

Expires all sessions that have exceeded their handshake timeout or liveness timeout.

Value parameters

now

the current timestamp

Attributes

Returns

the updated engine with timed-out sessions marked dead

Source
SessionEngine.scala
def handleInboundProposal(proposal: SessionOpenProposal, now: Instant, heartbeatInterval: Option[Duration], livenessTimeout: Option[Duration], maxControlRetryInterval: Option[Duration]): (GossipSessionEngine, InboundHandshakeResult)

Processes an inbound session open proposal, handling simultaneous-open resolution.

Processes an inbound session open proposal, handling simultaneous-open resolution.

Value parameters

heartbeatInterval

optional override for the heartbeat interval in the ack

livenessTimeout

optional override for the liveness timeout in the ack

maxControlRetryInterval

optional override for the max control retry interval in the ack

now

the current timestamp

proposal

the received proposal

Attributes

Returns

the updated engine and handshake result

Source
SessionEngine.scala

Marks a session as terminally dead.

Marks a session as terminally dead.

Value parameters

sessionId

the session to mark dead

Attributes

Returns

the updated engine, or a rejection if the session is not found

Source
SessionEngine.scala

Rejects traffic that arrives on a session still in Opening status, closing the session.

Rejects traffic that arrives on a session still in Opening status, closing the session.

Value parameters

kind

the kind of traffic received

sessionId

the session that received pre-open traffic

Attributes

Returns

the updated engine and rejection to send, or a rejection if the session is not found

Source
SessionEngine.scala

Returns the relationship with the given peer, if one exists.

Returns the relationship with the given peer, if one exists.

Value parameters

peer

the peer identity

Attributes

Returns

the relationship, or None

Source
SessionEngine.scala

Looks up a directional session by id across all relationships.

Looks up a directional session by id across all relationships.

Value parameters

sessionId

the directional session identifier

Attributes

Returns

the session, or None

Source
SessionEngine.scala
def startOutbound(peer: PeerIdentity, subscriptions: SessionSubscription, now: Instant, peerCorrelationId: Option[PeerCorrelationId], heartbeatInterval: Option[Duration], livenessTimeout: Option[Duration], maxControlRetryInterval: Option[Duration]): Either[HandshakeRejected, (GossipSessionEngine, SessionOpenProposal)]

Initiates an outbound session to a direct neighbor peer.

Initiates an outbound session to a direct neighbor peer.

Value parameters

heartbeatInterval

optional proposed heartbeat interval

livenessTimeout

optional proposed liveness timeout

maxControlRetryInterval

optional proposed max control retry interval

now

the current timestamp

peer

the target peer

peerCorrelationId

optional override for the correlation id

subscriptions

the chain-topic pairs to subscribe to

Attributes

Returns

the updated engine and proposal, or a rejection

Source
SessionEngine.scala

Updates the last-activity timestamp for an open session.

Updates the last-activity timestamp for an open session.

Value parameters

now

the current timestamp

sessionId

the session to touch

Attributes

Returns

the updated engine, or a rejection if the session is not open

Source
SessionEngine.scala

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product