ClientTCPConnectionNotify¶
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.
Public Functions¶
on_connecting¶
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.
Parameters¶
- conn: ClientTCPConnection ref
- count: U32 val
Returns¶
- None val
on_connected¶
Called when the connection is ready for application data. For SSL connections, this fires after the TLS handshake completes.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_connect_failed¶
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¶
- conn: ClientTCPConnection ref
- reason: ConnectionFailureReason
Returns¶
- None val
on_received¶
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.
Parameters¶
- conn: ClientTCPConnection ref
- data: Array[U8 val] iso
Returns¶
on_send_accepted¶
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¶
- conn: ClientTCPConnection ref
- token: SendToken val
- data: (ByteSeq | ByteSeqIter val)
Returns¶
- None val
on_sent¶
Called when the bytes from an accepted send have been handed to the OS.
The token matches the one delivered by on_send_accepted.
Parameters¶
- conn: ClientTCPConnection ref
- token: SendToken val
Returns¶
- None val
on_send_failed¶
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.
Parameters¶
- conn: ClientTCPConnection ref
- token: SendToken val
Returns¶
- None val
on_throttled¶
Called when the connection applies backpressure. write calls after this
are silently dropped until on_unthrottled fires.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_unthrottled¶
Called when backpressure is released and the connection is writeable again.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_closed¶
Called when the connection is closed.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_tls_ready¶
Called when a TLS handshake initiated by start_tls() completes. The
connection is now encrypted.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_tls_failure¶
Called when a TLS handshake initiated by start_tls() fails. on_closed
follows.
Parameters¶
- conn: ClientTCPConnection ref
- reason: TLSFailureReason
Returns¶
- None val
on_idle_timeout¶
Called when no data has been sent or received for the duration configured
by conn.idle_timeout(). The timer re-arms automatically.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_idle_timer_failure¶
Called when the idle timer's ASIO event subscription fails. The timer has
been cancelled; call conn.idle_timeout(duration) to retry.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val
on_timer¶
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.
Parameters¶
- conn: ClientTCPConnection ref
- token: TimerToken val
Returns¶
- None val
on_timer_failure¶
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.
Parameters¶
- conn: ClientTCPConnection ref
Returns¶
- None val