Source code for edri.switch.connection

from dataclasses import dataclass, field
from threading import Event

from edri.protocol.channel import SecureChannel
from edri.switch.mailbox import Mailbox


[docs] @dataclass class Connection: mailbox: Mailbox channel: SecureChannel | None demands: bytes | None = None key_index: int = 0 stop: Event = field(default_factory=Event) @property def queue(self) -> Mailbox: """Compatibility alias for the old connection queue.""" return self.mailbox
[docs] def disconnect(self) -> None: self.stop.set() self.mailbox.wake() if self.channel is not None: self.channel.close()