ServerTCPConnectionNotify¶
Callbacks for a server-side TCP connection. Implement this trait and return
it from TCPListenNotify.connected() to handle events on an accepted
connection.
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_start_failure,
which must be implemented because ignoring a server-side start failure
is never correct.
Public Functions¶
on_accepted¶
Called when a server connection is ready for application data. For SSL connections, this fires after the TLS handshake completes.
Server connections start with the default read buffer size (16 KiB).
Call conn.resize_read_buffer() here to use a different size.
Parameters¶
- conn: ServerTCPConnection ref
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: ServerTCPConnection 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: ServerTCPConnection ref,
token: SendToken val,
data: (ByteSeq | ByteSeqIter val))
: None val
Parameters¶
- conn: ServerTCPConnection 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: ServerTCPConnection 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: ServerTCPConnection 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: ServerTCPConnection ref
Returns¶
- None val
on_unthrottled¶
Called when backpressure is released and the connection is writeable again.
Parameters¶
- conn: ServerTCPConnection ref
Returns¶
- None val
on_closed¶
Called when the connection is closed.
Parameters¶
- conn: ServerTCPConnection ref
Returns¶
- None val
on_start_failure¶
Called when a server connection fails to start — for example, an SSL
handshake failure before on_accepted would have fired.
Parameters¶
- conn: ServerTCPConnection ref
- reason: StartFailureReason
Returns¶
- None val
on_tls_ready¶
Called when a TLS handshake initiated by start_tls() completes. The
connection is now encrypted.
Parameters¶
- conn: ServerTCPConnection ref
Returns¶
- None val
on_tls_failure¶
Called when a TLS handshake initiated by start_tls() fails. on_closed
follows.
Parameters¶
- conn: ServerTCPConnection 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: ServerTCPConnection 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: ServerTCPConnection 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: ServerTCPConnection 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: ServerTCPConnection ref
Returns¶
- None val