Encode `msg` and enqueue to the session's delivery channel. Errors are logged and discarded — the delivery channel's own back-pressure logic drops frames when full.
(
&self,
session_id: &str,
msg_type: SyncMessageType,
msg: &T,
)
| 224 | /// Errors are logged and discarded — the delivery channel's own |
| 225 | /// back-pressure logic drops frames when full. |
| 226 | fn send_frame<T: serde::Serialize + zerompk::ToMessagePack>( |
| 227 | &self, |
| 228 | session_id: &str, |
| 229 | msg_type: SyncMessageType, |
| 230 | msg: &T, |
| 231 | ) { |
| 232 | match nodedb_types::sync::wire::SyncFrame::try_encode(msg_type, msg) { |
| 233 | Some(frame) => self.delivery.enqueue(session_id, frame.to_bytes()), |
| 234 | None => { |
| 235 | warn!( |
| 236 | session = %session_id, |
| 237 | "catchup_server: SyncFrame encode failed for {:?}", |
| 238 | msg_type |
| 239 | ); |
| 240 | } |
| 241 | } |
| 242 | } |
| 243 | } |
| 244 | |
| 245 | // ─── Tests ──────────────────────────────────────────────────────────────────── |
no test coverage detected