Skip to content

ClientTCPConnectionNotify

[Source]

Callbacks for a client-side TCP connection. Implement this trait and pass it to ClientTCPConnection to handle connection events.

All callbacks receive the connection as conn ref, so synchronous methods on the connection (socket options, buffer_until, close, etc.) are callable from any callback. Behaviors like write are also callable but execute on the next turn.

Every callback has a default implementation except on_connect_failed, which must be implemented because ignoring a failed connection is never correct.

trait ref ClientTCPConnectionNotify

Public Functions

on_connecting

[Source]

Called when at least one TCP connection attempt is in progress. count is the number of attempts currently inflight. Called again each time the count changes, until on_connected or on_connect_failed fires.

fun ref on_connecting(
  conn: ClientTCPConnection ref,
  count: U32 val)
: None val

Parameters

Returns


on_connected

[Source]

Called when the connection is ready for application data. For SSL connections, this fires after the TLS handshake completes.

fun ref on_connected(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_connect_failed

[Source]

Called when the connection cannot be established. reason identifies the failure stage: DNS resolution, TCP connect, SSL handshake, timeout, or timer error.

fun ref on_connect_failed(
  conn: ClientTCPConnection ref,
  reason: ConnectionFailureReason)
: None val

Parameters

Returns


on_received

[Source]

Called when data arrives on the connection. Return KeepReading to continue reading or YieldReading to stop after this message and give other actors a turn.

fun ref on_received(
  conn: ClientTCPConnection ref,
  data: Array[U8 val] iso)
: ReadAction

Parameters

Returns


on_send_accepted

[Source]

Called when a write or writev is accepted. Because write and writev are behaviors, this fires in their behavior turn, not during the callback that called write. token identifies this send and arrives exactly once more at on_sent or on_send_failed.

fun ref on_send_accepted(
  conn: ClientTCPConnection ref,
  token: SendToken val,
  data: (ByteSeq | ByteSeqIter val))
: None val

Parameters

Returns


on_sent

[Source]

Called when the bytes from an accepted send have been handed to the OS. The token matches the one delivered by on_send_accepted.

fun ref on_sent(
  conn: ClientTCPConnection ref,
  token: SendToken val)
: None val

Parameters

Returns


on_send_failed

[Source]

Called when an accepted send's bytes could not reach the OS because the connection was lost or hard-closed first. Arrives after on_closed.

fun ref on_send_failed(
  conn: ClientTCPConnection ref,
  token: SendToken val)
: None val

Parameters

Returns


on_throttled

[Source]

Called when the connection applies backpressure. write calls after this are silently dropped until on_unthrottled fires.

fun ref on_throttled(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_unthrottled

[Source]

Called when backpressure is released and the connection is writeable again.

fun ref on_unthrottled(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_closed

[Source]

Called when the connection is closed.

fun ref on_closed(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_tls_ready

[Source]

Called when a TLS handshake initiated by start_tls() completes. The connection is now encrypted.

fun ref on_tls_ready(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_tls_failure

[Source]

Called when a TLS handshake initiated by start_tls() fails. on_closed follows.

fun ref on_tls_failure(
  conn: ClientTCPConnection ref,
  reason: TLSFailureReason)
: None val

Parameters

Returns


on_idle_timeout

[Source]

Called when no data has been sent or received for the duration configured by conn.idle_timeout(). The timer re-arms automatically.

fun ref on_idle_timeout(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_idle_timer_failure

[Source]

Called when the idle timer's ASIO event subscription fails. The timer has been cancelled; call conn.idle_timeout(duration) to retry.

fun ref on_idle_timer_failure(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns


on_timer

[Source]

Called when a one-shot timer created by conn.set_timer() fires. The token matches the one returned by set_timer(). Call set_timer() again to re-arm.

fun ref on_timer(
  conn: ClientTCPConnection ref,
  token: TimerToken val)
: None val

Parameters

Returns


on_timer_failure

[Source]

Called when a user timer's ASIO event subscription fails. The timer has been cancelled; call conn.set_timer(duration) to create a new one.

fun ref on_timer_failure(
  conn: ClientTCPConnection ref)
: None val

Parameters

Returns