Skip to content

Commit

Permalink
(Commit by workflow script) Update generated documentation.
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions committed Mar 30, 2024
1 parent b9f494c commit 09086e3
Show file tree
Hide file tree
Showing 1,330 changed files with 9,763 additions and 9,743 deletions.
6 changes: 3 additions & 3 deletions doc/ipc_doc/generated/html_full/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.1</span>
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.2</span>
</div>
<div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
</td>
Expand Down Expand Up @@ -122,7 +122,7 @@ <h2>Future directions of work </h2>
<li><b>Networked IPC</b>: At the moment all IPC supported by Flow-IPC is between processes within a given machine (node). A session can only be established that way for now. Extending this to establish IPC sessions via network would be easy. Unix-domain-socket-based low-level transports would easily be extended to work via TCP sockets (at least). This is a very natural next step for Flow-IPC development: a low-hanging fruit.</li>
<li><b>Networked "shared memory" (RDMA)</b>: While the preceding bullet point would have clear utility, naturally the zero-copy aspect of the existing Flow-IPC cannot directly translate across a networked session: It is internally achieved using SHM, but there is no shared memory between two separate machines. There <em>is</em>, however, <a href="https://en.wikipedia.org/wiki/Remote_direct_memory_access">Remote Direct Memory Access (RDMA)</a>: direct memory access from the memory of one computer into that of another without involving either one's OS. While assuredly non-trivial, leveraging RDMA in Flow-IPC might allow for a major improvement over the feature in the preceding bullet point, analogously to how SHM-based zero-copy hugely improves upon basic IPC.</li>
<li><b>Beyond C++</b>: This is a C++ project at this time, but languages including Rust and Go have gained well-deserved popularity as well. In a similar way that (for example) Cap'n Proto's original core is in C++, but there are implementations for other languages, it would make sense for the same to happen for Flow-IPC. There are no technical stumbling blocks for this; it is only a question of time and effort.</li>
<li><b>More architectures</b>: As of this writing, Flow-IPC targets Linux + x86-64. MacOS/Darwin/FreeBSD support is attainable with a few weeks of work, we estimate. (Could tackle Windows as well.) Supporting other hardware architectures, such as ARM64, is also doable and valuable. We'd like to do these things: by far most of the code is platform-independent, the exceptions being certain internal low-level details typically involving shared memory and pointer tagging in the SHM-jemalloc sub-component.</li>
<li><b>More architectures</b>: As of this writing, Flow-IPC targets Linux + x86-64. macOS/Darwin/similar support is attainable with a few weeks of work, we estimate. (Could tackle Windows as well.) Supporting other hardware architectures, such as ARM64, is also doable and valuable. We'd like to do these things: by far most of the code is platform-independent, the exceptions being certain internal low-level details typically involving shared memory and pointer tagging in the SHM-jemalloc sub-component.</li>
</ul>
<p >We welcome feedback, ideas, and (of course) pull requests of all kinds!</p>
<hr />
Expand All @@ -132,7 +132,7 @@ <h2>Future directions of work </h2>
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 27 2024 03:21:15 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
Generated on Sat Mar 30 2024 02:06:54 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
4 changes: 2 additions & 2 deletions doc/ipc_doc/generated/html_full/annotated.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.1</span>
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.2</span>
</div>
<div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
</td>
Expand Down Expand Up @@ -241,7 +241,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 27 2024 03:21:16 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
Generated on Sat Mar 30 2024 02:06:55 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
16 changes: 8 additions & 8 deletions doc/ipc_doc/generated/html_full/api_overview.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.1</span>
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.2</span>
</div>
<div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
</td>
Expand Down Expand Up @@ -140,7 +140,7 @@ <h2>Sessions </h2>
<div class="line"><span class="comment">// NOTE: Upon opening session, capabilities of `session` on either side are **exactly the same**.</span></div>
<div class="line"><span class="comment">// Client/server status matters only when establishing the IPC conversation;</span></div>
<div class="line"><span class="comment">// the conversation itself once established is arbitrariy and up to you fully.</span></div>
<div class="ttc" id="anamespaceipc_html_aa3192e586cc45d3e7c22463bf2760f89"><div class="ttname"><a href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">ipc::Error_code</a></div><div class="ttdeci">flow::Error_code Error_code</div><div class="ttdoc">Short-hand for flow::Error_code which is very common.</div><div class="ttdef"><b>Definition:</b> <a href="common_8hpp_source.html#l00297">common.hpp:297</a></div></div>
<div class="ttc" id="anamespaceipc_html_aa3192e586cc45d3e7c22463bf2760f89"><div class="ttname"><a href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">ipc::Error_code</a></div><div class="ttdeci">flow::Error_code Error_code</div><div class="ttdoc">Short-hand for flow::Error_code which is very common.</div><div class="ttdef"><b>Definition:</b> <a href="common_8hpp_source.html#l00298">common.hpp:298</a></div></div>
</div><!-- fragment --><p >Open channel(s) in a session:</p><ul>
<li>Easiest: Have them be pre-opened, so that they're ready from the session start:</li>
</ul>
Expand Down Expand Up @@ -341,20 +341,20 @@ <h2>Transport (unstructured) </h2>
<div class="ttc" id="aclassipc_1_1transport_1_1Mqs__socket__stream__channel_html"><div class="ttname"><a href="classipc_1_1transport_1_1Mqs__socket__stream__channel.html">ipc::transport::Mqs_socket_stream_channel</a></div><div class="ttdoc">A Channel with a blobs pipe consisting of 2 MQs of type Persistent_mq_handle (template arg); and a ha...</div><div class="ttdef"><b>Definition:</b> <a href="ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html#l01273">channel.hpp:1278</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Native__socket__stream__acceptor_html"><div class="ttname"><a href="classipc_1_1transport_1_1Native__socket__stream__acceptor.html">ipc::transport::Native_socket_stream_acceptor</a></div><div class="ttdoc">A server object that binds to a Shared_name and listens for incoming Native_socket_stream connect att...</div><div class="ttdef"><b>Definition:</b> <a href="native__socket__stream__acceptor_8hpp_source.html#l00102">native_socket_stream_acceptor.hpp:105</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Native__socket__stream_html"><div class="ttname"><a href="classipc_1_1transport_1_1Native__socket__stream.html">ipc::transport::Native_socket_stream</a></div><div class="ttdoc">Implements both Native_handle_sender and Native_handle_receiver concepts by using a stream-oriented U...</div><div class="ttdef"><b>Definition:</b> <a href="native__socket__stream_8hpp_source.html#l00270">native_socket_stream.hpp:271</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Posix__mq__handle_html"><div class="ttname"><a href="classipc_1_1transport_1_1Posix__mq__handle.html">ipc::transport::Posix_mq_handle</a></div><div class="ttdoc">Implements the Persistent_mq_handle concept by wrapping the POSIX message queue API (see man mq_overv...</div><div class="ttdef"><b>Definition:</b> <a href="posix__mq__handle_8hpp_source.html#l00060">posix_mq_handle.hpp:62</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Posix__mq__handle_html"><div class="ttname"><a href="classipc_1_1transport_1_1Posix__mq__handle.html">ipc::transport::Posix_mq_handle</a></div><div class="ttdoc">Implements the Persistent_mq_handle concept by wrapping the POSIX message queue API (see man mq_overv...</div><div class="ttdef"><b>Definition:</b> <a href="posix__mq__handle_8hpp_source.html#l00061">posix_mq_handle.hpp:63</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Socket__stream__channel__of__blobs_html"><div class="ttname"><a href="classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html">ipc::transport::Socket_stream_channel_of_blobs</a></div><div class="ttdoc">A Channel with a blobs pipe only (no handles pipe) that uses a Unix domain socket connection as the u...</div><div class="ttdef"><b>Definition:</b> <a href="ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html#l01093">channel.hpp:1097</a></div></div>
<div class="ttc" id="aclassipc_1_1transport_1_1Socket__stream__channel_html"><div class="ttname"><a href="classipc_1_1transport_1_1Socket__stream__channel.html">ipc::transport::Socket_stream_channel</a></div><div class="ttdoc">A Channel with a handles pipe only (no blobs pipe) that uses a Unix domain socket connection as the u...</div><div class="ttdef"><b>Definition:</b> <a href="ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html#l01025">channel.hpp:1029</a></div></div>
<div class="ttc" id="aclassipc_1_1util_1_1Process__credentials_html"><div class="ttname"><a href="classipc_1_1util_1_1Process__credentials.html">ipc::util::Process_credentials</a></div><div class="ttdoc">A process's credentials (PID, UID, GID as of this writing).</div><div class="ttdef"><b>Definition:</b> <a href="process__credentials_8hpp_source.html#l00038">process_credentials.hpp:39</a></div></div>
<div class="ttc" id="aclassipc_1_1util_1_1Process__credentials_html_ae4f156cfdfe0c8c5702890e5c1a37cdf"><div class="ttname"><a href="classipc_1_1util_1_1Process__credentials.html#ae4f156cfdfe0c8c5702890e5c1a37cdf">ipc::util::Process_credentials::process_invoked_as</a></div><div class="ttdeci">std::string process_invoked_as(Error_code *err_code=0) const</div><div class="ttdoc">Obtains, from the OS, information as to the binary name via which process process_id() was started,...</div><div class="ttdef"><b>Definition:</b> <a href="process__credentials_8cpp_source.html#l00062">process_credentials.cpp:62</a></div></div>
<div class="ttc" id="anamespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns_html"><div class="ttname"><a href="namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html">ipc::transport::asio_local_stream_socket::local_ns</a></div><div class="ttdoc">Short-hand for boost.asio Unix domain socket namespace.</div></div>
<div class="ttc" id="anamespaceipc_1_1transport_1_1asio__local__stream__socket_html_a1788f9dbd896bb71b3693f9ae25b40ae"><div class="ttname"><a href="namespaceipc_1_1transport_1_1asio__local__stream__socket.html#a1788f9dbd896bb71b3693f9ae25b40ae">ipc::transport::asio_local_stream_socket::Peer_socket</a></div><div class="ttdeci">Protocol::socket Peer_socket</div><div class="ttdoc">Short-hand for boost.asio Unix domain peer stream-socket (usually-connected-or-empty guy).</div><div class="ttdef"><b>Definition:</b> <a href="asio__local__stream__socket__fwd_8hpp_source.html#l00114">asio_local_stream_socket_fwd.hpp:114</a></div></div>
<div class="ttc" id="anamespaceipc_1_1transport_html"><div class="ttname"><a href="namespaceipc_1_1transport.html">ipc::transport</a></div><div class="ttdoc">Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...</div><div class="ttdef"><b>Definition:</b> <a href="asio__local__stream__socket_8cpp_source.html#l00030">asio_local_stream_socket.cpp:31</a></div></div>
<div class="ttc" id="anamespaceipc_1_1transport_html"><div class="ttname"><a href="namespaceipc_1_1transport.html">ipc::transport</a></div><div class="ttdoc">Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...</div><div class="ttdef"><b>Definition:</b> <a href="asio__local__stream__socket_8cpp_source.html#l00031">asio_local_stream_socket.cpp:32</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html"><div class="ttname"><a href="namespaceipc_1_1util.html">ipc::util</a></div><div class="ttdoc">Flow-IPC module containing miscellaneous general-use facilities that ubiquitously used by ~all Flow-I...</div><div class="ttdef"><b>Definition:</b> <a href="default__init__allocator_8hpp_source.html#l00023">default_init_allocator.hpp:24</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_a5664539b3d75d6d10cdfebf6eac5382d"><div class="ttname"><a href="namespaceipc_1_1util.html#a5664539b3d75d6d10cdfebf6eac5382d">ipc::util::OPEN_OR_CREATE</a></div><div class="ttdeci">const Open_or_create OPEN_OR_CREATE</div><div class="ttdoc">Tag value indicating an open-if-exists-else-create operation.</div><div class="ttdef"><b>Definition:</b> <a href="ipc__core_2src_2ipc_2util_2util_8cpp_source.html#l00030">util.cpp:30</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_a6a3a6ec85242d073df96978c63464078"><div class="ttname"><a href="namespaceipc_1_1util.html#a6a3a6ec85242d073df96978c63464078">ipc::util::OPEN_ONLY</a></div><div class="ttdeci">const Open_only OPEN_ONLY</div><div class="ttdoc">Tag value indicating an atomic open-if-exists-else-fail operation.</div><div class="ttdef"><b>Definition:</b> <a href="ipc__core_2src_2ipc_2util_2util_8cpp_source.html#l00031">util.cpp:31</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_a6cb62ae434900f3a8915b33ec5d61a96"><div class="ttname"><a href="namespaceipc_1_1util.html#a6cb62ae434900f3a8915b33ec5d61a96">ipc::util::Blob_mutable</a></div><div class="ttdeci">boost::asio::mutable_buffer Blob_mutable</div><div class="ttdoc">Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.</div><div class="ttdef"><b>Definition:</b> <a href="util__fwd_8hpp_source.html#l00134">util_fwd.hpp:134</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_ae0be7edba7e30ffa3f8b742af621f2ab"><div class="ttname"><a href="namespaceipc_1_1util.html#ae0be7edba7e30ffa3f8b742af621f2ab">ipc::util::Blob_const</a></div><div class="ttdeci">boost::asio::const_buffer Blob_const</div><div class="ttdoc">Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.</div><div class="ttdef"><b>Definition:</b> <a href="util__fwd_8hpp_source.html#l00128">util_fwd.hpp:128</a></div></div>
<div class="ttc" id="astructipc_1_1util_1_1Native__handle_html"><div class="ttname"><a href="structipc_1_1util_1_1Native__handle.html">ipc::util::Native_handle</a></div><div class="ttdoc">A monolayer-thin wrapper around a native handle, a/k/a descriptor a/k/a FD.</div><div class="ttdef"><b>Definition:</b> <a href="native__handle_8hpp_source.html#l00061">native_handle.hpp:62</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_a6cb62ae434900f3a8915b33ec5d61a96"><div class="ttname"><a href="namespaceipc_1_1util.html#a6cb62ae434900f3a8915b33ec5d61a96">ipc::util::Blob_mutable</a></div><div class="ttdeci">boost::asio::mutable_buffer Blob_mutable</div><div class="ttdoc">Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.</div><div class="ttdef"><b>Definition:</b> <a href="util__fwd_8hpp_source.html#l00140">util_fwd.hpp:140</a></div></div>
<div class="ttc" id="anamespaceipc_1_1util_html_ae0be7edba7e30ffa3f8b742af621f2ab"><div class="ttname"><a href="namespaceipc_1_1util.html#ae0be7edba7e30ffa3f8b742af621f2ab">ipc::util::Blob_const</a></div><div class="ttdeci">boost::asio::const_buffer Blob_const</div><div class="ttdoc">Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.</div><div class="ttdef"><b>Definition:</b> <a href="util__fwd_8hpp_source.html#l00134">util_fwd.hpp:134</a></div></div>
<div class="ttc" id="astructipc_1_1util_1_1Native__handle_html"><div class="ttname"><a href="structipc_1_1util_1_1Native__handle.html">ipc::util::Native_handle</a></div><div class="ttdoc">A monolayer-thin wrapper around a native handle, a/k/a descriptor a/k/a FD.</div><div class="ttdef"><b>Definition:</b> <a href="native__handle_8hpp_source.html#l00062">native_handle.hpp:63</a></div></div>
</div><!-- fragment --> </blockquote>
<p>All those subleties about different types of pipes in a <code>Channel</code> bundle completely disappear when one deals with structured-data <code>struc::Channel</code>s. They are a higher-layer abstraction and will leverage whatever <code>transport::Channel</code> it adapts. In addition to handling capnp-encoded structured data and SHM-backed zero-copy, it also provides basics like request/response, request-method multiplexing, and a bit more. So let's get into that.</p>
<p ><a class="anchor" id="api_overview_transport_struc"></a></p><h2>Transport (structured) </h2>
Expand Down Expand Up @@ -681,7 +681,7 @@ <h2>Safety </h2>
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 27 2024 03:21:15 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
Generated on Sat Mar 30 2024 02:06:54 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
4 changes: 2 additions & 2 deletions doc/ipc_doc/generated/html_full/app_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.1</span>
<div id="projectname">Flow-IPC<span id="projectnumber">&#160;1.0.2</span>
</div>
<div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
</td>
Expand Down Expand Up @@ -112,7 +112,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 27 2024 03:21:15 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
Generated on Sat Mar 30 2024 02:06:54 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
Loading

0 comments on commit 09086e3

Please sign in to comment.