mpvrc/ipc_channel/router/index.html

12 lines
No EOL
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Routers allow converting IPC channels to crossbeam channels. The RouterProxy provides various methods to register `IpcReceiver&#60;T&#62;`s. The router will then either call the appropriate callback or route the message to a crossbeam `Sender&#60;T&#62;` or `Receiver&#60;T&#62;`. You should use the global `ROUTER` to access the `RouterProxy` methods (via `ROUTER`s `Deref` for `RouterProxy`."><title>ipc_channel::router - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="ipc_channel" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.1 (e71f9a9a9 2025-01-27)" data-channel="1.84.1" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../../static.files/storage-59e33391.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../ipc_channel/index.html">ipc_<wbr>channel</a><span class="version">0.19.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module router</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate ipc_<wbr>channel</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../index.html">ipc_channel</a></span><h1>Module <span>router</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/ipc_channel/router.rs.html#10-243">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Routers allow converting IPC channels to crossbeam channels.
The <a href="struct.RouterProxy.html" title="struct ipc_channel::router::RouterProxy">RouterProxy</a> provides various methods to register
<code>IpcReceiver&lt;T&gt;</code>s. The router will then either call the appropriate callback or route the
message to a crossbeam <code>Sender&lt;T&gt;</code> or <code>Receiver&lt;T&gt;</code>. You should use the global <code>ROUTER</code> to
access the <code>RouterProxy</code> methods (via <code>ROUTER</code>s <code>Deref</code> for <code>RouterProxy</code>.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ROUTER.html" title="struct ipc_channel::router::ROUTER">ROUTER</a></div><div class="desc docblock-short">Global object wrapping a <code>RouterProxy</code>.
Add routes (<a href="struct.RouterProxy.html#method.add_route" title="method ipc_channel::router::RouterProxy::add_route">add_route</a>), or convert IpcReceiver<T>
to crossbeam channels (e.g. <a href="struct.RouterProxy.html#method.route_ipc_receiver_to_new_crossbeam_receiver" title="method ipc_channel::router::RouterProxy::route_ipc_receiver_to_new_crossbeam_receiver">route_ipc_receiver_to_new_crossbeam_receiver</a>)</div></li><li><div class="item-name"><a class="struct" href="struct.RouterProxy.html" title="struct ipc_channel::router::RouterProxy">Router<wbr>Proxy</a></div><div class="desc docblock-short">A <code>RouterProxy</code> provides methods for talking to the router. Calling
<a href="struct.RouterProxy.html#method.new" title="associated function ipc_channel::router::RouterProxy::new">new</a> automatically spins up a router thread which
waits for events on its registered <code>IpcReceiver&lt;T&gt;</code>s. The <code>RouterProxy</code>s
methods communicate with the running router thread to register new
<code>IpcReceiver&lt;T&gt;</code>s</div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.RouterHandler.html" title="type ipc_channel::router::RouterHandler">Router<wbr>Handler</a></div><div class="desc docblock-short">Function to call when a new event is received from the corresponding receiver.</div></li><li><div class="item-name"><a class="type" href="type.TypedRouterHandler.html" title="type ipc_channel::router::TypedRouterHandler">Typed<wbr>Router<wbr>Handler</a></div><div class="desc docblock-short">Like <a href="type.RouterHandler.html" title="type ipc_channel::router::RouterHandler">RouterHandler</a> but includes the type that will be passed to the callback</div></li></ul></section></div></main></body></html>