class Movie::Remote::InboundConnection

Overview

InboundConnection handles an incoming connection from a remote system.

Defined in:

movie/remote/inbound_connection.cr

Constant Summary

Log = ::Log.for(self)

Constructors

Instance Method Summary

Constructor Detail

def self.new(socket : TCPSocket, transport : IO, server : Server, path_registry : Movie::PathRegistry, local_system : String, local_address : Proc(Address), node_uid : String, control_deduplicator : ControlDeduplicator, on_message : Proc(WireEnvelope, InboundConnection, Nil), shared_secret : String | Nil = nil, heartbeat_interval : Time::Span = 1.second, heartbeat_timeout : Time::Span = 5.seconds) #

[View source]

Instance Method Detail

def close #

Closes the connection.


[View source]
def close_without_callback #

Closes the connection without notifying the server (used during server shutdown).


[View source]
def connected? : Bool #

[View source]
def drain_watches : Array(Tuple(Movie::ActorRefBase, Movie::ActorRefBase)) #

[View source]
def remote_address : Address | Nil #

Returns the remote address if known (from handshake).


[View source]
def remote_address=(remote_address : Address | Nil) #

Sets the remote address (from handshake).


[View source]
def remote_node_uid : String | Nil #

The process incarnation authenticated by the association handshake.


[View source]
def send(envelope : WireEnvelope) : Bool #

Sends an envelope to the remote system.


[View source]
def start #

Starts reading from the connection.


[View source]
def track_watch(target : Movie::ActorRefBase, watcher : Movie::ActorRefBase) : Nil #

[View source]
def untrack_watch(target : Movie::ActorRefBase, watcher : Movie::ActorRefBase) : Nil #

[View source]