Struct ipc_channel::router::RouterProxy
source · pub struct RouterProxy {
comm: Mutex<RouterProxyComm>,
}
Expand description
A RouterProxy
provides methods for talking to the router. Calling
new automatically spins up a router thread which
waits for events on its registered IpcReceiver<T>
s. The RouterProxy
’s
methods communicate with the running router thread to register new
IpcReceiver<T>
’s
Fields§
§comm: Mutex<RouterProxyComm>
Implementations§
source§impl RouterProxy
impl RouterProxy
pub fn new() -> RouterProxy
sourcepub fn add_route(&self, receiver: OpaqueIpcReceiver, callback: RouterHandler)
👎Deprecated since 0.19.0: please use ‘add_typed_route’ instead
pub fn add_route(&self, receiver: OpaqueIpcReceiver, callback: RouterHandler)
Add a new (receiver, callback) pair to the router, and send a wakeup message to the router.
Consider using add_typed_route instead, which prevents mismatches between the receiver and callback types.
sourcepub fn add_typed_route<T>(
&self,
receiver: IpcReceiver<T>,
callback: TypedRouterHandler<T>,
)where
T: Serialize + for<'de> Deserialize<'de> + 'static,
pub fn add_typed_route<T>(
&self,
receiver: IpcReceiver<T>,
callback: TypedRouterHandler<T>,
)where
T: Serialize + for<'de> Deserialize<'de> + 'static,
Add a new (receiver, callback)
pair to the router, and send a wakeup message
to the router.
Unlike add_route this method is strongly typed and guarantees
that the receiver
and the callback
use the same message type.
sourcepub fn shutdown(&self)
pub fn shutdown(&self)
Send a shutdown message to the router containing a ACK sender, send a wakeup message to the router, and block on the ACK. Calling it is idempotent, which can be useful when running a multi-process system in single-process mode.
sourcepub fn route_ipc_receiver_to_crossbeam_sender<T>(
&self,
ipc_receiver: IpcReceiver<T>,
crossbeam_sender: Sender<T>,
)
pub fn route_ipc_receiver_to_crossbeam_sender<T>( &self, ipc_receiver: IpcReceiver<T>, crossbeam_sender: Sender<T>, )
A convenience function to route an IpcReceiver<T>
to an existing Sender<T>
.
sourcepub fn route_ipc_receiver_to_new_crossbeam_receiver<T>(
&self,
ipc_receiver: IpcReceiver<T>,
) -> Receiver<T>
pub fn route_ipc_receiver_to_new_crossbeam_receiver<T>( &self, ipc_receiver: IpcReceiver<T>, ) -> Receiver<T>
A convenience function to route an IpcReceiver<T>
to a Receiver<T>
: the most common
use of a Router
.