Struct ipc_channel::router::Router
source · struct Router {
msg_receiver: Receiver<RouterMsg>,
msg_wakeup_id: u64,
ipc_receiver_set: IpcReceiverSet,
handlers: HashMap<u64, RouterHandler>,
}
Expand description
Router runs in its own thread listening for events. Adds events to its IpcReceiverSet and listens for events using select().
Fields§
§msg_receiver: Receiver<RouterMsg>
Get messages from RouterProxy.
msg_wakeup_id: u64
The ID/index of the special channel we use to identify messages from msg_receiver.
ipc_receiver_set: IpcReceiverSet
Set of all receivers which have been registered for us to select on.
handlers: HashMap<u64, RouterHandler>
Maps ids to their handler functions.
Implementations§
source§impl Router
impl Router
fn new( msg_receiver: Receiver<RouterMsg>, wakeup_receiver: IpcReceiver<()>, ) -> Router
sourcefn run(&mut self)
fn run(&mut self)
Continuously loop waiting for wakeup signals from router proxy. Iterate over events either:
- If a message comes in from our special
wakeup_receiver
(identified through msg_wakeup_id. Read message frommsg_receiver
and add a new receiver to our receiver set. - Call appropriate handler based on message id.
- Remove handler once channel closes.
Auto Trait Implementations§
impl Freeze for Router
impl !RefUnwindSafe for Router
impl Send for Router
impl !Sync for Router
impl Unpin for Router
impl !UnwindSafe for Router
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more