Skip to main content

Crate imsg_session

Crate imsg_session 

Source
Expand description

Session lifecycle — RFCOMM/iroh connect, OBEX handshake, retry policy, MNS relay, and store sync. SDP channel discovery happens upstream in imsg-transport::discover; callers here pass an already-resolved device/channel or hub target.

Re-exports§

pub use relay::run_mns_relay;
pub use retry::classify;
pub use retry::Disposition;

Modules§

conn
Connection assembly: selects the transport target and opens a MAP or PBAP session.
contacts
Store-integrated PBAP contact sync, plus shared live-operation wrappers used by both the CLI hub path and the broker’s dispatch — mirrors session::live’s relationship to map_core.
fetch
Shared device read, normalized to a store-agnostic FetchedMessage.
lifecycle
Connection lifecycle: RFCOMM connect, OBEX session establishment, and teardown, given an already-resolved device address and channel (SDP lookup happens in imsg-transport::discover).
live
Live-query orchestration: list/threads/get read straight from the device and return lean models, with no store writes and no cursor advances.
loop_util
Shared accept-loop driver used by MNS session and relay modules.
mns
MNS accept loop — drives the MAP Message Notification Service server-side session.
outbox
Outbox drain: push-error classification, single-message send, and outbox flush.
relay
MNS relay loop — forward raw MAP event-report bytes from RFCOMM to a broadcast channel.
retry
Connection-retry primitives: transient/permanent classification and the backoff schedule.
sync
Store-integrated sync: message ingestion and per-folder cursor backfill.
util
Shared datetime utilities: MAP timestamp parsing and epoch-millisecond display.
watch
Live MNS event processing and the watch loop.

Structs§

MnsEvent
Fields absent in the <event> element are None.

Enums§

EventType
Reported in MAP-event-report <event type=...> attribute.
MapError
MAP client/MNS errors — OBEX, transport, server response, parse, input validation, and encoding.
PbapError
PBAP client errors — OBEX, transport, server response, vCard parse, XML listing parse, and input validation.
SessionError
MAP/PBAP/transport layer errors.
TransportError
OBEX framing errors — invalid length, unexpected EOF, and external transport failures.