diff --git a/doc/ipc_doc/generated/html_full/about.html b/doc/ipc_doc/generated/html_full/about.html index d7ee92844..7b474fd81 100644 --- a/doc/ipc_doc/generated/html_full/about.html +++ b/doc/ipc_doc/generated/html_full/about.html @@ -132,7 +132,7 @@

Future directions of work

diff --git a/doc/ipc_doc/generated/html_full/annotated.html b/doc/ipc_doc/generated/html_full/annotated.html index 04112934e..02acbb364 100644 --- a/doc/ipc_doc/generated/html_full/annotated.html +++ b/doc/ipc_doc/generated/html_full/annotated.html @@ -241,7 +241,7 @@ diff --git a/doc/ipc_doc/generated/html_full/api_overview.html b/doc/ipc_doc/generated/html_full/api_overview.html index d9cc0c3c7..af9b1dc6c 100644 --- a/doc/ipc_doc/generated/html_full/api_overview.html +++ b/doc/ipc_doc/generated/html_full/api_overview.html @@ -683,7 +683,7 @@

Safety

diff --git a/doc/ipc_doc/generated/html_full/app_8cpp.html b/doc/ipc_doc/generated/html_full/app_8cpp.html index 51f5d336d..f28a33b67 100644 --- a/doc/ipc_doc/generated/html_full/app_8cpp.html +++ b/doc/ipc_doc/generated/html_full/app_8cpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_full/app_8cpp_source.html b/doc/ipc_doc/generated/html_full/app_8cpp_source.html index 31010acc4..855524e9b 100644 --- a/doc/ipc_doc/generated/html_full/app_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/app_8cpp_source.html @@ -235,7 +235,7 @@ diff --git a/doc/ipc_doc/generated/html_full/app_8hpp.html b/doc/ipc_doc/generated/html_full/app_8hpp.html index d3b5a2727..65217541b 100644 --- a/doc/ipc_doc/generated/html_full/app_8hpp.html +++ b/doc/ipc_doc/generated/html_full/app_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/app_8hpp_source.html b/doc/ipc_doc/generated/html_full/app_8hpp_source.html index 69150fa98..d7e91f6cb 100644 --- a/doc/ipc_doc/generated/html_full/app_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/app_8hpp_source.html @@ -383,7 +383,7 @@ diff --git a/doc/ipc_doc/generated/html_full/arena__activator_8hpp.html b/doc/ipc_doc/generated/html_full/arena__activator_8hpp.html index 399277353..dc63bf189 100644 --- a/doc/ipc_doc/generated/html_full/arena__activator_8hpp.html +++ b/doc/ipc_doc/generated/html_full/arena__activator_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/arena__activator_8hpp_source.html b/doc/ipc_doc/generated/html_full/arena__activator_8hpp_source.html index 4ac02a108..7a21aeaf8 100644 --- a/doc/ipc_doc/generated/html_full/arena__activator_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/arena__activator_8hpp_source.html @@ -193,7 +193,7 @@ diff --git a/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp.html index 25fbfd2f0..886242a8d 100644 --- a/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp.html @@ -169,7 +169,7 @@

diff --git a/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp_source.html index 60d8acdf7..98ee78604 100644 --- a/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__impl_8hpp_source.html @@ -754,7 +754,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp.html index 1f1debd83..be3e4825a 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp_source.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp_source.html index a08059fb1..c34689e21 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8cpp_source.html @@ -536,7 +536,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp.html index df5bba1d1..64519e489 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp.html @@ -117,7 +117,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp_source.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp_source.html index 080a58872..023fb4273 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket_8hpp_source.html @@ -441,7 +441,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp.html index 657569a6c..b1e5315a9 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp.html @@ -139,7 +139,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp_source.html index 1d7bd2e91..bca241128 100644 --- a/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/asio__local__stream__socket__fwd_8hpp_source.html @@ -801,7 +801,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp.html b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp.html index 30fc16e58..c063b3ab0 100644 --- a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp.html +++ b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp_source.html b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp_source.html index 506a82abb..6e9d31398 100644 --- a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8cpp_source.html @@ -173,7 +173,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp.html b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp.html index 7b747fbaa..246a1f181 100644 --- a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp_source.html b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp_source.html index 49090871c..af1efedae 100644 --- a/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/asio__waitable__native__hndl_8hpp_source.html @@ -321,7 +321,7 @@ diff --git a/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp.html b/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp.html index fa6fc50c6..aed343e7f 100644 --- a/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp.html +++ b/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp_source.html b/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp_source.html index 72477eaf4..e6118672f 100644 --- a/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/async__adapter__rcv_8hpp_source.html @@ -875,7 +875,7 @@ diff --git a/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp.html b/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp.html index 128f8af3e..6cdb28997 100644 --- a/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp_source.html b/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp_source.html index efe05223e..861c8f2b2 100644 --- a/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/async__adapter__snd_8hpp_source.html @@ -573,7 +573,7 @@ diff --git a/doc/ipc_doc/generated/html_full/async_loop.html b/doc/ipc_doc/generated/html_full/async_loop.html index 8bef67365..3006104ec 100644 --- a/doc/ipc_doc/generated/html_full/async_loop.html +++ b/doc/ipc_doc/generated/html_full/async_loop.html @@ -299,7 +299,7 @@

Recap

diff --git a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp.html b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp.html index 5fb665900..9e895067b 100644 --- a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp_source.html b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp_source.html index f36dbe111..89c1ee1f2 100644 --- a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8cpp_source.html @@ -1170,7 +1170,7 @@ diff --git a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp.html index 0175b2674..6cf50178e 100644 --- a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp_source.html b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp_source.html index 2b3bb2a16..600864ab4 100644 --- a/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/bipc__mq__handle_8hpp_source.html @@ -757,7 +757,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp.html b/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp.html index 64d0de7fd..334101555 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp_source.html b/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp_source.html index edb614172..b290e60ba 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq_8hpp_source.html @@ -188,7 +188,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp.html index a7e538675..b890631c5 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp_source.html index ca460ffda..0635159e3 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__impl_8hpp_source.html @@ -461,7 +461,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp.html index ef5d5a982..aa066789b 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp_source.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp_source.html index 4b52ab5cd..2bb6dfbe2 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__rcv_8hpp_source.html @@ -500,7 +500,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp.html index a326f0b95..04b0adb0a 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp_source.html b/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp_source.html index 9333ae622..5b6c9b9b6 100644 --- a/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/blob__stream__mq__snd_8hpp_source.html @@ -648,7 +648,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__transport_8hpp.html b/doc/ipc_doc/generated/html_full/blob__transport_8hpp.html index 9725cd84e..a14881868 100644 --- a/doc/ipc_doc/generated/html_full/blob__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_full/blob__transport_8hpp.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_full/blob__transport_8hpp_source.html b/doc/ipc_doc/generated/html_full/blob__transport_8hpp_source.html index 82071ac25..73d87c016 100644 --- a/doc/ipc_doc/generated/html_full/blob__transport_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/blob__transport_8hpp_source.html @@ -425,7 +425,7 @@ diff --git a/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp.html b/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp.html index 4e0b65838..9ec7a9c33 100644 --- a/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp.html +++ b/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp_source.html b/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp_source.html index 324a69570..5e33d973f 100644 --- a/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/capnp__msg__builder_8hpp_source.html @@ -530,7 +530,7 @@ diff --git a/doc/ipc_doc/generated/html_full/chan_open.html b/doc/ipc_doc/generated/html_full/chan_open.html index babb843e2..49ed3702f 100644 --- a/doc/ipc_doc/generated/html_full/chan_open.html +++ b/doc/ipc_doc/generated/html_full/chan_open.html @@ -399,7 +399,7 @@

Opening init-channels

diff --git a/doc/ipc_doc/generated/html_full/chan_struct.html b/doc/ipc_doc/generated/html_full/chan_struct.html index 7dbccc7e9..056801347 100644 --- a/doc/ipc_doc/generated/html_full/chan_struct.html +++ b/doc/ipc_doc/generated/html_full/chan_struct.html @@ -617,7 +617,7 @@

Destroying struc::Channel

diff --git a/doc/ipc_doc/generated/html_full/chan_struct_advanced.html b/doc/ipc_doc/generated/html_full/chan_struct_advanced.html index 12c9ba483..bd79bfa1f 100644 --- a/doc/ipc_doc/generated/html_full/chan_struct_advanced.html +++ b/doc/ipc_doc/generated/html_full/chan_struct_advanced.html @@ -165,7 +165,7 @@

Message lifetime

diff --git a/doc/ipc_doc/generated/html_full/channel__base_8hpp.html b/doc/ipc_doc/generated/html_full/channel__base_8hpp.html index 44f27503b..ba4e89194 100644 --- a/doc/ipc_doc/generated/html_full/channel__base_8hpp.html +++ b/doc/ipc_doc/generated/html_full/channel__base_8hpp.html @@ -107,7 +107,7 @@ diff --git a/doc/ipc_doc/generated/html_full/channel__base_8hpp_source.html b/doc/ipc_doc/generated/html_full/channel__base_8hpp_source.html index 4a38c57e8..0d605d3e4 100644 --- a/doc/ipc_doc/generated/html_full/channel__base_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/channel__base_8hpp_source.html @@ -250,7 +250,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classAllocator.html b/doc/ipc_doc/generated/html_full/classAllocator.html index 7e88e0a4c..29ab4f283 100644 --- a/doc/ipc_doc/generated/html_full/classAllocator.html +++ b/doc/ipc_doc/generated/html_full/classAllocator.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classCapnp__msg__builder__interface.html b/doc/ipc_doc/generated/html_full/classCapnp__msg__builder__interface.html index e0b40f6d5..b80571dbc 100644 --- a/doc/ipc_doc/generated/html_full/classCapnp__msg__builder__interface.html +++ b/doc/ipc_doc/generated/html_full/classCapnp__msg__builder__interface.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classFunction_3_01void_07_08_4.html b/doc/ipc_doc/generated/html_full/classFunction_3_01void_07_08_4.html index 3c76581ff..3dfb20d60 100644 --- a/doc/ipc_doc/generated/html_full/classFunction_3_01void_07_08_4.html +++ b/doc/ipc_doc/generated/html_full/classFunction_3_01void_07_08_4.html @@ -69,7 +69,7 @@
The documentation for this class was generated from the following files: diff --git a/doc/ipc_doc/generated/html_full/classServer__session__t.html b/doc/ipc_doc/generated/html_full/classServer__session__t.html index 93261d5a1..e20cd7a1d 100644 --- a/doc/ipc_doc/generated/html_full/classServer__session__t.html +++ b/doc/ipc_doc/generated/html_full/classServer__session__t.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classSession__impl__t.html b/doc/ipc_doc/generated/html_full/classSession__impl__t.html index 191886a06..ba197f48b 100644 --- a/doc/ipc_doc/generated/html_full/classSession__impl__t.html +++ b/doc/ipc_doc/generated/html_full/classSession__impl__t.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classSession__t.html b/doc/ipc_doc/generated/html_full/classSession__t.html index 93f47525b..030399003 100644 --- a/doc/ipc_doc/generated/html_full/classSession__t.html +++ b/doc/ipc_doc/generated/html_full/classSession__t.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classStruct__builder__config_1_1Builder.html b/doc/ipc_doc/generated/html_full/classStruct__builder__config_1_1Builder.html index 25c9ba0e8..8aaf92aa4 100644 --- a/doc/ipc_doc/generated/html_full/classStruct__builder__config_1_1Builder.html +++ b/doc/ipc_doc/generated/html_full/classStruct__builder__config_1_1Builder.html @@ -69,7 +69,7 @@
The documentation for this class was generated from the following files: diff --git a/doc/ipc_doc/generated/html_full/classes.html b/doc/ipc_doc/generated/html_full/classes.html index f36e4b0f3..1b9a9611d 100644 --- a/doc/ipc_doc/generated/html_full/classes.html +++ b/doc/ipc_doc/generated/html_full/classes.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl-members.html index ca9d376a8..43d3366e1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl-members.html @@ -160,7 +160,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl.html index e562f62ae..0d3a7d61a 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__impl.html @@ -2664,7 +2664,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv-members.html index e9ac0ff16..f4e81dba7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv-members.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv.html index 4bf807e7e..415865d9e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Client__session__mv.html @@ -683,7 +683,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl-members.html index 7b49bd5eb..fa18a9396 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl.html index e951dfc77..7a2639eb1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__dtl.html @@ -359,7 +359,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl-members.html index 1acd3852f..c3edeea41 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl-members.html @@ -160,7 +160,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl.html index f2b7041a7..814d453b3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__impl.html @@ -2367,7 +2367,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv-members.html index 9a1335bd4..2d93e9655 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv-members.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv.html index 97a965e67..495fd5257 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Server__session__mv.html @@ -676,7 +676,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session-members.html index 729fdc0d1..a8920a20c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session-members.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session.html index eaa0882f0..e2d0566ba 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session.html @@ -743,7 +743,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base-members.html index 5aedeaff2..bab51beb2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base-members.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base.html index 2bb4917b3..9748f5f40 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base.html @@ -1607,7 +1607,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher-members.html index 21de78b7c..4549e5123 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher-members.html @@ -83,7 +83,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html index 861832c1c..7300ec6df 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html @@ -421,7 +421,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv-members.html index 6fbb17ced..adee2d129 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv-members.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv.html index 980c4e8a3..22f281f15 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__mv.html @@ -1281,7 +1281,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server-members.html index 5e71c9c14..f9129883b 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server-members.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server.html index f85890137..097490945 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server.html @@ -720,7 +720,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl-members.html index aa82d986f..4ea14f499 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl-members.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl.html index ea3c26694..ab7766c72 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1Session__server__impl.html @@ -1053,7 +1053,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category-members.html index f182bab5b..02b7cbda1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category.html index 4d8196baa..aaf94267f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1error_1_1Category.html @@ -277,7 +277,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl-members.html index 38738ad3c..1200149c2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl-members.html @@ -186,7 +186,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html index 49885a6eb..334155f25 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html @@ -999,7 +999,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__mv.html index 0a59b9fb9..7c6493af0 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__mv.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html index 273ec47a3..551d4dda7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html @@ -142,7 +142,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html index b95b2d7f9..b9d1bec1c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html @@ -709,7 +709,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl-members.html index a11a2bc91..1fb2765ae 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl-members.html @@ -187,7 +187,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html index bb183861d..ca9facd02 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html @@ -812,7 +812,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__mv.html index dfea2bd14..33f031abd 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__mv.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl-members.html index 36843c54f..5c0d755f1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl-members.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html index 087f32075..c4265423e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html @@ -880,7 +880,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html index 5bf1d85c2..811b9ea76 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html index 41775b9f8..d8dff2252 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html @@ -715,7 +715,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html index ff5b4d176..f40ad007c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html index 47db919ca..c3362c3bf 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html @@ -1250,7 +1250,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category-members.html index 611626895..97e4a0ef4 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html index 21aa3a148..2cc9dab38 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html @@ -277,7 +277,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl-members.html index a7950b1fa..91fd94cf2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl-members.html @@ -187,7 +187,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html index 710868d27..9dcc3734f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html @@ -730,7 +730,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__mv.html index 409b12ed8..ca1625d1e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Client__session__mv.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html index 47afb912d..4c793adbc 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html index 7d9ed7d4f..5c26cc53f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html @@ -408,7 +408,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl-members.html index 28a8eb7b0..a17ec9bfd 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl-members.html @@ -185,7 +185,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html index 24db6afc2..df3575100 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html @@ -660,7 +660,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__mv.html index fea75737e..2e0f591cc 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Server__session__mv.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl-members.html index 13eef8875..ac8a3e29c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl-members.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html index 1342607cb..7dbbf9a95 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html @@ -993,7 +993,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html index 4116b4aa5..b4d93a70f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html index c9fc53e7f..c3dd19689 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html @@ -709,7 +709,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html index 6df35c046..bc6454a49 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html index 25c4dab2f..abaede6d6 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html @@ -1270,7 +1270,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html index 60a9d35ab..de062bd97 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html @@ -117,7 +117,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html index 2e56c93ea..fa2fddba8 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html @@ -636,7 +636,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html index b02a2b3f6..49acb2f87 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html index 9dfd47868..35dc723c0 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html @@ -641,7 +641,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter-members.html index e0facced3..193037f77 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter-members.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter.html index cbfd22798..7d71b3ea8 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__adapter.html @@ -1571,7 +1571,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html index 19a92fcf1..ce0e0c679 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html index 0c4a9a4cd..bc6543db3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html @@ -1092,7 +1092,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html index a941e50a2..e1a35edf5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena.html index d2ad672ad..34f8915e4 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1Pool__arena.html @@ -1322,7 +1322,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category-members.html index acb1628be..619482268 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category.html index 8cb349dfc..bc3312d3a 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1classic_1_1error_1_1Category.html @@ -277,7 +277,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html index 34c381d30..b98581a27 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator.html index 077192e95..b252d2548 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Arena__activator.html @@ -276,7 +276,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html index 01ff21c9f..11b744bf7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html index a7860ceb8..586be1b33 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html @@ -606,7 +606,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle-members.html index 59c8e499e..a4ed8cf11 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle-members.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle.html index 6252ef4f8..e91984072 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Bipc__mq__handle.html @@ -2184,7 +2184,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver-members.html index fb6ddfc9e..0793dbe70 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver.html index 47c60ff76..036eb0010 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__receiver.html @@ -420,7 +420,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender-members.html index b569929a3..2d033f8b1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender.html index 6ced5ba9d..b8ecf9601 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__sender.html @@ -444,7 +444,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base-members.html index c433867ce..2b00a0b09 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base.html index 0c978b9ab..f9f8dc6a5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base.html @@ -241,7 +241,7 @@

Rationale

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl-members.html index 016499c20..78959e8d3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl-members.html @@ -83,7 +83,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl.html index 9cf16819a..c2cbcb4fd 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__base__impl.html @@ -290,7 +290,7 @@

References ipc::transport::Persistent_mq_handle::absolute_name(), ipc::util::CREATE_ONLY, ipc::util::remove_persistent_shm_pool(), ipc::transport::error::S_BLOB_STREAM_MQ_RECEIVER_EXISTS, and ipc::transport::error::S_BLOB_STREAM_MQ_SENDER_EXISTS.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

Here is the call graph for this function:
@@ -496,7 +496,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html index d90c2c7f6..b60427bca 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html @@ -99,7 +99,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver.html index 2ff94c01a..c168038c9 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver.html @@ -881,7 +881,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl-members.html index b99b9790f..b76a5b960 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl-members.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html index 489a32941..6518534bb 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html @@ -695,7 +695,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html index 09b15c1fc..e97c253f5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender.html index 4fb651b33..041397bb6 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender.html @@ -983,7 +983,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl-members.html index 970f91b0f..dd4c695a5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl-members.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html index bd5265399..d6c43a2cc 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html @@ -753,7 +753,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel-members.html index a3c289083..0e7b004ea 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel-members.html @@ -140,7 +140,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel.html index bd5af9db8..1dd0deed0 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Channel.html @@ -2430,7 +2430,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel-members.html index 42ef04dc8..22d6dfb36 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel-members.html @@ -143,7 +143,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel.html index 8b193fdc6..a4aa782b5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__channel.html @@ -454,7 +454,7 @@

Error semantics

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html index 5e8d37efb..5a8626467 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html @@ -146,7 +146,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel.html index 82f7b77f9..b514eb75f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Mqs__socket__stream__channel.html @@ -486,7 +486,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver-members.html index 54d836172..7ac5f37d8 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver.html index 40b64b60f..0d8e85ca9 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__receiver.html @@ -522,7 +522,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender-members.html index 235c432ce..2aacca860 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender.html index c0c09b0cc..1e4746f2b 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__handle__sender.html @@ -574,7 +574,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream-members.html index d7d7fb391..66b4b06ea 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream-members.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream.html index ca3f94810..2c072f87f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream.html @@ -1937,7 +1937,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl-members.html index 3e507b88d..d04455819 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl-members.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html index 280780d60..dd5a78b34 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html @@ -1137,7 +1137,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html index ec259c541..4b3590a70 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor.html index 870396090..214bddea7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Native__socket__stream__acceptor.html @@ -1099,7 +1099,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer-members.html index c1eea6c40..711b2c7d4 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer.html index be96319f3..2810a9521 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Null__peer.html @@ -197,7 +197,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle-members.html index 11441e24b..7ba335191 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle-members.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle.html index dd7ad2d45..0e5b602a0 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Persistent__mq__handle.html @@ -1401,7 +1401,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle-members.html index f1e4ad208..164109f7b 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle-members.html @@ -133,7 +133,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle.html index 2edbb60d2..1519692c1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Posix__mq__handle.html @@ -2754,7 +2754,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator-members.html index 22fdc82fc..2a2f42772 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator-members.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator.html index b46132423..eb60dfd94 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Protocol__negotiator.html @@ -812,7 +812,7 @@

Definition at line 215 of file protocol_negotiator.hpp.

-

Referenced by compute_negotiated_proto_ver(), local_max_proto_ver_for_sending(), ipc::transport::struc::sync_io::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::rcv_on_async_read_proto_neg_msg(), ipc::transport::sync_io::Native_socket_stream::Impl::rcv_on_handle_finalized(), ipc::transport::sync_io::Native_socket_stream::Impl::rcv_on_head_payload(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), reset(), ipc::transport::struc::sync_io::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::send_proto_neg(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::start_send_blob_ops(), and ipc::transport::sync_io::Native_socket_stream::Impl::start_send_native_handle_ops().

+

Referenced by compute_negotiated_proto_ver(), local_max_proto_ver_for_sending(), ipc::transport::struc::sync_io::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::rcv_on_async_read_proto_neg_msg(), ipc::transport::sync_io::Native_socket_stream::Impl::rcv_on_handle_finalized(), ipc::transport::sync_io::Native_socket_stream::Impl::rcv_on_head_payload(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), reset(), ipc::transport::struc::sync_io::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::send_proto_neg(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::start_send_blob_ops(), and ipc::transport::sync_io::Native_socket_stream::Impl::start_send_native_handle_ops().

@@ -852,7 +852,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel-members.html index 23ffb6af3..b58b41cdb 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel-members.html @@ -143,7 +143,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel.html index 25cc57ece..4679ad4c5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel.html @@ -432,7 +432,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html index d955349f4..31259ab74 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html @@ -143,7 +143,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html index 943527e74..34d53e8d5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html @@ -428,7 +428,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html index f6bde1123..397ceb8d1 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html index c5e12cb06..bf532c946 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html @@ -482,7 +482,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category-members.html index 6473d690a..e5abfc500 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category.html index 29c9b955b..112e1fb72 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1error_1_1Category.html @@ -279,7 +279,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel-members.html index 9e9f28c32..6b51dcc76 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel-members.html @@ -126,7 +126,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel.html index 118b889f2..941af64b7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel.html @@ -2361,7 +2361,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base-members.html index e85e2f8b2..b957907e2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base.html index ea47d2a80..83f058228 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Channel__base.html @@ -234,7 +234,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html index a39170682..92e7e7a7c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html @@ -91,7 +91,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html index 942e18551..f0fcecee3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html @@ -642,7 +642,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html index 1b76c0a70..35f01c05d 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html index 06bf9f0ac..2ca7de0f2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html @@ -488,7 +488,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html index 48d20bf36..f89461e11 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader.html index 0f827cb30..b7ed844de 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Heap__reader.html @@ -523,7 +523,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in-members.html index 0eee4b802..d96cce7d9 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in-members.html @@ -107,7 +107,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in.html index 462e8a105..15d205f10 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in.html @@ -1227,7 +1227,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl-members.html index e3dfb2f85..d1a6c57f8 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl-members.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl.html index 0c4644072..438601d81 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__in__impl.html @@ -577,7 +577,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out-members.html index 836470547..fd5ea1f9e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out-members.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html index 0434dd8ef..ec655181f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html @@ -512,7 +512,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out-members.html index 42604dc28..e7712107a 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out-members.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out.html index 0150924b8..f7ab92942 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out.html @@ -985,7 +985,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl-members.html index f98fe69b6..9e21b7272 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl-members.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl.html index e18b06877..34fd98521 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Msg__out__impl.html @@ -301,7 +301,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html index 80bc7a2d4..70a172f86 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder.html index fbeb28607..198233676 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__builder.html @@ -399,7 +399,7 @@

Errors

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html index 277d477f0..b248de4aa 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader.html index 64e66b1e9..0018feb5c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1Struct__reader.html @@ -343,7 +343,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category-members.html index eddd7a942..29287caf6 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category.html index a1e7c5b8f..632da5bc4 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1error_1_1Category.html @@ -277,7 +277,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html index 8f4935c3d..2da8b21de 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html index 6dc3e5fb8..81ae7ec91 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html @@ -676,7 +676,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html index cdf2ebc50..b805b2787 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html index 937fef004..f9773cb9c 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html @@ -138,7 +138,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html index 141a680d8..c53e7bb17 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html index af2f57f60..356bcb829 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html @@ -676,7 +676,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html index 5a5d1d06b..a8c0e5094 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html index f8f5131dd..f2cde1251 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html @@ -689,7 +689,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html index 373778efa..64642d84b 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html @@ -188,7 +188,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html index aa571ba24..5713332d2 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html @@ -4960,7 +4960,7 @@

Rationale: Communicating this via diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver-members.html index c93998a4e..0e671f3d3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver-members.html @@ -91,7 +91,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html index 2f9fcb30c..ce6f13c76 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html @@ -761,7 +761,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender-members.html index 49ea4453c..524e9f0e7 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html index 607a5ad74..454b2feb6 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html @@ -620,7 +620,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html index 226e77cbe..e16e5852e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html index a0fc69327..54857203d 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html @@ -480,7 +480,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html index d41663106..c1905c033 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html index b96c9f78d..bbd8484ba 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html @@ -503,7 +503,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html index 6352eadd7..2e6148552 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html index f3b715466..784bfc8c3 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html @@ -999,7 +999,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl-members.html index 8e557556d..c3278709e 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl-members.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html index 83b0d4223..eb8d15703 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html @@ -422,9 +422,9 @@

Definition at line 476 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 486 of file blob_stream_mq_rcv_impl.hpp.

-

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::Blob_stream_mq_base_impl< Persistent_mq_handle >::ensure_unique_peer(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_blocking_worker, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_ev_wait_hndl_mq, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq_ready_reader, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq_ready_writer, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_nb_task_engine, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_pending_err_code, and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::nickname().

+

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::Blob_stream_mq_base_impl< Persistent_mq_handle >::ensure_unique_peer(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_blocking_worker, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_ev_wait_hndl_mq, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq_ready_reader, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_mq_ready_writer, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_nb_task_engine, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::m_pending_err_code, and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::nickname().

Here is the call graph for this function:
@@ -450,7 +450,7 @@

Blob_stream_mq_receiver counterpart.

-

Definition at line 575 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 585 of file blob_stream_mq_rcv_impl.hpp.

@@ -472,9 +472,9 @@

Blob_stream_mq_receiver counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 1242 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 1252 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::operator<<().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::operator<<().

Here is the caller graph for this function:
@@ -538,7 +538,7 @@

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 667 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 677 of file blob_stream_mq_rcv_impl.hpp.

References ipc::transport::error::S_INVALID_ARGUMENT, and ipc::transport::error::S_SYNC_IO_WOULD_BLOCK.

@@ -571,7 +571,7 @@

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 777 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 787 of file blob_stream_mq_rcv_impl.hpp.

@@ -592,9 +592,9 @@

Blob_stream_mq_receiver counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 1248 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 1258 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl(), and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::operator<<().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl(), and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::operator<<().

Here is the caller graph for this function:
@@ -630,7 +630,7 @@

async_receive_blob() is in progress; as otherwise we will not be reading the low-level pipe at all. This is a requirement for using idle_timer_run(), so it's not our fault, if they don't do it and get timed-out.

-

Definition at line 869 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 879 of file blob_stream_mq_rcv_impl.hpp.

@@ -659,7 +659,7 @@

util::sync_io::Timer_event_emitter, of the idle timer firing; if still relevant it records the idle-timeout error in m_pending_err_code; and if an async_receive_blob() is in progress (awaiting data via async-wait), it completes that operation with the appropriate idle-timeout error (completion handler in m_user_request runs synchronously).

If not still relevant – m_pending_err_code already is truthy – then no-ops.

-

Definition at line 834 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 844 of file blob_stream_mq_rcv_impl.hpp.

References ipc::transport::error::S_RECEIVER_IDLE_TIMEOUT.

@@ -700,7 +700,7 @@

Returns
See above.
-

Definition at line 652 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 662 of file blob_stream_mq_rcv_impl.hpp.

@@ -750,7 +750,7 @@

Definition at line 905 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 915 of file blob_stream_mq_rcv_impl.hpp.

References ipc::util::pipe_consume(), ipc::util::pipe_produce(), ipc::transport::error::S_BLOB_STREAM_MQ_RECEIVER_BAD_CTL_CMD, ipc::transport::error::S_INTERRUPTED, ipc::transport::error::S_RECEIVES_FINISHED_CANNOT_RECEIVE, ipc::transport::error::S_SYNC_IO_WOULD_BLOCK, and ipc::transport::Protocol_negotiator::S_VER_UNKNOWN.

@@ -779,7 +779,7 @@

Blob_stream_mq_receiver counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 1236 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 1246 of file blob_stream_mq_rcv_impl.hpp.

@@ -818,7 +818,7 @@

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 594 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 604 of file blob_stream_mq_rcv_impl.hpp.

References ipc::util::Native_handle::m_native_handle.

@@ -851,7 +851,7 @@

Returns
See Blob_stream_mq_receiver counterpart.
-

Definition at line 634 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 644 of file blob_stream_mq_rcv_impl.hpp.

@@ -902,9 +902,9 @@

Returns
os.
-

Definition at line 1254 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 1264 of file blob_stream_mq_rcv_impl.hpp.

-

References ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::absolute_name(), and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::nickname().

+

References ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::absolute_name(), and ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::nickname().

Here is the call graph for this function:
@@ -971,9 +971,9 @@

m_mq. Otherwise code may still be finishing up in thread W when m_mq is destroyed already. Anyway – as long as this is destroyed or .stop()ed before m_mq is gone, you're cool.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 468 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 478 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1001,7 +1001,7 @@

Control_cmd enumeration value, receiving which shall reset this to false.

-

Definition at line 385 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 395 of file blob_stream_mq_rcv_impl.hpp.

@@ -1063,7 +1063,7 @@

start_receive_blob_ops()) through which we invoke the outside event loop's async-wait facility for descriptors/events relevant to our ops.

See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.

-

Definition at line 449 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 459 of file blob_stream_mq_rcv_impl.hpp.

@@ -1092,7 +1092,7 @@

m_idle_timer_fired_peer.

See also
m_timer_worker for more info.
-

Definition at line 442 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 452 of file blob_stream_mq_rcv_impl.hpp.

@@ -1121,9 +1121,9 @@

m_mq_ready_reader; or if m_mq can be watched directly (known at compile-time) then as m_mq itself.

Its name suggests it's watching m_mq (for transmissibility), and that's true: In the latter case one directly watches it for transmissibility in the proper direction; in the former case Persistent_mq_handle lacks a Native_handle to watch directly – but we use the m_mq_ready_* pipe and a background thread to simulate it having one. Thus in that case m_mq_ready_reader FD = this FD, and it being transmissible = MQ being transmissible.

-

Definition at line 353 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 363 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1152,7 +1152,7 @@

idle_timer_run() args; or zero() if not yet called.

m_idle_timer stays inactive until this becomes not-zero().

-

Definition at line 414 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 424 of file blob_stream_mq_rcv_impl.hpp.

@@ -1182,7 +1182,7 @@

m_pending_err_code).

Since we implement sync_io pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter m_timer_worker. See that member's doc header for more info.

-

Definition at line 426 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 436 of file blob_stream_mq_rcv_impl.hpp.

@@ -1211,7 +1211,7 @@

m_timer_worker to ferry timer-fired events from m_idle_timer to sync_io outside async-wait to our actual on-timer-fired handler logic.

See also
m_timer_worker for more info.
-

Definition at line 434 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 444 of file blob_stream_mq_rcv_impl.hpp.

@@ -1243,11 +1243,14 @@

m_user_request is null (no would-block at the moment); or it is not null, but thread W has signaled it is done awaiting non-would-block, so thread U is trying to nullify it via nb-reads.

Exception: m_mq->interrupt_receives() is done from thread U (dtor), potentially while thread W is inside m_mq->wait_receivable(). However that specific action is allowed by Persistent_mq_handle contract (in fact that is the main utility of Persistent_mq_handle::interrupt_receives()). It makes the Persistent_mq_handle::wait_receivable() immediately return.

-

If and only if m_pending_err_code is truthy, m_mq is null; hence the handle's system resources (and the handle object's memory itself) are given back at the earliest possible time.

+

When is it null?

+

It is null if and only if in ctor we were unable to create it (an error occurred in subsuming mq arg). Other than this quite-fatal corner case, m_mq remains non-null until dtor executes.

+

Important subtlety: We might be tempted to also nullify it upon detecting an error on the queue, so as to early-return a resource to the OS. However, for the same reason detailed in doc header for Native_socket_stream::Impl::m_peer_socket_hosed, we must not do so until dtor runs. (Technically this is only the case if Mq::S_HAS_NATIVE_HANDLE == true, as only then would the user be potentially directly performing async-waits on the underlying native-handle... but let's not get overly cute and entropy-laden.)

+

So, reminder: Do not m_mq.reset() until dtor, if not null upon exiting ctor!

-

Definition at line 311 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 321 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1277,7 +1280,7 @@

m_mq is accessed simple and as described in its doc header. After all this value would never change anyway.

-

Definition at line 319 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 329 of file blob_stream_mq_rcv_impl.hpp.

@@ -1308,9 +1311,9 @@

See also
m_mq_ready_writer.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 331 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 341 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1341,9 +1344,9 @@

See also
m_mq_ready_reader.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 342 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 352 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1377,7 +1380,7 @@

Definition at line 278 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1434,9 +1437,9 @@

m_mq; or falsy if no such error has yet been detected.

Among possible other uses, it is emitted to the ongoing-at-the-time async_receive_blob()'s completion handler (if one is indeed outstanding) and immediately to any subsequent async_receive_blob().

-

Definition at line 408 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 418 of file blob_stream_mq_rcv_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::Blob_stream_mq_receiver_impl().

@@ -1498,7 +1501,7 @@

m_user_request m_target_blob; but that seems uncool.

Todo:
Maybe we should indeed use m_user_request->m_target_blob (instead of locally stored m_target_control_blob) to save RAM/a few cycles? Technically at least user should not care if some garbage is temporarily placed there (after PING a real message should arrive and replace it; or else on error or graceful-close who cares?).
-

Definition at line 400 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 410 of file blob_stream_mq_rcv_impl.hpp.

@@ -1528,7 +1531,7 @@

See also
util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
-

Definition at line 362 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 372 of file blob_stream_mq_rcv_impl.hpp.

@@ -1559,7 +1562,7 @@

Rationale

It exists for a hopefully obvious reasons: At least a non-immediately-completed async_receive_blob() needs to keep track of the request so as to know where to place results and what completion handler to invoke.

As for it being nullable: this is used to guard against async_receive_*() being invoked while another is already outstanding. We do not queue pending requests per sync_io::Blob_receiver concept. (However the non-sync_io a/k/a async-I/O Blob_receiver transport::Blob_stream_mq_receiver does. Therefore the latter class does internally implement a User_request queue.)

-

Definition at line 378 of file blob_stream_mq_rcv_impl.hpp.

+

Definition at line 388 of file blob_stream_mq_rcv_impl.hpp.

@@ -1570,7 +1573,7 @@

Rationale

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html index 1f9980132..120dd8172 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html index be26e2986..41aaf183d 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html @@ -1035,7 +1035,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl-members.html index 4b4a2d06d..1d860db67 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl-members.html @@ -124,7 +124,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html index e815e93c7..786375b70 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html @@ -451,9 +451,9 @@

Definition at line 638 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 640 of file blob_stream_mq_snd_impl.hpp.

-

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::Blob_stream_mq_base_impl< Persistent_mq_handle >::ensure_unique_peer(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_blocking_worker, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_ev_wait_hndl_mq, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq_ready_reader, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq_ready_writer, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_nb_task_engine, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_pending_err_code, and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::nickname().

+

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::Blob_stream_mq_base_impl< Persistent_mq_handle >::ensure_unique_peer(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_blocking_worker, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_ev_wait_hndl_mq, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq_ready_reader, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_mq_ready_writer, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_nb_task_engine, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::m_pending_err_code, and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::nickname().

Here is the call graph for this function:
@@ -479,7 +479,7 @@

Blob_stream_mq_sender counterpart.

-

Definition at line 751 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 753 of file blob_stream_mq_snd_impl.hpp.

@@ -501,9 +501,9 @@

Blob_stream_mq_sender counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1690 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1691 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::operator<<().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::operator<<().

Here is the caller graph for this function:
@@ -553,7 +553,7 @@

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1047 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1049 of file blob_stream_mq_snd_impl.hpp.

@@ -603,7 +603,7 @@

Returns
See async_end_sending() and end_sending().
-

Definition at line 1073 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1075 of file blob_stream_mq_snd_impl.hpp.

References ipc::transport::error::S_SYNC_IO_WOULD_BLOCK.

@@ -634,7 +634,7 @@

m_mq of the low-level payload at the head of out-queue m_pending_payloads_q, with completion handler also inside this method.

The first step of this is an async-wait via sync_io pattern.

-

Definition at line 1507 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1508 of file blob_stream_mq_snd_impl.hpp.

References ipc::util::pipe_consume(), ipc::util::pipe_produce(), and ipc::transport::error::S_INTERRUPTED.

@@ -673,7 +673,7 @@

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1170 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1172 of file blob_stream_mq_snd_impl.hpp.

@@ -694,7 +694,7 @@

Blob_stream_mq_sender counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1040 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1042 of file blob_stream_mq_snd_impl.hpp.

@@ -715,9 +715,9 @@

Blob_stream_mq_sender counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1696 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1697 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::operator<<().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::operator<<().

Here is the caller graph for this function:
@@ -752,7 +752,7 @@

util::sync_io::Timer_event_emitter, of the auto-ping timer firing; if all is cool, sends auto-ping and schedules the next such async-wait.

That wait itself can be rescheduled when non-idleness (other send attempts) occurs. If all is not cool – sends finished via *end_sending(), out-pipe hosed – then neither sends auto-ping nor schedules another.

-

Definition at line 1273 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1275 of file blob_stream_mq_snd_impl.hpp.

@@ -791,7 +791,7 @@

Returns
See above.
-

Definition at line 862 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 864 of file blob_stream_mq_snd_impl.hpp.

@@ -830,7 +830,7 @@

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 779 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 781 of file blob_stream_mq_snd_impl.hpp.

References ipc::util::Native_handle::m_native_handle.

@@ -874,7 +874,7 @@

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 876 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 878 of file blob_stream_mq_snd_impl.hpp.

References ipc::transport::error::S_INVALID_ARGUMENT, and ipc::transport::error::S_SENDS_FINISHED_CANNOT_SEND.

@@ -897,7 +897,7 @@

Blob_stream_mq_sender counterpart, but assuming PEER state.

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 1684 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1685 of file blob_stream_mq_snd_impl.hpp.

@@ -928,7 +928,7 @@

Returns
See Blob_stream_mq_sender counterpart.
-

Definition at line 822 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 824 of file blob_stream_mq_snd_impl.hpp.

References ipc::transport::Protocol_negotiator::S_VER_UNKNOWN.

@@ -972,7 +972,7 @@

Returns
A-la sync_write_or_q_payload(): false if outgoing-direction pipe still has stuff in it; true otherwise.
-

Definition at line 1448 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1449 of file blob_stream_mq_snd_impl.hpp.

@@ -1012,7 +1012,7 @@

Returns
See sync_write_or_q_ctl_cmd().
-

Definition at line 1454 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1455 of file blob_stream_mq_snd_impl.hpp.

@@ -1072,7 +1072,7 @@

avoided_qing mode for auto-ping

Returns
false if outgoing-direction pipe still has queued stuff in it that must be sent once transport becomes writable; true otherwise. If true is returned, but avoided_qing_or_null != nullptr, then possibly orig_blob was not sent (at all); was dropped (check *avoided_qing_or_null to see if so).
-

Definition at line 1334 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1336 of file blob_stream_mq_snd_impl.hpp.

@@ -1123,9 +1123,9 @@

Returns
os.
-

Definition at line 1702 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 1703 of file blob_stream_mq_snd_impl.hpp.

-

References ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::absolute_name(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::nickname().

+

References ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::absolute_name(), and ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::nickname().

Here is the call graph for this function:
@@ -1188,7 +1188,7 @@

auto_ping(); immutably equals period (auto_ping() arg) subsequently to that first successful call (if any).

-

Definition at line 575 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 577 of file blob_stream_mq_snd_impl.hpp.

@@ -1218,7 +1218,7 @@

m_auto_ping_period. Note that *end_sending(), while also sending bytes, does not schedule m_auto_ping_timer, as *end_sending() closes the conceptual pipe, and there is no need for auto-pinging (see Blob_receiver::idle_timer_run()).

Since we implement sync_io pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter m_timer_worker. See that member's doc header for more info.

-

Definition at line 588 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 590 of file blob_stream_mq_snd_impl.hpp.

@@ -1247,7 +1247,7 @@

m_timer_worker to ferry timer-fired events from m_auto_ping_timer to sync_io outside async-wait to our actual on-timer-fired handler logic.

See also
m_timer_worker for more info.
-

Definition at line 596 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 598 of file blob_stream_mq_snd_impl.hpp.

@@ -1279,9 +1279,9 @@

m_mq. Otherwise code may still be finishing up in thread W when m_mq is destroyed already. Anyway – as long as this is destroyed or .stop()ed before m_mq is gone, you're cool.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 630 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 632 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1343,7 +1343,7 @@

start_send_blob_ops()) through which we invoke the outside event loop's async-wait facility for descriptors/events to our ops.

See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.

-

Definition at line 611 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 613 of file blob_stream_mq_snd_impl.hpp.

@@ -1372,7 +1372,7 @@

m_auto_ping_timer_fired_peer.

See also
m_timer_worker for more info.
-

Definition at line 604 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 606 of file blob_stream_mq_snd_impl.hpp.

@@ -1401,9 +1401,9 @@

m_mq_ready_reader; or if m_mq can be watched directly (known at compile-time) then as m_mq itself.

Its name suggests it's watching m_mq (for transmissibility), and that's true: In the latter case one directly watches it for transmissibility in the proper direction; in the former case Persistent_mq_handle lacks a Native_handle to watch directly – but we use the m_mq_ready_* pipe and a background thread to simulate it having one. Thus in that case m_mq_ready_reader FD = this FD, and it being transmissible = MQ being transmissible.

-

Definition at line 531 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 533 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1432,7 +1432,7 @@

send_blob() calls from proceeding.

See class doc header impl section for design discussion.

-

Definition at line 562 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 564 of file blob_stream_mq_snd_impl.hpp.

@@ -1464,11 +1464,13 @@

m_pending_payloads_q is .empty() (no would-block at the moment); or it is not .empty(), but thread W has signaled it is done awaiting non-would-block, so thread U is trying to empty it via nb-writes.

Exception: m_mq->interrupt_sends() is done from thread U (dtor), potentially while thread W is inside m_mq->wait_sendable(). However that specific action is allowed by Persistent_mq_handle contract (in fact that is the main utility of Persistent_mq_handle::interrupt_sends()). It makes the Persistent_mq_handle::wait_sendable() immediately return.

-

If and only if m_pending_err_code is truthy, m_mq is null; hence the handle's system resources (and the handle object's memory itself) are given back at the earliest possible time.

+

When is it null?

+

See Blob_stream_mq_receiver_impl::m_mq doc header. The same comments apply here.

+

Explicit reminder though: Do not m_mq.reset() until dtor, if not null upon exiting ctor!

-

Definition at line 489 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 491 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1498,7 +1500,7 @@

m_mq is accessed simple and as described in its doc header. After all this value would never change anyway.

-

Definition at line 497 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 499 of file blob_stream_mq_snd_impl.hpp.

@@ -1529,9 +1531,9 @@

See also
m_mq_ready_writer.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 509 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 511 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1562,9 +1564,9 @@

See also
m_mq_ready_reader.

Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.

-

Definition at line 520 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 522 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1598,7 +1600,7 @@

Definition at line 456 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1655,9 +1657,9 @@

m_mq; or falsy if no such error has yet been detected.

Among possible other uses, it is returned by send_blob() and the completion handler of async_end_sending().

-

Definition at line 555 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 557 of file blob_stream_mq_snd_impl.hpp.

-

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

+

Referenced by ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::Blob_stream_mq_sender_impl().

@@ -1686,7 +1688,7 @@

async_end_sending(), if it returned true and was unable to synchronously flush everything including the graceful-close itself (synchronously detecting new or previous pipe-hosing error does entail flushing everything); otherwise .empty().

It's the completion handler of that graceful-close-send API.

-

Definition at line 569 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 571 of file blob_stream_mq_snd_impl.hpp.

@@ -1715,7 +1717,7 @@

Snd_low_lvl_payload; followed by the payloads that should be written after that completes, in order.

Only touched if would-block is encountered in... well, see Snd_low_lvl_payload doc header (et al).

-

Definition at line 548 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 550 of file blob_stream_mq_snd_impl.hpp.

@@ -1787,7 +1789,7 @@

See also
util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
-

Definition at line 540 of file blob_stream_mq_snd_impl.hpp.

+

Definition at line 542 of file blob_stream_mq_snd_impl.hpp.

@@ -1798,7 +1800,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html index b3d3024a4..e5f03687a 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html index 70c0829b7..af110f34d 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html @@ -497,7 +497,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html index 95507765d..4a1a85906 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html index f0ecd1767..6fc3d06f5 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html @@ -545,7 +545,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html index 33368b570..06784b28f 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html @@ -126,7 +126,7 @@ diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html index a96fcab3a..65800f380 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html @@ -1389,7 +1389,7 @@

References impl().

-

Referenced by ipc::transport::sync_io::Native_socket_stream::Impl::receive_blob_max_size().

+

Referenced by ipc::transport::sync_io::Native_socket_stream::Impl::receive_blob_max_size().

Here is the call graph for this function:
@@ -2536,7 +2536,7 @@

diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl-members.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl-members.html index 08f5400a9..643dba75b 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl-members.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl-members.html @@ -95,71 +95,72 @@ m_nb_task_engineipc::transport::sync_io::Native_socket_stream::Implprivate m_nicknameipc::transport::sync_io::Native_socket_stream::Implprivate m_peer_socketipc::transport::sync_io::Native_socket_stream::Implprivate - m_peer_socket_mutexipc::transport::sync_io::Native_socket_stream::Implprivate - m_protocol_negotiatoripc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_ev_wait_funcipc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_ev_wait_hndl_idle_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_idle_timeoutipc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_idle_timeripc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_idle_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_pending_err_codeipc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_target_meta_lengthipc::transport::sync_io::Native_socket_stream::Implprivate - m_rcv_user_requestipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_auto_ping_periodipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_auto_ping_timeripc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_auto_ping_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_ev_wait_funcipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_ev_wait_hndl_auto_ping_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_finishedipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_pending_err_codeipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_pending_on_last_send_done_func_or_emptyipc::transport::sync_io::Native_socket_stream::Implprivate - m_snd_pending_payloads_qipc::transport::sync_io::Native_socket_stream::Implprivate - m_stateipc::transport::sync_io::Native_socket_stream::Implprivate - m_timer_workeripc::transport::sync_io::Native_socket_stream::Implprivate - nickname() constipc::transport::sync_io::Native_socket_stream::Impl - Op enum nameipc::transport::sync_io::Native_socket_stream::Implprivate - op_started(util::String_view context) constipc::transport::sync_io::Native_socket_stream::Implprivate - operator<<(std::ostream &os, const Native_socket_stream::Impl &val)ipc::transport::sync_io::Native_socket_stream::Implrelated - Rcv_msg_state enum nameipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_nb_read_low_lvl_payload(Native_handle *target_payload_hndl_or_null, const util::Blob_mutable &target_payload_blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_not_idle()ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_on_ev_idle_timer_fired()ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_on_ev_peer_socket_readable_or_error(Rcv_msg_state msg_state, size_t n_left)ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_on_handle_finalized(Native_handle hndl_or_null, size_t n_rcvd, Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_on_head_payload(Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_read_blob(Rcv_msg_state msg_state, const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate - rcv_read_msg(Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate - receive_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl - receive_meta_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl - remote_peer_process_credentials(Error_code *err_code) constipc::transport::sync_io::Native_socket_stream::Impl - replace_event_wait_handles(const Function< util::sync_io::Asio_waitable_native_handle()> &create_ev_wait_hndl_func)ipc::transport::sync_io::Native_socket_stream::Impl - S_MAX_META_BLOB_LENGTHipc::transport::sync_io::Native_socket_stream::Implstatic - S_META_BLOB_LENGTH_PING_SENTINELipc::transport::sync_io::Native_socket_stream::Implprivatestatic - send_blob(const util::Blob_const &blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl - send_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl - send_meta_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl - send_native_handle(Native_handle hndl_or_null, const util::Blob_const &meta_blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl - snd_async_write_q_head_payload()ipc::transport::sync_io::Native_socket_stream::Implprivate - snd_nb_write_low_lvl_payload(Native_handle hndl_or_null, const util::Blob_const &blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Implprivate - snd_on_ev_auto_ping_now_timer_fired()ipc::transport::sync_io::Native_socket_stream::Implprivate - snd_on_ev_peer_socket_writable_or_error()ipc::transport::sync_io::Native_socket_stream::Implprivate - snd_sync_write_or_q_payload(Native_handle hndl_or_null, const util::Blob_const &orig_blob, bool avoid_qing)ipc::transport::sync_io::Native_socket_stream::Implprivate - start_connect_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Implprivate - start_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Implprivate - start_receive_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl - start_receive_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl - start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl - start_send_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl - State enum nameipc::transport::sync_io::Native_socket_stream::Implprivate - state_peer(util::String_view context) constipc::transport::sync_io::Native_socket_stream::Implprivate - sync_connect(const Shared_name &absolute_name, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl - sync_io_ev_wait_func() constipc::transport::sync_io::Native_socket_stream::Implprivate - sync_io_ev_wait_func()ipc::transport::sync_io::Native_socket_stream::Implprivate - ~Impl()ipc::transport::sync_io::Native_socket_stream::Impl + m_peer_socket_hosedipc::transport::sync_io::Native_socket_stream::Implprivate + m_peer_socket_mutexipc::transport::sync_io::Native_socket_stream::Implprivate + m_protocol_negotiatoripc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_ev_wait_funcipc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_ev_wait_hndl_idle_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_idle_timeoutipc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_idle_timeripc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_idle_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_pending_err_codeipc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_target_meta_lengthipc::transport::sync_io::Native_socket_stream::Implprivate + m_rcv_user_requestipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_auto_ping_periodipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_auto_ping_timeripc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_auto_ping_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_ev_wait_funcipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_ev_wait_hndl_auto_ping_timer_fired_peeripc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_finishedipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_pending_err_codeipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_pending_on_last_send_done_func_or_emptyipc::transport::sync_io::Native_socket_stream::Implprivate + m_snd_pending_payloads_qipc::transport::sync_io::Native_socket_stream::Implprivate + m_stateipc::transport::sync_io::Native_socket_stream::Implprivate + m_timer_workeripc::transport::sync_io::Native_socket_stream::Implprivate + nickname() constipc::transport::sync_io::Native_socket_stream::Impl + Op enum nameipc::transport::sync_io::Native_socket_stream::Implprivate + op_started(util::String_view context) constipc::transport::sync_io::Native_socket_stream::Implprivate + operator<<(std::ostream &os, const Native_socket_stream::Impl &val)ipc::transport::sync_io::Native_socket_stream::Implrelated + Rcv_msg_state enum nameipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_nb_read_low_lvl_payload(Native_handle *target_payload_hndl_or_null, const util::Blob_mutable &target_payload_blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_not_idle()ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_on_ev_idle_timer_fired()ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_on_ev_peer_socket_readable_or_error(Rcv_msg_state msg_state, size_t n_left)ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_on_handle_finalized(Native_handle hndl_or_null, size_t n_rcvd, Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_on_head_payload(Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_read_blob(Rcv_msg_state msg_state, const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate + rcv_read_msg(Error_code *sync_err_code, size_t *sync_sz)ipc::transport::sync_io::Native_socket_stream::Implprivate + receive_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl + receive_meta_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl + remote_peer_process_credentials(Error_code *err_code) constipc::transport::sync_io::Native_socket_stream::Impl + replace_event_wait_handles(const Function< util::sync_io::Asio_waitable_native_handle()> &create_ev_wait_hndl_func)ipc::transport::sync_io::Native_socket_stream::Impl + S_MAX_META_BLOB_LENGTHipc::transport::sync_io::Native_socket_stream::Implstatic + S_META_BLOB_LENGTH_PING_SENTINELipc::transport::sync_io::Native_socket_stream::Implprivatestatic + send_blob(const util::Blob_const &blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl + send_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl + send_meta_blob_max_size() constipc::transport::sync_io::Native_socket_stream::Impl + send_native_handle(Native_handle hndl_or_null, const util::Blob_const &meta_blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl + snd_async_write_q_head_payload()ipc::transport::sync_io::Native_socket_stream::Implprivate + snd_nb_write_low_lvl_payload(Native_handle hndl_or_null, const util::Blob_const &blob, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Implprivate + snd_on_ev_auto_ping_now_timer_fired()ipc::transport::sync_io::Native_socket_stream::Implprivate + snd_on_ev_peer_socket_writable_or_error()ipc::transport::sync_io::Native_socket_stream::Implprivate + snd_sync_write_or_q_payload(Native_handle hndl_or_null, const util::Blob_const &orig_blob, bool avoid_qing)ipc::transport::sync_io::Native_socket_stream::Implprivate + start_connect_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Implprivate + start_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Implprivate + start_receive_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl + start_receive_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl + start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl + start_send_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)ipc::transport::sync_io::Native_socket_stream::Impl + State enum nameipc::transport::sync_io::Native_socket_stream::Implprivate + state_peer(util::String_view context) constipc::transport::sync_io::Native_socket_stream::Implprivate + sync_connect(const Shared_name &absolute_name, Error_code *err_code)ipc::transport::sync_io::Native_socket_stream::Impl + sync_io_ev_wait_func() constipc::transport::sync_io::Native_socket_stream::Implprivate + sync_io_ev_wait_func()ipc::transport::sync_io::Native_socket_stream::Implprivate + ~Impl()ipc::transport::sync_io::Native_socket_stream::Impl diff --git a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html index a8c96ef8f..627c83ba6 100644 --- a/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html +++ b/doc/ipc_doc/generated/html_full/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html @@ -306,13 +306,16 @@  The Task_engine for m_*ev_wait_hndl_*, unless it is replaced via replace_event_wait_handles(). More...
  boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socketm_peer_socket - The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become hosed and hence closed+destroyed the boost.asio Peer_socket. More...
+ The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become hosed and hence have ceased all all work on the boost.asio Peer_socket short of its destruction. More...
  +boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socketm_peer_socket_hosed + Null to start, this takes on the value from m_peer_socket when and only when m_peer_socket is nullified (which occurs when and only when an error is detected on it). More...
util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_peer_socket  Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus being used to wait on events from) m_peer_socket. More...
  flow::util::Mutex_non_recursive m_peer_socket_mutex - Protects m_peer_socket and its bro m_ev_wait_hndl_peer_socket. More...
+ Protects m_peer_socket and its bros m_ev_wait_hndl_peer_socket and m_peer_socket_hosed. More...
  util::sync_io::Timer_event_emitter m_timer_worker  As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for Timer wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable by the sync_io-pattern-using outside event loop. More...
@@ -668,7 +671,7 @@

Definition at line 69 of file native_socket_stream_impl.cpp.

-

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::sync_io::Native_socket_stream::get_logger(), m_conn_async_worker, m_conn_ev_wait_hndl_peer_socket, m_ev_wait_hndl_peer_socket, m_nb_task_engine, m_peer_socket, nickname(), and start_connect_ops().

+

References ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::transport::sync_io::Native_socket_stream::get_logger(), m_conn_async_worker, m_conn_ev_wait_hndl_peer_socket, m_ev_wait_hndl_peer_socket, m_nb_task_engine, m_peer_socket, nickname(), and start_connect_ops().

Here is the call graph for this function:
@@ -1776,7 +1779,7 @@

Native_socket_stream counterpart.

Returns
See Native_socket_stream counterpart.
-

Definition at line 802 of file native_socket_stream_impl_rcv.cpp.

+

Definition at line 806 of file native_socket_stream_impl_rcv.cpp.

References ipc::transport::sync_io::Native_socket_stream::receive_meta_blob_max_size().

@@ -1806,7 +1809,7 @@

Native_socket_stream counterpart.

Returns
See Native_socket_stream counterpart.
-

Definition at line 797 of file native_socket_stream_impl_rcv.cpp.

+

Definition at line 801 of file native_socket_stream_impl_rcv.cpp.

References ipc::transport::sync_io::Native_socket_stream::S_MAX_META_BLOB_LENGTH.

@@ -1954,7 +1957,7 @@

Native_socket_stream counterpart.

Returns
See Native_socket_stream counterpart.
-

Definition at line 1021 of file native_socket_stream_impl_snd.cpp.

+

Definition at line 1025 of file native_socket_stream_impl_snd.cpp.

References ipc::transport::sync_io::Native_socket_stream::send_meta_blob_max_size().

@@ -1984,7 +1987,7 @@

Native_socket_stream counterpart.

Returns
See Native_socket_stream counterpart.
-

Definition at line 1016 of file native_socket_stream_impl_snd.cpp.

+

Definition at line 1020 of file native_socket_stream_impl_snd.cpp.

References ipc::transport::sync_io::Native_socket_stream::S_MAX_META_BLOB_LENGTH.

@@ -2080,7 +2083,7 @@

sync_io pattern.

Behavior w/r/t m_snd_pending_err_code is the same semantics as described for snd_sync_write_or_q_payload() (must be falsy as pre-condition, is set to truthy <=> outgoing-pipe-hosing condition is encountered).

-

Definition at line 846 of file native_socket_stream_impl_snd.cpp.

+

Definition at line 850 of file native_socket_stream_impl_snd.cpp.

References ipc::transport::asio_local_stream_socket::async_write_with_native_handle(), and ipc::transport::error::S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND.

@@ -2213,7 +2216,7 @@

sync_io pattern, for the async-wait initiated by snd_async_write_q_head_payload().

Continues the async-send chain by trying to snd_nb_write_low_lvl_payload() as much of m_snd_pending_payloads_q as it can synchronously; invokes snd_async_write_q_head_payload() again if not all could be so sent. Lastly, if indeed it sends-out everything, or encounters out-pipe being hosed, and async_end_sending() completion handler is pending to be called – it ensures that occurs (synchronously inside).

-

Definition at line 900 of file native_socket_stream_impl_snd.cpp.

+

Definition at line 904 of file native_socket_stream_impl_snd.cpp.

@@ -2382,7 +2385,7 @@

Returns
See start_*_ops(). Note that start_connect_ops(), as a special case, no-ops and returns false if m_state is not NULL.
-

Definition at line 1589 of file native_socket_stream_impl.hpp.

+

Definition at line 1633 of file native_socket_stream_impl.hpp.

@@ -2516,7 +2519,7 @@

Definition at line 28 of file native_socket_stream_impl_snd.cpp.

-

References ipc::transport::Protocol_negotiator::local_max_proto_ver_for_sending(), m_protocol_negotiator, m_snd_pending_err_code, ipc::transport::Protocol_negotiator::S_VER_UNKNOWN, and snd_sync_write_or_q_payload().

+

References ipc::transport::Protocol_negotiator::local_max_proto_ver_for_sending(), m_protocol_negotiator, m_snd_pending_err_code, ipc::transport::Protocol_negotiator::S_VER_UNKNOWN, and snd_sync_write_or_q_payload().

Here is the call graph for this function:
@@ -2697,7 +2700,7 @@

Returns
See above.
-

Definition at line 1569 of file native_socket_stream_impl.hpp.

+

Definition at line 1613 of file native_socket_stream_impl.hpp.

@@ -2775,7 +2778,7 @@

sync_connect() might be called and not no-op).

See "Connect-ops impl design" in class doc header for key background discussion of sync_connect() et al.

-

Definition at line 1335 of file native_socket_stream_impl.hpp.

+

Definition at line 1379 of file native_socket_stream_impl.hpp.

Referenced by Impl().

@@ -2804,9 +2807,9 @@

start_connect_ops()) through which we invoke the outside event loop's async-wait facility for descriptors/events relevant to connect-ops.

See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.

-

Definition at line 1372 of file native_socket_stream_impl.hpp.

+

Definition at line 1416 of file native_socket_stream_impl.hpp.

-

Referenced by sync_io_ev_wait_func().

+

Referenced by sync_io_ev_wait_func().

@@ -2838,7 +2841,7 @@

Rationale

It is also possible to instead just use m_ev_wait_hndl_peer_socket for the connect-ops sync_io-pattern setup, along with using it for send-ops and receive-ops. However, while storing marginally less state, it is pretty annoying in other ways: replace_event_wait_handles() to set up future send-ops and receive-ops can happen at any time, including before sync_connect(); so sync_connect() would need to save m_ev_wait_hndl_peer_socket, then re-associate it with m_conn_async_worker, then restore it. Whereas by decoupling as we do here, we separate the NULL-state and PEER-state algorithms cleanly and need to worry about that stuff.

(Maintenance note: If/when – as speculated in class doc header section "Connect-ops impl design" – we make start_connect_ops() and async_connect() public at some point, then probably it'll be best to indeed eliminate m_conn_ev_wait_hndl_peer_socket and use m_ev_wait_hndl_peer_socket for all the ops, including having replace_event_wait_handles() handle connect-ops stuff in addition to send-ops and receive-ops. Now the user will be in charge of providing async-waiting machinery for connect-ops per normal sync_op pattern, as opposed to the existing situation where we manage that internally to *this.)

-

Definition at line 1365 of file native_socket_stream_impl.hpp.

+

Definition at line 1409 of file native_socket_stream_impl.hpp.

Referenced by Impl().

@@ -2896,10 +2899,10 @@

Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus being used to wait on events from) m_peer_socket.

-

Protected by m_peer_socket_mutex, along with m_peer_socket. To be accessed only if an error hasn't nullified m_peer_socket since the last critical section. Now, "accessed" always (once set up) means calling m_*_ev_wait_wait_func with this guy as the 1st arg; it can be pictured as a sync_io equivalent of m_peer_socket->async_wait(). However it does mean the *this user must be careful not to lock something in that function that is already locked when they call (*on_active_ev_func)() – that would cause a deadlock – and if it's a recursive mutex, then they risk an AB/BA deadlock.

+

Protected by m_peer_socket_mutex, along with m_peer_socket. To be accessed only if an error hasn't nullified m_peer_socket since the last critical section. Now, "accessed" always (once set up) means calling m_*_ev_wait_wait_func with this guy as the 1st arg; it can be pictured as a sync_io equivalent of m_peer_socket->async_wait(). However it does mean the *this user must be careful not to lock something in that function that is already locked when they call (*on_active_ev_func)() – that would cause a deadlock – and if it's a recursive mutex, then they risk an AB/BA deadlock.

See also
m_timer_worker for more info.
-

Definition at line 1311 of file native_socket_stream_impl.hpp.

+

Definition at line 1355 of file native_socket_stream_impl.hpp.

Referenced by Impl().

@@ -2981,8 +2984,8 @@

-

The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become hosed and hence closed+destroyed the boost.asio Peer_socket.

-

Note that (1) it starts non-null, and is in "open" (FD-bearing) state from the start – even if the NULL-state ctor was used; and (2) can only become null (irreversibly so) when in PEER state, only on error.

    +

    The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become hosed and hence have ceased all all work on the boost.asio Peer_socket short of its destruction.

    +

    Note that (1) it starts non-null (see also related m_peer_socket_hosed), and is in "open" (FD-bearing) state from the start – even if the NULL-state ctor was used; and (2) can only become null (irreversibly so) when in PEER state, only on error.

    -

    The latter option is much more attractive in terms of API simplicity from the user's point of view (at least). So we go with that. Having make this decision, how to actually make it work? Possibilities:

      +

      The latter option is much more attractive in terms of API simplicity from the user's point of view (at least). So we go with that. Having made this decision, how to actually make it work? Possibilities:

      • The OS has these mechanisms. Linux, at least, has timerfd_create() and buddies, specifically for this. One can schedule a timer, so the kernel keeps track of all that and does it in the background; when ready the FD becomes readable. Done.
        • This is a very reasonable approach. However it is not very portable, and the API is hairy enough to require a bunch of (internal to us) wrapping code: specifying the time along the proper clock, rescheduling, canceling....
        @@ -602,7 +602,7 @@

        diff --git a/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp.html b/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp.html index ae2bd26bd..eb63ccbee 100644 --- a/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp_source.html b/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp_source.html index 1172c0668..44bf883e5 100644 --- a/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/client__session__adapter_8hpp_source.html @@ -311,7 +311,7 @@ diff --git a/doc/ipc_doc/generated/html_full/common_8cpp.html b/doc/ipc_doc/generated/html_full/common_8cpp.html index d2005fd5d..bb4bf65ce 100644 --- a/doc/ipc_doc/generated/html_full/common_8cpp.html +++ b/doc/ipc_doc/generated/html_full/common_8cpp.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/common_8cpp_source.html b/doc/ipc_doc/generated/html_full/common_8cpp_source.html index c425cb42e..93b1dc5a2 100644 --- a/doc/ipc_doc/generated/html_full/common_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/common_8cpp_source.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/common_8hpp.html b/doc/ipc_doc/generated/html_full/common_8hpp.html index 9a60d640e..cdc2d8cd7 100644 --- a/doc/ipc_doc/generated/html_full/common_8hpp.html +++ b/doc/ipc_doc/generated/html_full/common_8hpp.html @@ -116,7 +116,7 @@ diff --git a/doc/ipc_doc/generated/html_full/common_8hpp_source.html b/doc/ipc_doc/generated/html_full/common_8hpp_source.html index d74e96a45..0329d4260 100644 --- a/doc/ipc_doc/generated/html_full/common_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/common_8hpp_source.html @@ -425,7 +425,7 @@ diff --git a/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp.html b/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp.html index 753a78f6e..a43bd0bd0 100644 --- a/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp.html +++ b/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp_source.html b/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp_source.html index af1a400c6..fa63f1cb5 100644 --- a/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/default__init__allocator_8hpp_source.html @@ -224,7 +224,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp.html index 2591fc13e..0e42c3435 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp_source.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp_source.html index 4f3aa6398..44f303d68 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8cpp_source.html @@ -167,7 +167,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp.html index 52135d9ad..7b25429a7 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp_source.html index 582ef8739..35b3dc69a 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket_8hpp_source.html @@ -462,7 +462,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp.html index 51dba2b5f..3f852a20a 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp_source.html index e27e9b7f7..7e7f430f1 100644 --- a/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2asio__local__stream__socket__fwd_8hpp_source.html @@ -219,7 +219,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp.html index 1ab4c4f13..817a5bbcb 100644 --- a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp_source.html index d5a065cc2..5a28a8cf3 100644 --- a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__rcv__impl_8hpp_source.html @@ -440,7 +440,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp.html index cfeffa5c0..53fab6d38 100644 --- a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp_source.html index e51709a6a..5ab414082 100644 --- a/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2blob__stream__mq__snd__impl_8hpp_source.html @@ -472,7 +472,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2common_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2common_8hpp.html index 66956fbfd..e81c829f9 100644 --- a/doc/ipc_doc/generated/html_full/detail_2common_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2common_8hpp.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2common_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2common_8hpp_source.html index 83c9fa1de..f0a851f15 100644 --- a/doc/ipc_doc/generated/html_full/detail_2common_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2common_8hpp_source.html @@ -132,7 +132,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp.html b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp.html index f153fe44a..e77639f0f 100644 --- a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp_source.html b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp_source.html index 492d27db0..4902b648e 100644 --- a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8cpp_source.html @@ -482,7 +482,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp.html index 7913bb7ec..ed64e01a0 100644 --- a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp_source.html index b17eecab0..c4d151945 100644 --- a/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2native__socket__stream__impl_8hpp_source.html @@ -584,7 +584,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp.html index fd3bd62e7..09b2b4e15 100644 --- a/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp_source.html index 75454fb67..53a9b58a2 100644 --- a/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2session__fwd_8hpp_source.html @@ -179,7 +179,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp.html index 376f8b5db..509395cfd 100644 --- a/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp_source.html index 2c6ed811e..6fe5a0ba4 100644 --- a/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2transport__fwd_8hpp_source.html @@ -190,14 +190,14 @@
        Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_receiver class template.
        Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_sender class template.
        sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
        -
        std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
        Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
        +
        std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
        Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
        Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...
        std::ostream & operator<<(std::ostream &os, const Bipc_mq_handle &val)
        Prints string representation of the given Bipc_mq_handle to the given ostream.
        diff --git a/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp.html index ad1bda30b..c76c74ba8 100644 --- a/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp.html @@ -135,7 +135,7 @@ diff --git a/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp_source.html index 7a569f25c..ad54fe075 100644 --- a/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/detail_2util__fwd_8hpp_source.html @@ -328,7 +328,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000021.html b/doc/ipc_doc/generated/html_full/dir_000000_000021.html index ed75e23d1..5716b4ff5 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000021.html @@ -70,7 +70,7 @@

        arena_lend → session Relation

        File in session/detail/shm/arena_lendIncludes file in session
        jemalloc / client_session_impl.hppdetail / client_session_impl.hpp
        jemalloc / client_session_impl.hpperror.hpp
        jemalloc / jemalloc_fwd.hppsession_fwd.hpp
        jemalloc / server_session_impl.hppdetail / server_session_impl.hpp
        jemalloc / server_session_impl.hpperror.hpp
        jemalloc / session_impl.hppdetail / session_shared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000026.html b/doc/ipc_doc/generated/html_full/dir_000000_000026.html index 17504cf8c..9a869c19d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000026.html @@ -70,7 +70,7 @@

        arena_lend → shm Relation

        File in session/detail/shm/arena_lendIncludes file in shm
        jemalloc / client_session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000029.html b/doc/ipc_doc/generated/html_full/dir_000000_000029.html index 127b75fc2..b98cc28fa 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000029.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000029.html @@ -70,7 +70,7 @@

        arena_lend → shm Relation

        File in session/detail/shm/arena_lendIncludes file in session/shm
        jemalloc / session_impl.hpparena_lend / jemalloc / error.hpp
        jemalloc / session_impl.hpparena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000041.html b/doc/ipc_doc/generated/html_full/dir_000000_000041.html index 758666117..ae19f2585 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000041.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000041.html @@ -70,7 +70,7 @@

        arena_lend → transport Relation

        File in session/detail/shm/arena_lendIncludes file in transport
        jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc_fwd.hpp
        jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000042.html b/doc/ipc_doc/generated/html_full/dir_000000_000042.html index 7cdfd1a5b..fe7178762 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000042.html @@ -70,7 +70,7 @@

        arena_lend → transport Relation

        File in session/detail/shm/arena_lendIncludes file in transport
        jemalloc / session_impl.hppstruc / channel_base.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000000_000043.html b/doc/ipc_doc/generated/html_full/dir_000000_000043.html index 8f99b5382..8ea40c8c4 100644 --- a/doc/ipc_doc/generated/html_full/dir_000000_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000000_000043.html @@ -70,7 +70,7 @@

        arena_lend → util Relation

        File in session/detail/shm/arena_lendIncludes file in util
        jemalloc / session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000001_000015.html b/doc/ipc_doc/generated/html_full/dir_000001_000015.html index 42dc35d60..dc2b295d4 100644 --- a/doc/ipc_doc/generated/html_full/dir_000001_000015.html +++ b/doc/ipc_doc/generated/html_full/dir_000001_000015.html @@ -70,7 +70,7 @@

        arena_lend → detail Relation

        File in session/shm/arena_lendIncludes file in session/detail
        jemalloc / client_session.hppshm / arena_lend / jemalloc / client_session_impl.hpp
        jemalloc / jemalloc_fwd.hppshm / arena_lend / jemalloc / jemalloc_fwd.hpp
        jemalloc / server_session.hppshm / arena_lend / jemalloc / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000001_000021.html b/doc/ipc_doc/generated/html_full/dir_000001_000021.html index 02c78019d..387cae7c2 100644 --- a/doc/ipc_doc/generated/html_full/dir_000001_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000001_000021.html @@ -70,7 +70,7 @@

        arena_lend → session Relation

        File in session/shm/arena_lendIncludes file in session
        jemalloc / client_session.hppclient_session.hpp
        jemalloc / server_session.hppserver_session.hpp
        jemalloc / session_server.hppdetail / session_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000001_000022.html b/doc/ipc_doc/generated/html_full/dir_000001_000022.html index b0b6a8499..b9aaebca2 100644 --- a/doc/ipc_doc/generated/html_full/dir_000001_000022.html +++ b/doc/ipc_doc/generated/html_full/dir_000001_000022.html @@ -70,7 +70,7 @@

        arena_lend → session Relation

        File in session/shm/arena_lendIncludes file in session
        jemalloc / jemalloc.hppshm / shm.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000001_000026.html b/doc/ipc_doc/generated/html_full/dir_000001_000026.html index 7aed8af6e..239389df2 100644 --- a/doc/ipc_doc/generated/html_full/dir_000001_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000001_000026.html @@ -70,7 +70,7 @@

        arena_lend → shm Relation

        File in session/shm/arena_lendIncludes file in shm
        jemalloc / session.hppstl / stateless_allocator.hpp
        jemalloc / session_server.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000001_000043.html b/doc/ipc_doc/generated/html_full/dir_000001_000043.html index 98113f59f..2d8d95f6c 100644 --- a/doc/ipc_doc/generated/html_full/dir_000001_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000001_000043.html @@ -70,7 +70,7 @@

        arena_lend → util Relation

        File in session/shm/arena_lendIncludes file in util
        jemalloc / error.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000002_000040.html b/doc/ipc_doc/generated/html_full/dir_000002_000040.html index d81134e6e..abfe2f3f4 100644 --- a/doc/ipc_doc/generated/html_full/dir_000002_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000002_000040.html @@ -70,7 +70,7 @@

        arena_lend → transport Relation

        File in transport/struc/shm/arena_lendIncludes file in transport
        jemalloc / jemalloc.hppstruc / shm / serializer.hpp
        jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000003_000021.html b/doc/ipc_doc/generated/html_full/dir_000003_000021.html index 3d0e08bd9..21c12da89 100644 --- a/doc/ipc_doc/generated/html_full/dir_000003_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000003_000021.html @@ -70,7 +70,7 @@

        classic → session Relation

        File in session/detail/shm/classicIncludes file in session
        classic_fwd.hppsession_fwd.hpp
        client_session_impl.hppdetail / client_session_impl.hpp
        server_session_impl.hppdetail / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000003_000025.html b/doc/ipc_doc/generated/html_full/dir_000003_000025.html index 36a1569f1..144161235 100644 --- a/doc/ipc_doc/generated/html_full/dir_000003_000025.html +++ b/doc/ipc_doc/generated/html_full/dir_000003_000025.html @@ -70,7 +70,7 @@

        classic → shm Relation

        File in session/detail/shm/classicIncludes file in session/shm
        session_impl.hppclassic / classic.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000003_000026.html b/doc/ipc_doc/generated/html_full/dir_000003_000026.html index d570949bc..eb09b6ed6 100644 --- a/doc/ipc_doc/generated/html_full/dir_000003_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000003_000026.html @@ -70,7 +70,7 @@

        classic → shm Relation

        File in session/detail/shm/classicIncludes file in shm
        session_impl.hppclassic / classic.hpp
        session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000003_000040.html b/doc/ipc_doc/generated/html_full/dir_000003_000040.html index 2785760af..bd9bbbc80 100644 --- a/doc/ipc_doc/generated/html_full/dir_000003_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000003_000040.html @@ -70,7 +70,7 @@

        classic → transport Relation

        File in session/detail/shm/classicIncludes file in transport
        session_impl.hppstruc / shm / classic / classic.hpp
        session_impl.hppstruc / shm / classic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000003_000043.html b/doc/ipc_doc/generated/html_full/dir_000003_000043.html index 3a159b3c3..e68993f4c 100644 --- a/doc/ipc_doc/generated/html_full/dir_000003_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000003_000043.html @@ -70,7 +70,7 @@

        classic → util Relation

        File in session/detail/shm/classicIncludes file in util
        session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000004_000014.html b/doc/ipc_doc/generated/html_full/dir_000004_000014.html index a38f62ab0..17f8d2b22 100644 --- a/doc/ipc_doc/generated/html_full/dir_000004_000014.html +++ b/doc/ipc_doc/generated/html_full/dir_000004_000014.html @@ -70,7 +70,7 @@

        classic → detail Relation

        File in session/shm/classicIncludes file in session/detail
        classic_fwd.hppshm / classic / classic_fwd.hpp
        client_session.hppshm / classic / client_session_impl.hpp
        server_session.hppshm / classic / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000004_000021.html b/doc/ipc_doc/generated/html_full/dir_000004_000021.html index 544b59a57..43ac3ed28 100644 --- a/doc/ipc_doc/generated/html_full/dir_000004_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000004_000021.html @@ -70,7 +70,7 @@

        classic → session Relation

        File in session/shm/classicIncludes file in session
        client_session.hppclient_session.hpp
        server_session.hppserver_session.hpp
        session_server.hppdetail / session_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000004_000026.html b/doc/ipc_doc/generated/html_full/dir_000004_000026.html index 0b2fe783c..2c53b3058 100644 --- a/doc/ipc_doc/generated/html_full/dir_000004_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000004_000026.html @@ -70,7 +70,7 @@

        classic → shm Relation

        File in session/shm/classicIncludes file in shm
        classic.hppclassic / classic_fwd.hpp
        classic.hppclassic / pool_arena.hpp
        client_session.hppclassic / classic.hpp
        server_session.hppclassic / classic.hpp
        session.hppclassic / classic.hpp
        session.hppstl / stateless_allocator.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000005_000031.html b/doc/ipc_doc/generated/html_full/dir_000005_000031.html index 4ab3abb91..101a3d475 100644 --- a/doc/ipc_doc/generated/html_full/dir_000005_000031.html +++ b/doc/ipc_doc/generated/html_full/dir_000005_000031.html @@ -70,7 +70,7 @@

        classic → stl Relation

        File in shm/classicIncludes file in shm/stl
        classic_fwd.hppstl_fwd.hpp
        pool_arena.hpparena_activator.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000005_000043.html b/doc/ipc_doc/generated/html_full/dir_000005_000043.html index 8a6f61977..7c2d8afd0 100644 --- a/doc/ipc_doc/generated/html_full/dir_000005_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000005_000043.html @@ -70,7 +70,7 @@

        classic → util Relation

        File in shm/classicIncludes file in util
        classic_fwd.hppshared_name_fwd.hpp
        error.cpputil_fwd.hpp
        pool_arena.cppdetail / util.hpp
        pool_arena.cppdetail / util_fwd.hpp
        pool_arena.hppshared_name.hpp
        pool_arena.hppdetail / util.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000006_000026.html b/doc/ipc_doc/generated/html_full/dir_000006_000026.html index 11ce4a1c2..3f3085338 100644 --- a/doc/ipc_doc/generated/html_full/dir_000006_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000006_000026.html @@ -70,7 +70,7 @@

        classic → shm Relation

        File in transport/struc/shm/classicIncludes file in shm
        classic_fwd.hppclassic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000008_000035.html b/doc/ipc_doc/generated/html_full/dir_000008_000035.html index 35a95d4a5..148c2476e 100644 --- a/doc/ipc_doc/generated/html_full/dir_000008_000035.html +++ b/doc/ipc_doc/generated/html_full/dir_000008_000035.html @@ -70,7 +70,7 @@

        detail → sync_io Relation

        File in transport/detailIncludes file in transport/sync_io
        blob_stream_mq_rcv_impl.hppdetail / async_adapter_rcv.hpp
        blob_stream_mq_rcv_impl.hppblob_stream_mq_rcv.hpp
        blob_stream_mq_snd_impl.hppdetail / async_adapter_snd.hpp
        blob_stream_mq_snd_impl.hppblob_stream_mq_snd.hpp
        native_socket_stream_impl.hppdetail / async_adapter_rcv.hpp
        native_socket_stream_impl.hppdetail / async_adapter_snd.hpp
        native_socket_stream_impl.hppnative_socket_stream.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000008_000043.html b/doc/ipc_doc/generated/html_full/dir_000008_000043.html index 2dca32f96..3d65e38ff 100644 --- a/doc/ipc_doc/generated/html_full/dir_000008_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000008_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in transport/detailIncludes file in util
        asio_local_stream_socket.cppshared_name.hpp
        asio_local_stream_socket.hpputil_fwd.hpp
        asio_local_stream_socket_fwd.hppshared_name_fwd.hpp
        blob_stream_mq_impl.hppshared_name.hpp
        blob_stream_mq_impl.hppdetail / util_fwd.hpp
        blob_stream_mq_rcv_impl.hppsync_io / sync_io_fwd.hpp
        blob_stream_mq_snd_impl.hppsync_io / sync_io_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000009_000008.html b/doc/ipc_doc/generated/html_full/dir_000009_000008.html index 14a9a8f48..a1a8a7707 100644 --- a/doc/ipc_doc/generated/html_full/dir_000009_000008.html +++ b/doc/ipc_doc/generated/html_full/dir_000009_000008.html @@ -70,7 +70,7 @@

        detail → detail Relation

        File in transport/sync_io/detailIncludes file in transport/detail
        async_adapter_rcv.hpptransport_fwd.hpp
        async_adapter_snd.hpptransport_fwd.hpp
        blob_stream_mq_rcv_impl.hppblob_stream_mq_impl.hpp
        blob_stream_mq_snd_impl.hppblob_stream_mq_impl.hpp
        native_socket_stream_impl.hpptransport_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000009_000043.html b/doc/ipc_doc/generated/html_full/dir_000009_000043.html index 242860737..384c54fae 100644 --- a/doc/ipc_doc/generated/html_full/dir_000009_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000009_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in transport/sync_io/detailIncludes file in util
        async_adapter_snd.hppsync_io / asio_waitable_native_hndl.hpp
        blob_stream_mq_rcv_impl.hppsync_io / sync_io_fwd.hpp
        blob_stream_mq_rcv_impl.hppsync_io / detail / timer_ev_emitter.hpp
        blob_stream_mq_rcv_impl.hppdetail / util.hpp
        blob_stream_mq_snd_impl.hppsync_io / asio_waitable_native_hndl.hpp
        blob_stream_mq_snd_impl.hppsync_io / sync_io_fwd.hpp
        blob_stream_mq_snd_impl.hppsync_io / detail / timer_ev_emitter.hpp
        blob_stream_mq_snd_impl.hppdetail / util.hpp
        native_socket_stream_impl.hppsync_io / asio_waitable_native_hndl.hpp
        native_socket_stream_impl.hppsync_io / sync_io_fwd.hpp
        native_socket_stream_impl.hppsync_io / detail / timer_ev_emitter.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000011_000010.html b/doc/ipc_doc/generated/html_full/dir_000011_000010.html index ec8c69e3b..a96c4a197 100644 --- a/doc/ipc_doc/generated/html_full/dir_000011_000010.html +++ b/doc/ipc_doc/generated/html_full/dir_000011_000010.html @@ -70,7 +70,7 @@

        detail → detail Relation

        File in util/sync_io/detailIncludes file in util/detail
        timer_ev_emitter.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000012_000039.html b/doc/ipc_doc/generated/html_full/dir_000012_000039.html index 8f918283c..b9b35caab 100644 --- a/doc/ipc_doc/generated/html_full/dir_000012_000039.html +++ b/doc/ipc_doc/generated/html_full/dir_000012_000039.html @@ -70,7 +70,7 @@

        detail → transport Relation

        File in session/detailIncludes file in transport
        client_session_impl.hpperror.hpp
        client_session_impl.hppprotocol_negotiator.hpp
        server_session_impl.hppprotocol_negotiator.hpp
        session_base.hppsync_io / native_socket_stream.hpp
        session_base.hppnative_socket_stream_acceptor.hpp
        session_server_impl.hppblob_stream_mq.hpp
        session_server_impl.hpperror.hpp
        session_server_impl.hppnative_socket_stream_acceptor.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000012_000042.html b/doc/ipc_doc/generated/html_full/dir_000012_000042.html index f840b321f..13a37e492 100644 --- a/doc/ipc_doc/generated/html_full/dir_000012_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000012_000042.html @@ -70,7 +70,7 @@

        detail → transport Relation

        File in session/detailIncludes file in transport
        session_base.hppstruc / channel.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000012_000043.html b/doc/ipc_doc/generated/html_full/dir_000012_000043.html index 9a7ce1447..a001ee26c 100644 --- a/doc/ipc_doc/generated/html_full/dir_000012_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000012_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in session/detailIncludes file in util
        client_session_impl.hppdetail / util.hpp
        session_server_impl.hppdetail / util.hpp
        session_shared_name.hppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000013_000043.html b/doc/ipc_doc/generated/html_full/dir_000013_000043.html index b8933028c..a73fd0f97 100644 --- a/doc/ipc_doc/generated/html_full/dir_000013_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000013_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in session/sync_io/detailIncludes file in util
        session_adapter.hppsync_io / sync_io_fwd.hpp
        session_adapter.hppdetail / util_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000014_000021.html b/doc/ipc_doc/generated/html_full/dir_000014_000021.html index 088c9b1a4..7b36c0a0d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000014_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000014_000021.html @@ -70,7 +70,7 @@

        detail → session Relation

        File in session/detailIncludes file in session
        shm / classic / classic_fwd.hppsession_fwd.hpp
        shm / classic / client_session_impl.hppdetail / client_session_impl.hpp
        shm / classic / server_session_impl.hppdetail / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000014_000025.html b/doc/ipc_doc/generated/html_full/dir_000014_000025.html index 94685ccd7..43fb93542 100644 --- a/doc/ipc_doc/generated/html_full/dir_000014_000025.html +++ b/doc/ipc_doc/generated/html_full/dir_000014_000025.html @@ -70,7 +70,7 @@

        detail → shm Relation

        File in session/detailIncludes file in session/shm
        shm / classic / session_impl.hppclassic / classic.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000014_000026.html b/doc/ipc_doc/generated/html_full/dir_000014_000026.html index a425f850b..8da8c773c 100644 --- a/doc/ipc_doc/generated/html_full/dir_000014_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000014_000026.html @@ -70,7 +70,7 @@

        detail → shm Relation

        File in session/detailIncludes file in shm
        shm / classic / session_impl.hppclassic / classic.hpp
        shm / classic / session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000014_000040.html b/doc/ipc_doc/generated/html_full/dir_000014_000040.html index 583e0508d..2caadf21f 100644 --- a/doc/ipc_doc/generated/html_full/dir_000014_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000014_000040.html @@ -70,7 +70,7 @@

        detail → transport Relation

        File in session/detailIncludes file in transport
        shm / classic / session_impl.hppstruc / shm / classic / classic.hpp
        shm / classic / session_impl.hppstruc / shm / classic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000014_000043.html b/doc/ipc_doc/generated/html_full/dir_000014_000043.html index 0691d2980..c798a35bd 100644 --- a/doc/ipc_doc/generated/html_full/dir_000014_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000014_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in session/detailIncludes file in util
        shm / classic / session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000021.html b/doc/ipc_doc/generated/html_full/dir_000015_000021.html index 13d65345a..d99b8ad9e 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000021.html @@ -70,7 +70,7 @@

        detail → session Relation

        File in session/detailIncludes file in session
        shm / arena_lend / jemalloc / client_session_impl.hppdetail / client_session_impl.hpp
        shm / arena_lend / jemalloc / client_session_impl.hpperror.hpp
        shm / arena_lend / jemalloc / jemalloc_fwd.hppsession_fwd.hpp
        shm / arena_lend / jemalloc / server_session_impl.hppdetail / server_session_impl.hpp
        shm / arena_lend / jemalloc / server_session_impl.hpperror.hpp
        shm / arena_lend / jemalloc / session_impl.hppdetail / session_shared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000026.html b/doc/ipc_doc/generated/html_full/dir_000015_000026.html index a51e3be2e..c40dc2f57 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000026.html @@ -70,7 +70,7 @@

        detail → shm Relation

        File in session/detailIncludes file in shm
        shm / arena_lend / jemalloc / client_session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000029.html b/doc/ipc_doc/generated/html_full/dir_000015_000029.html index 4c1d4394f..dceb80a07 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000029.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000029.html @@ -70,7 +70,7 @@

        detail → shm Relation

        File in session/detailIncludes file in session/shm
        shm / arena_lend / jemalloc / session_impl.hpparena_lend / jemalloc / error.hpp
        shm / arena_lend / jemalloc / session_impl.hpparena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000041.html b/doc/ipc_doc/generated/html_full/dir_000015_000041.html index 466e82760..10841deb1 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000041.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000041.html @@ -70,7 +70,7 @@

        detail → transport Relation

        File in session/detailIncludes file in transport
        shm / arena_lend / jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc_fwd.hpp
        shm / arena_lend / jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000042.html b/doc/ipc_doc/generated/html_full/dir_000015_000042.html index bcb596044..b8e5df136 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000042.html @@ -70,7 +70,7 @@

        detail → transport Relation

        File in session/detailIncludes file in transport
        shm / arena_lend / jemalloc / session_impl.hppstruc / channel_base.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000015_000043.html b/doc/ipc_doc/generated/html_full/dir_000015_000043.html index b6c3985de..9232f750d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000015_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000015_000043.html @@ -70,7 +70,7 @@

        detail → util Relation

        File in session/detailIncludes file in util
        shm / arena_lend / jemalloc / session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000021.html b/doc/ipc_doc/generated/html_full/dir_000017_000021.html index ac9902e2c..b4662d54e 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000021.html @@ -70,7 +70,7 @@

        jemalloc → session Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in session
        client_session_impl.hppdetail / client_session_impl.hpp
        client_session_impl.hpperror.hpp
        jemalloc_fwd.hppsession_fwd.hpp
        server_session_impl.hpperror.hpp
        server_session_impl.hppdetail / server_session_impl.hpp
        session_impl.hppdetail / session_shared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000026.html b/doc/ipc_doc/generated/html_full/dir_000017_000026.html index 90878c68f..d67dc83a7 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000026.html @@ -70,7 +70,7 @@

        jemalloc → shm Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in shm
        client_session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000029.html b/doc/ipc_doc/generated/html_full/dir_000017_000029.html index 1afe26b4c..e81fee98b 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000029.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000029.html @@ -70,7 +70,7 @@

        jemalloc → shm Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in session/shm
        session_impl.hpparena_lend / jemalloc / error.hpp
        session_impl.hpparena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000041.html b/doc/ipc_doc/generated/html_full/dir_000017_000041.html index 5cbbf8306..d09a65c0b 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000041.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000041.html @@ -70,7 +70,7 @@

        jemalloc → transport Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in transport
        session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc.hpp
        session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000042.html b/doc/ipc_doc/generated/html_full/dir_000017_000042.html index 73bd8f71d..da3b11ebc 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000042.html @@ -70,7 +70,7 @@

        jemalloc → transport Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in transport
        session_impl.hppstruc / channel_base.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000017_000043.html b/doc/ipc_doc/generated/html_full/dir_000017_000043.html index 99f738fdd..a1afd2ddb 100644 --- a/doc/ipc_doc/generated/html_full/dir_000017_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000017_000043.html @@ -70,7 +70,7 @@

        jemalloc → util Relation

        File in session/detail/shm/arena_lend/jemallocIncludes file in util
        session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000018_000015.html b/doc/ipc_doc/generated/html_full/dir_000018_000015.html index 7257a1974..7386388af 100644 --- a/doc/ipc_doc/generated/html_full/dir_000018_000015.html +++ b/doc/ipc_doc/generated/html_full/dir_000018_000015.html @@ -70,7 +70,7 @@

        jemalloc → detail Relation

        File in session/shm/arena_lend/jemallocIncludes file in session/detail
        client_session.hppshm / arena_lend / jemalloc / client_session_impl.hpp
        jemalloc_fwd.hppshm / arena_lend / jemalloc / jemalloc_fwd.hpp
        server_session.hppshm / arena_lend / jemalloc / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000018_000021.html b/doc/ipc_doc/generated/html_full/dir_000018_000021.html index d0743b9cf..f6905055e 100644 --- a/doc/ipc_doc/generated/html_full/dir_000018_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000018_000021.html @@ -70,7 +70,7 @@

        jemalloc → session Relation

        File in session/shm/arena_lend/jemallocIncludes file in session
        client_session.hppclient_session.hpp
        server_session.hppserver_session.hpp
        session_server.hppdetail / session_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000018_000022.html b/doc/ipc_doc/generated/html_full/dir_000018_000022.html index 904f97796..fb51fbfbf 100644 --- a/doc/ipc_doc/generated/html_full/dir_000018_000022.html +++ b/doc/ipc_doc/generated/html_full/dir_000018_000022.html @@ -70,7 +70,7 @@

        jemalloc → session Relation

        File in session/shm/arena_lend/jemallocIncludes file in session
        jemalloc.hppshm / shm.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000018_000026.html b/doc/ipc_doc/generated/html_full/dir_000018_000026.html index 4e8197d74..8cec94d8b 100644 --- a/doc/ipc_doc/generated/html_full/dir_000018_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000018_000026.html @@ -70,7 +70,7 @@

        jemalloc → shm Relation

        File in session/shm/arena_lend/jemallocIncludes file in shm
        session.hppstl / stateless_allocator.hpp
        session_server.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000018_000043.html b/doc/ipc_doc/generated/html_full/dir_000018_000043.html index 4994149c6..c12c11fe1 100644 --- a/doc/ipc_doc/generated/html_full/dir_000018_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000018_000043.html @@ -70,7 +70,7 @@

        jemalloc → util Relation

        File in session/shm/arena_lend/jemallocIncludes file in util
        error.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000019_000040.html b/doc/ipc_doc/generated/html_full/dir_000019_000040.html index ca1c2b8b2..f7528214e 100644 --- a/doc/ipc_doc/generated/html_full/dir_000019_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000019_000040.html @@ -70,7 +70,7 @@

        jemalloc → transport Relation

        File in transport/struc/shm/arena_lend/jemallocIncludes file in transport
        jemalloc.hppstruc / shm / serializer.hpp
        jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000021_000012.html b/doc/ipc_doc/generated/html_full/dir_000021_000012.html index 8c9a3a406..1e767ea1f 100644 --- a/doc/ipc_doc/generated/html_full/dir_000021_000012.html +++ b/doc/ipc_doc/generated/html_full/dir_000021_000012.html @@ -70,7 +70,7 @@

        session → detail Relation

        File in sessionIncludes file in session/detail
        client_session.hppclient_session_impl.hpp
        server_session.hppserver_session_impl.hpp
        session_fwd.hppsession_fwd.hpp
        session_server.hppsession_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000021_000039.html b/doc/ipc_doc/generated/html_full/dir_000021_000039.html index 055bdf06a..ab62fb97d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000021_000039.html +++ b/doc/ipc_doc/generated/html_full/dir_000021_000039.html @@ -70,7 +70,7 @@

        session → transport Relation

        File in sessionIncludes file in transport
        detail / client_session_impl.hpperror.hpp
        detail / client_session_impl.hppprotocol_negotiator.hpp
        detail / server_session_impl.hppprotocol_negotiator.hpp
        detail / session_base.hppsync_io / native_socket_stream.hpp
        detail / session_base.hppnative_socket_stream_acceptor.hpp
        session_fwd.hpptransport_fwd.hpp
        detail / session_server_impl.hppblob_stream_mq.hpp
        detail / session_server_impl.hpperror.hpp
        detail / session_server_impl.hppnative_socket_stream_acceptor.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000021_000042.html b/doc/ipc_doc/generated/html_full/dir_000021_000042.html index 85bcddbd3..5d154ed9a 100644 --- a/doc/ipc_doc/generated/html_full/dir_000021_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000021_000042.html @@ -70,7 +70,7 @@

        session → transport Relation

        File in sessionIncludes file in transport
        session.hppstruc / heap_serializer.hpp
        detail / session_base.hppstruc / channel.hpp
        session_fwd.hppstruc / struc_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000021_000043.html b/doc/ipc_doc/generated/html_full/dir_000021_000043.html index 28b33bff4..64edd80e8 100644 --- a/doc/ipc_doc/generated/html_full/dir_000021_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000021_000043.html @@ -70,7 +70,7 @@

        session → util Relation

        File in sessionIncludes file in util
        app.cppnative_handle.hpp
        app.hpputil_fwd.hpp
        detail / client_session_impl.hppdetail / util.hpp
        error.cpputil_fwd.hpp
        sync_io / detail / session_adapter.hppsync_io / sync_io_fwd.hpp
        sync_io / detail / session_adapter.hppdetail / util_fwd.hpp
        session_fwd.hppnative_handle.hpp
        session_fwd.hpputil_fwd.hpp
        detail / session_server_impl.hppdetail / util.hpp
        detail / session_shared_name.hppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000024_000021.html b/doc/ipc_doc/generated/html_full/dir_000024_000021.html index f1f1db5f7..ec6ca1ac6 100644 --- a/doc/ipc_doc/generated/html_full/dir_000024_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000024_000021.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in session/detail/shmIncludes file in session
        classic / classic_fwd.hppsession_fwd.hpp
        classic / client_session_impl.hppdetail / client_session_impl.hpp
        classic / server_session_impl.hppdetail / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000024_000025.html b/doc/ipc_doc/generated/html_full/dir_000024_000025.html index df4cb659b..36c1a8dc5 100644 --- a/doc/ipc_doc/generated/html_full/dir_000024_000025.html +++ b/doc/ipc_doc/generated/html_full/dir_000024_000025.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/detail/shmIncludes file in session/shm
        classic / session_impl.hppclassic / classic.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000024_000026.html b/doc/ipc_doc/generated/html_full/dir_000024_000026.html index a82c08a78..539d04e95 100644 --- a/doc/ipc_doc/generated/html_full/dir_000024_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000024_000026.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/detail/shmIncludes file in shm
        classic / session_impl.hppclassic / classic.hpp
        classic / session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000024_000040.html b/doc/ipc_doc/generated/html_full/dir_000024_000040.html index d64b2007c..3149ba408 100644 --- a/doc/ipc_doc/generated/html_full/dir_000024_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000024_000040.html @@ -70,7 +70,7 @@

        shm → transport Relation

        File in session/detail/shmIncludes file in transport
        classic / session_impl.hppstruc / shm / classic / classic.hpp
        classic / session_impl.hppstruc / shm / classic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000024_000043.html b/doc/ipc_doc/generated/html_full/dir_000024_000043.html index 163c70815..34be2358f 100644 --- a/doc/ipc_doc/generated/html_full/dir_000024_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000024_000043.html @@ -70,7 +70,7 @@

        shm → util Relation

        File in session/detail/shmIncludes file in util
        classic / session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000025_000014.html b/doc/ipc_doc/generated/html_full/dir_000025_000014.html index ec8be2d09..adda0245d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000025_000014.html +++ b/doc/ipc_doc/generated/html_full/dir_000025_000014.html @@ -70,7 +70,7 @@

        shm → detail Relation

        File in session/shmIncludes file in session/detail
        classic / classic_fwd.hppshm / classic / classic_fwd.hpp
        classic / client_session.hppshm / classic / client_session_impl.hpp
        classic / server_session.hppshm / classic / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000025_000021.html b/doc/ipc_doc/generated/html_full/dir_000025_000021.html index ca0ec1387..6cbcb0394 100644 --- a/doc/ipc_doc/generated/html_full/dir_000025_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000025_000021.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in session/shmIncludes file in session
        classic / client_session.hppclient_session.hpp
        classic / server_session.hppserver_session.hpp
        classic / session_server.hppdetail / session_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000025_000026.html b/doc/ipc_doc/generated/html_full/dir_000025_000026.html index 47e62816d..c7241e2ee 100644 --- a/doc/ipc_doc/generated/html_full/dir_000025_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000025_000026.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/shmIncludes file in shm
        classic / classic.hppclassic / classic_fwd.hpp
        classic / classic.hppclassic / pool_arena.hpp
        classic / client_session.hppclassic / classic.hpp
        classic / server_session.hppclassic / classic.hpp
        classic / session.hppclassic / classic.hpp
        classic / session.hppstl / stateless_allocator.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000027_000022.html b/doc/ipc_doc/generated/html_full/dir_000027_000022.html index 5015c2aad..289024564 100644 --- a/doc/ipc_doc/generated/html_full/dir_000027_000022.html +++ b/doc/ipc_doc/generated/html_full/dir_000027_000022.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in transport/struc/shmIncludes file in session
        capnp_msg_builder.hppshm / shm.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000027_000026.html b/doc/ipc_doc/generated/html_full/dir_000027_000026.html index 7fc22225d..05d369744 100644 --- a/doc/ipc_doc/generated/html_full/dir_000027_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000027_000026.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in transport/struc/shmIncludes file in shm
        capnp_msg_builder.hppstl / arena_activator.hpp
        capnp_msg_builder.hppshm.hpp
        capnp_msg_builder.hppstl / stateless_allocator.hpp
        classic / classic_fwd.hppclassic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000027_000042.html b/doc/ipc_doc/generated/html_full/dir_000027_000042.html index d6f5b6ab3..8ce725006 100644 --- a/doc/ipc_doc/generated/html_full/dir_000027_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000027_000042.html @@ -70,7 +70,7 @@

        shm → transport Relation

        File in transport/struc/shmIncludes file in transport
        capnp_msg_builder.hppstruc / struc_fwd.hpp
        serializer.hppstruc / heap_serializer.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000027_000043.html b/doc/ipc_doc/generated/html_full/dir_000027_000043.html index 763e3a198..61bdf2341 100644 --- a/doc/ipc_doc/generated/html_full/dir_000027_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000027_000043.html @@ -70,7 +70,7 @@

        shm → util Relation

        File in transport/struc/shmIncludes file in util
        util.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000021.html b/doc/ipc_doc/generated/html_full/dir_000028_000021.html index 635f80b59..903c9caed 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000021.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in session/detail/shmIncludes file in session
        arena_lend / jemalloc / client_session_impl.hppdetail / client_session_impl.hpp
        arena_lend / jemalloc / client_session_impl.hpperror.hpp
        arena_lend / jemalloc / jemalloc_fwd.hppsession_fwd.hpp
        arena_lend / jemalloc / server_session_impl.hpperror.hpp
        arena_lend / jemalloc / server_session_impl.hppdetail / server_session_impl.hpp
        arena_lend / jemalloc / session_impl.hppdetail / session_shared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000026.html b/doc/ipc_doc/generated/html_full/dir_000028_000026.html index dbabe78b9..6e5cb49a9 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000026.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/detail/shmIncludes file in shm
        arena_lend / jemalloc / client_session_impl.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000029.html b/doc/ipc_doc/generated/html_full/dir_000028_000029.html index 302267999..a937bdf13 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000029.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000029.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/detail/shmIncludes file in session/shm
        arena_lend / jemalloc / session_impl.hpparena_lend / jemalloc / error.hpp
        arena_lend / jemalloc / session_impl.hpparena_lend / jemalloc / jemalloc.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000041.html b/doc/ipc_doc/generated/html_full/dir_000028_000041.html index 026fc2c11..763a72f23 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000041.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000041.html @@ -70,7 +70,7 @@

        shm → transport Relation

        File in session/detail/shmIncludes file in transport
        arena_lend / jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc.hpp
        arena_lend / jemalloc / session_impl.hppstruc / shm / arena_lend / jemalloc / jemalloc_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000042.html b/doc/ipc_doc/generated/html_full/dir_000028_000042.html index 9b6f00f5f..e31b00f51 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000042.html @@ -70,7 +70,7 @@

        shm → transport Relation

        File in session/detail/shmIncludes file in transport
        arena_lend / jemalloc / session_impl.hppstruc / channel_base.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000028_000043.html b/doc/ipc_doc/generated/html_full/dir_000028_000043.html index 3c68e7e8b..28f4cff87 100644 --- a/doc/ipc_doc/generated/html_full/dir_000028_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000028_000043.html @@ -70,7 +70,7 @@

        shm → util Relation

        File in session/detail/shmIncludes file in util
        arena_lend / jemalloc / session_shared_name.cppshared_name.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000029_000015.html b/doc/ipc_doc/generated/html_full/dir_000029_000015.html index f41f687e7..ee3ea7a56 100644 --- a/doc/ipc_doc/generated/html_full/dir_000029_000015.html +++ b/doc/ipc_doc/generated/html_full/dir_000029_000015.html @@ -70,7 +70,7 @@

        shm → detail Relation

        File in session/shmIncludes file in session/detail
        arena_lend / jemalloc / client_session.hppshm / arena_lend / jemalloc / client_session_impl.hpp
        arena_lend / jemalloc / jemalloc_fwd.hppshm / arena_lend / jemalloc / jemalloc_fwd.hpp
        arena_lend / jemalloc / server_session.hppshm / arena_lend / jemalloc / server_session_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000029_000021.html b/doc/ipc_doc/generated/html_full/dir_000029_000021.html index 4923321c6..1fef10c92 100644 --- a/doc/ipc_doc/generated/html_full/dir_000029_000021.html +++ b/doc/ipc_doc/generated/html_full/dir_000029_000021.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in session/shmIncludes file in session
        arena_lend / jemalloc / client_session.hppclient_session.hpp
        arena_lend / jemalloc / server_session.hppserver_session.hpp
        arena_lend / jemalloc / session_server.hppdetail / session_server_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000029_000022.html b/doc/ipc_doc/generated/html_full/dir_000029_000022.html index 2427138f7..8165fcf93 100644 --- a/doc/ipc_doc/generated/html_full/dir_000029_000022.html +++ b/doc/ipc_doc/generated/html_full/dir_000029_000022.html @@ -70,7 +70,7 @@

        shm → session Relation

        File in session/shmIncludes file in session
        arena_lend / jemalloc / jemalloc.hppshm / shm.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000029_000026.html b/doc/ipc_doc/generated/html_full/dir_000029_000026.html index 98999d80e..8c6cf4b29 100644 --- a/doc/ipc_doc/generated/html_full/dir_000029_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000029_000026.html @@ -70,7 +70,7 @@

        shm → shm Relation

        File in session/shmIncludes file in shm
        arena_lend / jemalloc / session.hppstl / stateless_allocator.hpp
        arena_lend / jemalloc / session_server.hppclassic / pool_arena.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000029_000043.html b/doc/ipc_doc/generated/html_full/dir_000029_000043.html index fafc5015c..b2b54226b 100644 --- a/doc/ipc_doc/generated/html_full/dir_000029_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000029_000043.html @@ -70,7 +70,7 @@

        shm → util Relation

        File in session/shmIncludes file in util
        arena_lend / jemalloc / error.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000030_000040.html b/doc/ipc_doc/generated/html_full/dir_000030_000040.html index 0e5364621..53f3e99d0 100644 --- a/doc/ipc_doc/generated/html_full/dir_000030_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000030_000040.html @@ -70,7 +70,7 @@

        shm → transport Relation

        File in transport/struc/shmIncludes file in transport
        arena_lend / jemalloc / jemalloc.hppstruc / shm / serializer.hpp
        arena_lend / jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000032_000022.html b/doc/ipc_doc/generated/html_full/dir_000032_000022.html index 96b61b3a9..7322522e1 100644 --- a/doc/ipc_doc/generated/html_full/dir_000032_000022.html +++ b/doc/ipc_doc/generated/html_full/dir_000032_000022.html @@ -70,7 +70,7 @@

        struc → session Relation

        File in transport/strucIncludes file in session
        shm / capnp_msg_builder.hppshm / shm.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000032_000026.html b/doc/ipc_doc/generated/html_full/dir_000032_000026.html index f30b673af..65c5ce8d2 100644 --- a/doc/ipc_doc/generated/html_full/dir_000032_000026.html +++ b/doc/ipc_doc/generated/html_full/dir_000032_000026.html @@ -70,7 +70,7 @@

        struc → shm Relation

        File in transport/strucIncludes file in shm
        shm / capnp_msg_builder.hppstl / arena_activator.hpp
        shm / capnp_msg_builder.hppshm.hpp
        shm / capnp_msg_builder.hppstl / stateless_allocator.hpp
        shm / classic / classic_fwd.hppclassic / classic_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000032_000042.html b/doc/ipc_doc/generated/html_full/dir_000032_000042.html index e4dc855c5..f7c220e4f 100644 --- a/doc/ipc_doc/generated/html_full/dir_000032_000042.html +++ b/doc/ipc_doc/generated/html_full/dir_000032_000042.html @@ -70,7 +70,7 @@

        struc → transport Relation

        File in transport/strucIncludes file in transport
        shm / capnp_msg_builder.hppstruc / struc_fwd.hpp
        shm / serializer.hppstruc / heap_serializer.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000032_000043.html b/doc/ipc_doc/generated/html_full/dir_000032_000043.html index 242ffb2ff..bc35d42eb 100644 --- a/doc/ipc_doc/generated/html_full/dir_000032_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000032_000043.html @@ -70,7 +70,7 @@

        struc → util Relation

        File in transport/strucIncludes file in util
        shm / util.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000033_000040.html b/doc/ipc_doc/generated/html_full/dir_000033_000040.html index 73e95f4ba..1c9f9692c 100644 --- a/doc/ipc_doc/generated/html_full/dir_000033_000040.html +++ b/doc/ipc_doc/generated/html_full/dir_000033_000040.html @@ -70,7 +70,7 @@

        struc → transport Relation

        File in transport/strucIncludes file in transport
        shm / arena_lend / jemalloc / jemalloc.hppstruc / shm / serializer.hpp
        shm / arena_lend / jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000034_000038.html b/doc/ipc_doc/generated/html_full/dir_000034_000038.html index b0fa033a7..12aff4fbc 100644 --- a/doc/ipc_doc/generated/html_full/dir_000034_000038.html +++ b/doc/ipc_doc/generated/html_full/dir_000034_000038.html @@ -70,7 +70,7 @@

        struc → sync_io Relation

        File in transport/strucIncludes file in transport/struc/sync_io
        channel.hppchannel.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000034_000039.html b/doc/ipc_doc/generated/html_full/dir_000034_000039.html index d87acf849..0a259c15d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000034_000039.html +++ b/doc/ipc_doc/generated/html_full/dir_000034_000039.html @@ -70,7 +70,7 @@

        struc → transport Relation

        File in transport/strucIncludes file in transport
        msg.hppasio_local_stream_socket_fwd.hpp
        msg.hpptransport_fwd.hpp
        struc_fwd.hpptransport_fwd.hpp
        sync_io / channel.hppchannel.hpp
        sync_io / channel.hpperror.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000034_000043.html b/doc/ipc_doc/generated/html_full/dir_000034_000043.html index 663ebebc6..1dc26c6d7 100644 --- a/doc/ipc_doc/generated/html_full/dir_000034_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000034_000043.html @@ -70,7 +70,7 @@

        struc → util Relation

        File in transport/strucIncludes file in util
        error.cpputil_fwd.hpp
        heap_serializer.hpputil_fwd.hpp
        msg.hppnative_handle.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000035_000008.html b/doc/ipc_doc/generated/html_full/dir_000035_000008.html index c86d0ed5c..5a39b1114 100644 --- a/doc/ipc_doc/generated/html_full/dir_000035_000008.html +++ b/doc/ipc_doc/generated/html_full/dir_000035_000008.html @@ -70,7 +70,7 @@

        sync_io → detail Relation

        File in transport/sync_ioIncludes file in transport/detail
        detail / async_adapter_rcv.hpptransport_fwd.hpp
        detail / async_adapter_snd.hpptransport_fwd.hpp
        detail / blob_stream_mq_rcv_impl.hppblob_stream_mq_impl.hpp
        detail / blob_stream_mq_snd_impl.hppblob_stream_mq_impl.hpp
        native_socket_stream_acceptor.hppasio_local_stream_socket_fwd.hpp
        detail / native_socket_stream_impl.hpptransport_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000035_000009.html b/doc/ipc_doc/generated/html_full/dir_000035_000009.html index 97a81ee3a..025bf4fdf 100644 --- a/doc/ipc_doc/generated/html_full/dir_000035_000009.html +++ b/doc/ipc_doc/generated/html_full/dir_000035_000009.html @@ -70,7 +70,7 @@

        sync_io → detail Relation

        File in transport/sync_ioIncludes file in transport/sync_io/detail
        blob_stream_mq_rcv.hppblob_stream_mq_rcv_impl.hpp
        blob_stream_mq_snd.hppblob_stream_mq_snd_impl.hpp
        native_socket_stream.cppnative_socket_stream_impl.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000035_000043.html b/doc/ipc_doc/generated/html_full/dir_000035_000043.html index 5f260ce3d..e31ceca73 100644 --- a/doc/ipc_doc/generated/html_full/dir_000035_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000035_000043.html @@ -70,7 +70,7 @@

        sync_io → util Relation

        File in transport/sync_ioIncludes file in util
        detail / async_adapter_snd.hppsync_io / asio_waitable_native_hndl.hpp
        detail / blob_stream_mq_rcv_impl.hppsync_io / sync_io_fwd.hpp
        detail / blob_stream_mq_rcv_impl.hppsync_io / detail / timer_ev_emitter.hpp
        detail / blob_stream_mq_rcv_impl.hppdetail / util.hpp
        detail / blob_stream_mq_snd_impl.hppsync_io / asio_waitable_native_hndl.hpp
        detail / blob_stream_mq_snd_impl.hppsync_io / sync_io_fwd.hpp
        detail / blob_stream_mq_snd_impl.hppsync_io / detail / timer_ev_emitter.hpp
        detail / blob_stream_mq_snd_impl.hppdetail / util.hpp
        native_socket_stream.hppprocess_credentials.hpp
        native_socket_stream.hppshared_name.hpp
        native_socket_stream.hppsync_io / sync_io_fwd.hpp
        native_socket_stream_acceptor.hppsync_io / asio_waitable_native_hndl.hpp
        native_socket_stream_acceptor.hppsync_io / sync_io_fwd.hpp
        native_socket_stream_acceptor.hppdetail / util_fwd.hpp
        detail / native_socket_stream_impl.hppsync_io / asio_waitable_native_hndl.hpp
        detail / native_socket_stream_impl.hppsync_io / sync_io_fwd.hpp
        detail / native_socket_stream_impl.hppsync_io / detail / timer_ev_emitter.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000036_000010.html b/doc/ipc_doc/generated/html_full/dir_000036_000010.html index ea70ba123..a6b4929d0 100644 --- a/doc/ipc_doc/generated/html_full/dir_000036_000010.html +++ b/doc/ipc_doc/generated/html_full/dir_000036_000010.html @@ -70,7 +70,7 @@

        sync_io → detail Relation

        File in util/sync_ioIncludes file in util/detail
        detail / timer_ev_emitter.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000037_000013.html b/doc/ipc_doc/generated/html_full/dir_000037_000013.html index 66da5bf0a..5252aaac2 100644 --- a/doc/ipc_doc/generated/html_full/dir_000037_000013.html +++ b/doc/ipc_doc/generated/html_full/dir_000037_000013.html @@ -70,7 +70,7 @@

        sync_io → detail Relation

        File in session/sync_ioIncludes file in session/sync_io/detail
        client_session_adapter.hppsession_adapter.hpp
        server_session_adapter.hppsession_adapter.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000037_000043.html b/doc/ipc_doc/generated/html_full/dir_000037_000043.html index 5cf81dbfe..c7f556990 100644 --- a/doc/ipc_doc/generated/html_full/dir_000037_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000037_000043.html @@ -70,7 +70,7 @@

        sync_io → util Relation

        File in session/sync_ioIncludes file in util
        detail / session_adapter.hppsync_io / sync_io_fwd.hpp
        detail / session_adapter.hppdetail / util_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000038_000016.html b/doc/ipc_doc/generated/html_full/dir_000038_000016.html index d57a6f743..17c1be192 100644 --- a/doc/ipc_doc/generated/html_full/dir_000038_000016.html +++ b/doc/ipc_doc/generated/html_full/dir_000038_000016.html @@ -70,7 +70,7 @@

        sync_io → detail Relation

        File in transport/struc/sync_ioIncludes file in transport/struc/detail
        channel.hppmsg_impl.hpp
        channel.hppmsg_mdt_out.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000038_000039.html b/doc/ipc_doc/generated/html_full/dir_000038_000039.html index e494b3f6e..ceb250844 100644 --- a/doc/ipc_doc/generated/html_full/dir_000038_000039.html +++ b/doc/ipc_doc/generated/html_full/dir_000038_000039.html @@ -70,7 +70,7 @@

        sync_io → transport Relation

        File in transport/struc/sync_ioIncludes file in transport
        channel.hppchannel.hpp
        channel.hpperror.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000039_000008.html b/doc/ipc_doc/generated/html_full/dir_000039_000008.html index 684370347..a79ad780d 100644 --- a/doc/ipc_doc/generated/html_full/dir_000039_000008.html +++ b/doc/ipc_doc/generated/html_full/dir_000039_000008.html @@ -70,7 +70,7 @@

        transport → detail Relation

        File in transportIncludes file in transport/detail
        asio_local_stream_socket.hppasio_local_stream_socket.hpp
        sync_io / detail / async_adapter_rcv.hpptransport_fwd.hpp
        sync_io / detail / async_adapter_snd.hpptransport_fwd.hpp
        blob_stream_mq.hppblob_stream_mq_impl.hpp
        blob_stream_mq_rcv.hppblob_stream_mq_rcv_impl.hpp
        sync_io / detail / blob_stream_mq_rcv_impl.hppblob_stream_mq_impl.hpp
        blob_stream_mq_snd.hppblob_stream_mq_snd_impl.hpp
        sync_io / detail / blob_stream_mq_snd_impl.hppblob_stream_mq_impl.hpp
        native_socket_stream.cppnative_socket_stream_impl.hpp
        sync_io / native_socket_stream_acceptor.hppasio_local_stream_socket_fwd.hpp
        sync_io / detail / native_socket_stream_impl.hpptransport_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000039_000035.html b/doc/ipc_doc/generated/html_full/dir_000039_000035.html index 3f6933400..6c9784062 100644 --- a/doc/ipc_doc/generated/html_full/dir_000039_000035.html +++ b/doc/ipc_doc/generated/html_full/dir_000039_000035.html @@ -70,7 +70,7 @@

        transport → sync_io Relation

        File in transportIncludes file in transport/sync_io
        sync_io / blob_stream_mq_rcv.hppdetail / blob_stream_mq_rcv_impl.hpp
        detail / blob_stream_mq_rcv_impl.hppdetail / async_adapter_rcv.hpp
        detail / blob_stream_mq_rcv_impl.hppblob_stream_mq_rcv.hpp
        sync_io / blob_stream_mq_snd.hppdetail / blob_stream_mq_snd_impl.hpp
        detail / blob_stream_mq_snd_impl.hppdetail / async_adapter_snd.hpp
        detail / blob_stream_mq_snd_impl.hppblob_stream_mq_snd.hpp
        channel.hppblob_stream_mq_rcv.hpp
        channel.hppblob_stream_mq_snd.hpp
        channel.hppnative_socket_stream.hpp
        native_socket_stream.cppnative_socket_stream.hpp
        sync_io / native_socket_stream.cppdetail / native_socket_stream_impl.hpp
        native_socket_stream_acceptor.cppnative_socket_stream.hpp
        native_socket_stream_acceptor.cppnative_socket_stream_acceptor.hpp
        detail / native_socket_stream_impl.hppdetail / async_adapter_rcv.hpp
        detail / native_socket_stream_impl.hppdetail / async_adapter_snd.hpp
        detail / native_socket_stream_impl.hppnative_socket_stream.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000039_000043.html b/doc/ipc_doc/generated/html_full/dir_000039_000043.html index 591847d5a..0924913f3 100644 --- a/doc/ipc_doc/generated/html_full/dir_000039_000043.html +++ b/doc/ipc_doc/generated/html_full/dir_000039_000043.html @@ -70,7 +70,7 @@

        transport → util Relation

        File in transportIncludes file in util
        detail / asio_local_stream_socket.cppshared_name.hpp
        asio_local_stream_socket.hppprocess_credentials.hpp
        detail / asio_local_stream_socket.hpputil_fwd.hpp
        asio_local_stream_socket_fwd.hppnative_handle.hpp
        detail / asio_local_stream_socket_fwd.hppshared_name_fwd.hpp
        asio_local_stream_socket_fwd.hpputil_fwd.hpp
        sync_io / detail / async_adapter_snd.hppsync_io / asio_waitable_native_hndl.hpp
        bipc_mq_handle.hppshared_name.hpp
        bipc_mq_handle.hppdetail / util.hpp
        bipc_mq_handle.hpputil_fwd.hpp
        detail / blob_stream_mq_impl.hppshared_name.hpp
        detail / blob_stream_mq_impl.hppdetail / util_fwd.hpp
        detail / blob_stream_mq_rcv_impl.hppsync_io / sync_io_fwd.hpp
        sync_io / detail / blob_stream_mq_rcv_impl.hppsync_io / sync_io_fwd.hpp
        sync_io / detail / blob_stream_mq_rcv_impl.hppsync_io / detail / timer_ev_emitter.hpp
        sync_io / detail / blob_stream_mq_rcv_impl.hppdetail / util.hpp
        sync_io / detail / blob_stream_mq_snd_impl.hppsync_io / asio_waitable_native_hndl.hpp
        sync_io / detail / blob_stream_mq_snd_impl.hppsync_io / sync_io_fwd.hpp
        detail / blob_stream_mq_snd_impl.hppsync_io / sync_io_fwd.hpp
        sync_io / detail / blob_stream_mq_snd_impl.hppsync_io / detail / timer_ev_emitter.hpp
        sync_io / detail / blob_stream_mq_snd_impl.hppdetail / util.hpp
        channel.hppprocess_credentials.hpp
        error.cpputil_fwd.hpp
        native_socket_stream.hppnative_handle.hpp
        sync_io / native_socket_stream.hppprocess_credentials.hpp
        native_socket_stream.hppprocess_credentials.hpp
        sync_io / native_socket_stream.hppshared_name.hpp
        native_socket_stream.hppshared_name_fwd.hpp
        sync_io / native_socket_stream.hppsync_io / sync_io_fwd.hpp
        sync_io / native_socket_stream_acceptor.hppsync_io / asio_waitable_native_hndl.hpp
        native_socket_stream_acceptor.hppshared_name.hpp
        sync_io / native_socket_stream_acceptor.hppsync_io / sync_io_fwd.hpp
        sync_io / native_socket_stream_acceptor.hppdetail / util_fwd.hpp
        sync_io / detail / native_socket_stream_impl.hppsync_io / asio_waitable_native_hndl.hpp
        sync_io / detail / native_socket_stream_impl.hppsync_io / sync_io_fwd.hpp
        sync_io / detail / native_socket_stream_impl.hppsync_io / detail / timer_ev_emitter.hpp
        posix_mq_handle.hppnative_handle.hpp
        posix_mq_handle.hppshared_name.hpp
        posix_mq_handle.hppdetail / util.hpp
        posix_mq_handle.hpputil_fwd.hpp
        posix_mq_handle.hppdetail / util_fwd.hpp
        protocol_negotiator.hpputil_fwd.hpp
        transport_fwd.hppnative_handle.hpp
        transport_fwd.hppshared_name_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_000043_000010.html b/doc/ipc_doc/generated/html_full/dir_000043_000010.html index 4f90bfa55..b199c374b 100644 --- a/doc/ipc_doc/generated/html_full/dir_000043_000010.html +++ b/doc/ipc_doc/generated/html_full/dir_000043_000010.html @@ -70,7 +70,7 @@

        util → detail Relation

        File in utilIncludes file in util/detail
        sync_io / detail / timer_ev_emitter.cpputil_fwd.hpp
        util.cpputil_fwd.hpp
        diff --git a/doc/ipc_doc/generated/html_full/dir_00580eb0cf40d799755587f5d56ed1cf.html b/doc/ipc_doc/generated/html_full/dir_00580eb0cf40d799755587f5d56ed1cf.html index 7a6e13efa..580305c40 100644 --- a/doc/ipc_doc/generated/html_full/dir_00580eb0cf40d799755587f5d56ed1cf.html +++ b/doc/ipc_doc/generated/html_full/dir_00580eb0cf40d799755587f5d56ed1cf.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_0c017496b493ff066fbbe686970307ba.html b/doc/ipc_doc/generated/html_full/dir_0c017496b493ff066fbbe686970307ba.html index 1b01a56a6..4146301c9 100644 --- a/doc/ipc_doc/generated/html_full/dir_0c017496b493ff066fbbe686970307ba.html +++ b/doc/ipc_doc/generated/html_full/dir_0c017496b493ff066fbbe686970307ba.html @@ -138,7 +138,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_0ec06e8c7fb5f28b16ad5cd684ffbafc.html b/doc/ipc_doc/generated/html_full/dir_0ec06e8c7fb5f28b16ad5cd684ffbafc.html index b01177d0f..b7ee49a68 100644 --- a/doc/ipc_doc/generated/html_full/dir_0ec06e8c7fb5f28b16ad5cd684ffbafc.html +++ b/doc/ipc_doc/generated/html_full/dir_0ec06e8c7fb5f28b16ad5cd684ffbafc.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_13fb761781f259689dae367412ad59fa.html b/doc/ipc_doc/generated/html_full/dir_13fb761781f259689dae367412ad59fa.html index 6fb294a87..3b4855089 100644 --- a/doc/ipc_doc/generated/html_full/dir_13fb761781f259689dae367412ad59fa.html +++ b/doc/ipc_doc/generated/html_full/dir_13fb761781f259689dae367412ad59fa.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_18de54d40c020a62dfebd12c68fa56ae.html b/doc/ipc_doc/generated/html_full/dir_18de54d40c020a62dfebd12c68fa56ae.html index bbafbcf18..a84555a62 100644 --- a/doc/ipc_doc/generated/html_full/dir_18de54d40c020a62dfebd12c68fa56ae.html +++ b/doc/ipc_doc/generated/html_full/dir_18de54d40c020a62dfebd12c68fa56ae.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_2274bd8bf2aa5079c91aaa407be30e38.html b/doc/ipc_doc/generated/html_full/dir_2274bd8bf2aa5079c91aaa407be30e38.html index e8badf829..6dddb086c 100644 --- a/doc/ipc_doc/generated/html_full/dir_2274bd8bf2aa5079c91aaa407be30e38.html +++ b/doc/ipc_doc/generated/html_full/dir_2274bd8bf2aa5079c91aaa407be30e38.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_227cbe559f4164f1c4cf4abf7bafbe8c.html b/doc/ipc_doc/generated/html_full/dir_227cbe559f4164f1c4cf4abf7bafbe8c.html index f9573b7b4..d052a4c35 100644 --- a/doc/ipc_doc/generated/html_full/dir_227cbe559f4164f1c4cf4abf7bafbe8c.html +++ b/doc/ipc_doc/generated/html_full/dir_227cbe559f4164f1c4cf4abf7bafbe8c.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_23fbec4e7c966aae2efbb90aeb47f596.html b/doc/ipc_doc/generated/html_full/dir_23fbec4e7c966aae2efbb90aeb47f596.html index 3fbe75d3a..d3966d118 100644 --- a/doc/ipc_doc/generated/html_full/dir_23fbec4e7c966aae2efbb90aeb47f596.html +++ b/doc/ipc_doc/generated/html_full/dir_23fbec4e7c966aae2efbb90aeb47f596.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_29eca46078f73b220c63d096b03a57e8.html b/doc/ipc_doc/generated/html_full/dir_29eca46078f73b220c63d096b03a57e8.html index 5184d2f1e..823fc402d 100644 --- a/doc/ipc_doc/generated/html_full/dir_29eca46078f73b220c63d096b03a57e8.html +++ b/doc/ipc_doc/generated/html_full/dir_29eca46078f73b220c63d096b03a57e8.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_2e067a52dcf1aa0652116154fbb079cf.html b/doc/ipc_doc/generated/html_full/dir_2e067a52dcf1aa0652116154fbb079cf.html index d40e12ee0..feb1fbc18 100644 --- a/doc/ipc_doc/generated/html_full/dir_2e067a52dcf1aa0652116154fbb079cf.html +++ b/doc/ipc_doc/generated/html_full/dir_2e067a52dcf1aa0652116154fbb079cf.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_330ec51ed7bfaf381355aaef7c1667ec.html b/doc/ipc_doc/generated/html_full/dir_330ec51ed7bfaf381355aaef7c1667ec.html index 7b47a695a..2a60ffc55 100644 --- a/doc/ipc_doc/generated/html_full/dir_330ec51ed7bfaf381355aaef7c1667ec.html +++ b/doc/ipc_doc/generated/html_full/dir_330ec51ed7bfaf381355aaef7c1667ec.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_420eb5c69419e70df9303f96761e9dfb.html b/doc/ipc_doc/generated/html_full/dir_420eb5c69419e70df9303f96761e9dfb.html index d8c7b3114..067c366a9 100644 --- a/doc/ipc_doc/generated/html_full/dir_420eb5c69419e70df9303f96761e9dfb.html +++ b/doc/ipc_doc/generated/html_full/dir_420eb5c69419e70df9303f96761e9dfb.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_49621dcf2e58f6d541462f9bec53bd7e.html b/doc/ipc_doc/generated/html_full/dir_49621dcf2e58f6d541462f9bec53bd7e.html index f82a97c17..d3378bd98 100644 --- a/doc/ipc_doc/generated/html_full/dir_49621dcf2e58f6d541462f9bec53bd7e.html +++ b/doc/ipc_doc/generated/html_full/dir_49621dcf2e58f6d541462f9bec53bd7e.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_51213d4cdf375ab846ee07ea55bdba59.html b/doc/ipc_doc/generated/html_full/dir_51213d4cdf375ab846ee07ea55bdba59.html index 5afceca84..11cb46977 100644 --- a/doc/ipc_doc/generated/html_full/dir_51213d4cdf375ab846ee07ea55bdba59.html +++ b/doc/ipc_doc/generated/html_full/dir_51213d4cdf375ab846ee07ea55bdba59.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_58e412aa7ace8e71fc01678dc8765e7c.html b/doc/ipc_doc/generated/html_full/dir_58e412aa7ace8e71fc01678dc8765e7c.html index 3be16460e..4e51ea47a 100644 --- a/doc/ipc_doc/generated/html_full/dir_58e412aa7ace8e71fc01678dc8765e7c.html +++ b/doc/ipc_doc/generated/html_full/dir_58e412aa7ace8e71fc01678dc8765e7c.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_5f6beb94f407c5622d999c27bb1c02fe.html b/doc/ipc_doc/generated/html_full/dir_5f6beb94f407c5622d999c27bb1c02fe.html index b1d9b8638..275230ba3 100644 --- a/doc/ipc_doc/generated/html_full/dir_5f6beb94f407c5622d999c27bb1c02fe.html +++ b/doc/ipc_doc/generated/html_full/dir_5f6beb94f407c5622d999c27bb1c02fe.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_61dc77215bb335d1119be1f67ca641a9.html b/doc/ipc_doc/generated/html_full/dir_61dc77215bb335d1119be1f67ca641a9.html index ab56ae97d..88f98a828 100644 --- a/doc/ipc_doc/generated/html_full/dir_61dc77215bb335d1119be1f67ca641a9.html +++ b/doc/ipc_doc/generated/html_full/dir_61dc77215bb335d1119be1f67ca641a9.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_6227a2031bab796131cf8c4b0b895649.html b/doc/ipc_doc/generated/html_full/dir_6227a2031bab796131cf8c4b0b895649.html index 0eea0ff49..f2518e64f 100644 --- a/doc/ipc_doc/generated/html_full/dir_6227a2031bab796131cf8c4b0b895649.html +++ b/doc/ipc_doc/generated/html_full/dir_6227a2031bab796131cf8c4b0b895649.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_68d5b84e2d7fbdf92eb777d1101c0079.html b/doc/ipc_doc/generated/html_full/dir_68d5b84e2d7fbdf92eb777d1101c0079.html index 671e52582..532a019ea 100644 --- a/doc/ipc_doc/generated/html_full/dir_68d5b84e2d7fbdf92eb777d1101c0079.html +++ b/doc/ipc_doc/generated/html_full/dir_68d5b84e2d7fbdf92eb777d1101c0079.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_6a9154929a3cacbead8390e6681e37b8.html b/doc/ipc_doc/generated/html_full/dir_6a9154929a3cacbead8390e6681e37b8.html index b6791b31a..bf9c0ff14 100644 --- a/doc/ipc_doc/generated/html_full/dir_6a9154929a3cacbead8390e6681e37b8.html +++ b/doc/ipc_doc/generated/html_full/dir_6a9154929a3cacbead8390e6681e37b8.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_6bf669985e0a4bfed5b74de88b3e7893.html b/doc/ipc_doc/generated/html_full/dir_6bf669985e0a4bfed5b74de88b3e7893.html index 842745462..2b079d714 100644 --- a/doc/ipc_doc/generated/html_full/dir_6bf669985e0a4bfed5b74de88b3e7893.html +++ b/doc/ipc_doc/generated/html_full/dir_6bf669985e0a4bfed5b74de88b3e7893.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_938858dd290fe54e59e3500689c41d32.html b/doc/ipc_doc/generated/html_full/dir_938858dd290fe54e59e3500689c41d32.html index 2e1ae4ff9..973329d8a 100644 --- a/doc/ipc_doc/generated/html_full/dir_938858dd290fe54e59e3500689c41d32.html +++ b/doc/ipc_doc/generated/html_full/dir_938858dd290fe54e59e3500689c41d32.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_a420192279ad82031659f8871fdc90c6.html b/doc/ipc_doc/generated/html_full/dir_a420192279ad82031659f8871fdc90c6.html index 282d88101..111039a95 100644 --- a/doc/ipc_doc/generated/html_full/dir_a420192279ad82031659f8871fdc90c6.html +++ b/doc/ipc_doc/generated/html_full/dir_a420192279ad82031659f8871fdc90c6.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_a762a7cb84c76c9561dbc78c61068184.html b/doc/ipc_doc/generated/html_full/dir_a762a7cb84c76c9561dbc78c61068184.html index 6af1b034b..d9f2345ca 100644 --- a/doc/ipc_doc/generated/html_full/dir_a762a7cb84c76c9561dbc78c61068184.html +++ b/doc/ipc_doc/generated/html_full/dir_a762a7cb84c76c9561dbc78c61068184.html @@ -116,7 +116,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_a98fddea045b8b2df4350ebb1d483bf8.html b/doc/ipc_doc/generated/html_full/dir_a98fddea045b8b2df4350ebb1d483bf8.html index 7f8d28d7a..0264cd5b3 100644 --- a/doc/ipc_doc/generated/html_full/dir_a98fddea045b8b2df4350ebb1d483bf8.html +++ b/doc/ipc_doc/generated/html_full/dir_a98fddea045b8b2df4350ebb1d483bf8.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_aa9b1de9a811fc0081d5a436dbc37c19.html b/doc/ipc_doc/generated/html_full/dir_aa9b1de9a811fc0081d5a436dbc37c19.html index 4a4785ae6..c3a4dbc5c 100644 --- a/doc/ipc_doc/generated/html_full/dir_aa9b1de9a811fc0081d5a436dbc37c19.html +++ b/doc/ipc_doc/generated/html_full/dir_aa9b1de9a811fc0081d5a436dbc37c19.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_ad52dd8cdf71953d2954f95ecd6c0394.html b/doc/ipc_doc/generated/html_full/dir_ad52dd8cdf71953d2954f95ecd6c0394.html index 4991a4027..169c7ad59 100644 --- a/doc/ipc_doc/generated/html_full/dir_ad52dd8cdf71953d2954f95ecd6c0394.html +++ b/doc/ipc_doc/generated/html_full/dir_ad52dd8cdf71953d2954f95ecd6c0394.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_aecdbd335f54ba819e11c976e79836b9.html b/doc/ipc_doc/generated/html_full/dir_aecdbd335f54ba819e11c976e79836b9.html index d32381071..f9167060a 100644 --- a/doc/ipc_doc/generated/html_full/dir_aecdbd335f54ba819e11c976e79836b9.html +++ b/doc/ipc_doc/generated/html_full/dir_aecdbd335f54ba819e11c976e79836b9.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_b1ca93180d44b029a5aecd7f4a557279.html b/doc/ipc_doc/generated/html_full/dir_b1ca93180d44b029a5aecd7f4a557279.html index 65ac3ee33..1cdc1e8af 100644 --- a/doc/ipc_doc/generated/html_full/dir_b1ca93180d44b029a5aecd7f4a557279.html +++ b/doc/ipc_doc/generated/html_full/dir_b1ca93180d44b029a5aecd7f4a557279.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_b574b0807182fd54d29cf48452072c45.html b/doc/ipc_doc/generated/html_full/dir_b574b0807182fd54d29cf48452072c45.html index 5fa861f6f..c46f34bb2 100644 --- a/doc/ipc_doc/generated/html_full/dir_b574b0807182fd54d29cf48452072c45.html +++ b/doc/ipc_doc/generated/html_full/dir_b574b0807182fd54d29cf48452072c45.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_b5fa8338842f1288129dabc4bfd9a8d3.html b/doc/ipc_doc/generated/html_full/dir_b5fa8338842f1288129dabc4bfd9a8d3.html index e62d35204..3ce988b71 100644 --- a/doc/ipc_doc/generated/html_full/dir_b5fa8338842f1288129dabc4bfd9a8d3.html +++ b/doc/ipc_doc/generated/html_full/dir_b5fa8338842f1288129dabc4bfd9a8d3.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html b/doc/ipc_doc/generated/html_full/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html index 9b97d21b0..29976c32d 100644 --- a/doc/ipc_doc/generated/html_full/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html +++ b/doc/ipc_doc/generated/html_full/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_b920fd4362476866a1b4325a80ed2bf5.html b/doc/ipc_doc/generated/html_full/dir_b920fd4362476866a1b4325a80ed2bf5.html index d3aec4929..b7dd45f17 100644 --- a/doc/ipc_doc/generated/html_full/dir_b920fd4362476866a1b4325a80ed2bf5.html +++ b/doc/ipc_doc/generated/html_full/dir_b920fd4362476866a1b4325a80ed2bf5.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_c7ea703034e45a505e1ea635ef215d07.html b/doc/ipc_doc/generated/html_full/dir_c7ea703034e45a505e1ea635ef215d07.html index a5fdf8d7a..5eb0d5005 100644 --- a/doc/ipc_doc/generated/html_full/dir_c7ea703034e45a505e1ea635ef215d07.html +++ b/doc/ipc_doc/generated/html_full/dir_c7ea703034e45a505e1ea635ef215d07.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html b/doc/ipc_doc/generated/html_full/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html index 02d54c58f..eea3daa8f 100644 --- a/doc/ipc_doc/generated/html_full/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html +++ b/doc/ipc_doc/generated/html_full/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_d54aa94669c58d37a530f384e5a8d959.html b/doc/ipc_doc/generated/html_full/dir_d54aa94669c58d37a530f384e5a8d959.html index eab6c89e7..0a10e68c4 100644 --- a/doc/ipc_doc/generated/html_full/dir_d54aa94669c58d37a530f384e5a8d959.html +++ b/doc/ipc_doc/generated/html_full/dir_d54aa94669c58d37a530f384e5a8d959.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_d618e329fbb069400f9c6c11fc37efe1.html b/doc/ipc_doc/generated/html_full/dir_d618e329fbb069400f9c6c11fc37efe1.html index 46a085778..181f68bfa 100644 --- a/doc/ipc_doc/generated/html_full/dir_d618e329fbb069400f9c6c11fc37efe1.html +++ b/doc/ipc_doc/generated/html_full/dir_d618e329fbb069400f9c6c11fc37efe1.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_ddb0f12d0722949f40b2818843b69123.html b/doc/ipc_doc/generated/html_full/dir_ddb0f12d0722949f40b2818843b69123.html index 7c5c00b06..05802d235 100644 --- a/doc/ipc_doc/generated/html_full/dir_ddb0f12d0722949f40b2818843b69123.html +++ b/doc/ipc_doc/generated/html_full/dir_ddb0f12d0722949f40b2818843b69123.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html b/doc/ipc_doc/generated/html_full/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html index d63502095..897d66d19 100644 --- a/doc/ipc_doc/generated/html_full/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html +++ b/doc/ipc_doc/generated/html_full/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html b/doc/ipc_doc/generated/html_full/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html index 09ac71e3c..9a155284e 100644 --- a/doc/ipc_doc/generated/html_full/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html +++ b/doc/ipc_doc/generated/html_full/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_e82f953eb2d89bcd842ae00e323ae1e5.html b/doc/ipc_doc/generated/html_full/dir_e82f953eb2d89bcd842ae00e323ae1e5.html index db4dbcd05..aee9022f8 100644 --- a/doc/ipc_doc/generated/html_full/dir_e82f953eb2d89bcd842ae00e323ae1e5.html +++ b/doc/ipc_doc/generated/html_full/dir_e82f953eb2d89bcd842ae00e323ae1e5.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_e8a6be6454742763ef88d859db4d5829.html b/doc/ipc_doc/generated/html_full/dir_e8a6be6454742763ef88d859db4d5829.html index 420dc9372..a33d1b864 100644 --- a/doc/ipc_doc/generated/html_full/dir_e8a6be6454742763ef88d859db4d5829.html +++ b/doc/ipc_doc/generated/html_full/dir_e8a6be6454742763ef88d859db4d5829.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_f0dcdbcdad5dc990ffed47548b79989b.html b/doc/ipc_doc/generated/html_full/dir_f0dcdbcdad5dc990ffed47548b79989b.html index 71797c760..670dcc4cc 100644 --- a/doc/ipc_doc/generated/html_full/dir_f0dcdbcdad5dc990ffed47548b79989b.html +++ b/doc/ipc_doc/generated/html_full/dir_f0dcdbcdad5dc990ffed47548b79989b.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/dir_ff5224d8270264443126f24ce9d073a6.html b/doc/ipc_doc/generated/html_full/dir_ff5224d8270264443126f24ce9d073a6.html index 2d2cc6e9d..8d9dd1681 100644 --- a/doc/ipc_doc/generated/html_full/dir_ff5224d8270264443126f24ce9d073a6.html +++ b/doc/ipc_doc/generated/html_full/dir_ff5224d8270264443126f24ce9d073a6.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_full/files.html b/doc/ipc_doc/generated/html_full/files.html index 4adc38334..3ffda120f 100644 --- a/doc/ipc_doc/generated/html_full/files.html +++ b/doc/ipc_doc/generated/html_full/files.html @@ -272,7 +272,7 @@ diff --git a/doc/ipc_doc/generated/html_full/functions.html b/doc/ipc_doc/generated/html_full/functions.html index e3d652099..7155e6d5a 100644 --- a/doc/ipc_doc/generated/html_full/functions.html +++ b/doc/ipc_doc/generated/html_full/functions.html @@ -116,7 +116,7 @@

        - a -

          diff --git a/doc/ipc_doc/generated/html_full/functions_b.html b/doc/ipc_doc/generated/html_full/functions_b.html index 85faee19f..7116f5fd8 100644 --- a/doc/ipc_doc/generated/html_full/functions_b.html +++ b/doc/ipc_doc/generated/html_full/functions_b.html @@ -72,8 +72,8 @@

          - b -

          • base() : ipc::session::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload, S_SHM_TYPE_OR_NONE, S_SHM_MAX_HNDL_SZ, S_GRACEFUL_FINISH_REQUIRED_V >
          • Base : ipc::session::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload, S_SHM_TYPE_OR_NONE, S_SHM_MAX_HNDL_SZ, S_GRACEFUL_FINISH_REQUIRED_V >, ipc::session::Server_session_mv< Server_session_impl_t >
          • base() : ipc::session::Session_mv< Session_impl_t >
          • -
          • Base : ipc::session::shm::arena_lend::jemalloc::Client_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Session_impl< Session_impl_t >, ipc::session::shm::arena_lend::jemalloc::Session_mv< Session_t >, ipc::session::shm::classic::Client_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Session_impl< Session_impl_t >, ipc::session::shm::classic::Session_mv< Session_t >, ipc::session::sync_io::Client_session_adapter< Session >, ipc::session::sync_io::Server_session_adapter< Session >, ipc::transport::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_sender_impl< Persistent_mq_handle >, ipc::transport::Mqs_channel< SIO, Persistent_mq_handle, Native_handle_sender, Native_handle_receiver >, ipc::transport::Mqs_socket_stream_channel< SIO, Persistent_mq_handle >, ipc::transport::Socket_stream_channel< SIO >, ipc::transport::Socket_stream_channel_of_blobs< SIO >, ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >, ipc::transport::struc::Msg_mdt_out< Struct_builder_config >, ipc::transport::struc::Msg_out_impl< Message_body, Struct_builder >, ipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >, ipc::util::sync_io::Asio_waitable_native_handle
          • -
          • Bipc_mq_handle() : ipc::transport::Bipc_mq_handle
          • +
          • Base : ipc::session::shm::arena_lend::jemalloc::Client_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Session_impl< Session_impl_t >, ipc::session::shm::arena_lend::jemalloc::Session_mv< Session_t >, ipc::session::shm::classic::Client_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Server_session< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Session_impl< Session_impl_t >, ipc::session::shm::classic::Session_mv< Session_t >, ipc::session::sync_io::Client_session_adapter< Session >, ipc::session::sync_io::Server_session_adapter< Session >, ipc::transport::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_sender_impl< Persistent_mq_handle >, ipc::transport::Mqs_channel< SIO, Persistent_mq_handle, Native_handle_sender, Native_handle_receiver >, ipc::transport::Mqs_socket_stream_channel< SIO, Persistent_mq_handle >, ipc::transport::Socket_stream_channel< SIO >, ipc::transport::Socket_stream_channel_of_blobs< SIO >, ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >, ipc::transport::struc::Msg_mdt_out< Struct_builder_config >, ipc::transport::struc::Msg_out_impl< Message_body, Struct_builder >, ipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >, ipc::util::sync_io::Asio_waitable_native_handle
          • +
          • Bipc_mq_handle() : ipc::transport::Bipc_mq_handle
          • Blob : ipc::session::shm::arena_lend::jemalloc::Session_impl< Session_impl_t >, ipc::session::shm::arena_lend::jemalloc::Session_mv< Session_t >, ipc::session::shm::classic::Session_impl< Session_impl_t >, ipc::session::shm::classic::Session_mv< Session_t >, ipc::shm::classic::Pool_arena
          • blob_rcv() : ipc::transport::Channel< Blob_sender, Blob_receiver, Native_handle_sender, Native_handle_receiver >
          • Blob_receiver() : ipc::transport::Blob_receiver, ipc::transport::sync_io::Blob_receiver
          • @@ -99,7 +99,7 @@

            - b -

              diff --git a/doc/ipc_doc/generated/html_full/functions_c.html b/doc/ipc_doc/generated/html_full/functions_c.html index b31dafa56..e9e6d15ce 100644 --- a/doc/ipc_doc/generated/html_full/functions_c.html +++ b/doc/ipc_doc/generated/html_full/functions_c.html @@ -112,7 +112,7 @@

              - c -

                diff --git a/doc/ipc_doc/generated/html_full/functions_d.html b/doc/ipc_doc/generated/html_full/functions_d.html index 1146492dd..79f08f5ea 100644 --- a/doc/ipc_doc/generated/html_full/functions_d.html +++ b/doc/ipc_doc/generated/html_full/functions_d.html @@ -77,7 +77,7 @@

                - d -

                  diff --git a/doc/ipc_doc/generated/html_full/functions_e.html b/doc/ipc_doc/generated/html_full/functions_e.html index 51874fff4..f080b00ff 100644 --- a/doc/ipc_doc/generated/html_full/functions_e.html +++ b/doc/ipc_doc/generated/html_full/functions_e.html @@ -84,7 +84,7 @@

                  - e -

                    diff --git a/doc/ipc_doc/generated/html_full/functions_enum.html b/doc/ipc_doc/generated/html_full/functions_enum.html index fe3e7df3d..9af738414 100644 --- a/doc/ipc_doc/generated/html_full/functions_enum.html +++ b/doc/ipc_doc/generated/html_full/functions_enum.html @@ -75,7 +75,7 @@ diff --git a/doc/ipc_doc/generated/html_full/functions_eval.html b/doc/ipc_doc/generated/html_full/functions_eval.html index 477adc080..bb7295715 100644 --- a/doc/ipc_doc/generated/html_full/functions_eval.html +++ b/doc/ipc_doc/generated/html_full/functions_eval.html @@ -71,7 +71,7 @@ diff --git a/doc/ipc_doc/generated/html_full/functions_f.html b/doc/ipc_doc/generated/html_full/functions_f.html index 73c539c8d..1ed99e215 100644 --- a/doc/ipc_doc/generated/html_full/functions_f.html +++ b/doc/ipc_doc/generated/html_full/functions_f.html @@ -75,7 +75,7 @@

                    - f -

                      diff --git a/doc/ipc_doc/generated/html_full/functions_func.html b/doc/ipc_doc/generated/html_full/functions_func.html index 9665f9132..823ed60fe 100644 --- a/doc/ipc_doc/generated/html_full/functions_func.html +++ b/doc/ipc_doc/generated/html_full/functions_func.html @@ -108,7 +108,7 @@

                      - a -

                        diff --git a/doc/ipc_doc/generated/html_full/functions_func_b.html b/doc/ipc_doc/generated/html_full/functions_func_b.html index f7d6a3c38..ac7c9b876 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_b.html +++ b/doc/ipc_doc/generated/html_full/functions_func_b.html @@ -83,7 +83,7 @@

                        - b -

                          diff --git a/doc/ipc_doc/generated/html_full/functions_func_c.html b/doc/ipc_doc/generated/html_full/functions_func_c.html index d5834f061..367f1b3fd 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_c.html +++ b/doc/ipc_doc/generated/html_full/functions_func_c.html @@ -103,7 +103,7 @@

                          - c -

                            diff --git a/doc/ipc_doc/generated/html_full/functions_func_d.html b/doc/ipc_doc/generated/html_full/functions_func_d.html index 69c08deca..f93a549d1 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_d.html +++ b/doc/ipc_doc/generated/html_full/functions_func_d.html @@ -77,7 +77,7 @@

                            - d -

                              diff --git a/doc/ipc_doc/generated/html_full/functions_func_e.html b/doc/ipc_doc/generated/html_full/functions_func_e.html index 9d6d28f20..3a7ed3f44 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_e.html +++ b/doc/ipc_doc/generated/html_full/functions_func_e.html @@ -81,7 +81,7 @@

                              - e -

                                diff --git a/doc/ipc_doc/generated/html_full/functions_func_f.html b/doc/ipc_doc/generated/html_full/functions_func_f.html index 5e03a6dcd..6f49ea009 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_f.html +++ b/doc/ipc_doc/generated/html_full/functions_func_f.html @@ -75,7 +75,7 @@

                                - f -

                                  diff --git a/doc/ipc_doc/generated/html_full/functions_func_g.html b/doc/ipc_doc/generated/html_full/functions_func_g.html index 8e91a9527..e0bbf1b1d 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_g.html +++ b/doc/ipc_doc/generated/html_full/functions_func_g.html @@ -75,7 +75,7 @@

                                  - g -

                                    diff --git a/doc/ipc_doc/generated/html_full/functions_func_h.html b/doc/ipc_doc/generated/html_full/functions_func_h.html index 04c70c730..7d8421b2c 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_h.html +++ b/doc/ipc_doc/generated/html_full/functions_func_h.html @@ -88,7 +88,7 @@

                                    - h -

                                      diff --git a/doc/ipc_doc/generated/html_full/functions_func_i.html b/doc/ipc_doc/generated/html_full/functions_func_i.html index 0d5c43933..7c7a2e7ac 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_i.html +++ b/doc/ipc_doc/generated/html_full/functions_func_i.html @@ -68,8 +68,8 @@

                                      - i -

                                      • id_or_none() : ipc::transport::struc::Msg_in< Message_body, Struct_reader_config >, ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >
                                      • idle_timer_run() : ipc::transport::Blob_receiver, ipc::transport::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::Channel< Blob_sender, Blob_receiver, Native_handle_sender, Native_handle_receiver >, ipc::transport::Native_handle_receiver, ipc::transport::Native_socket_stream, ipc::transport::Native_socket_stream::Impl, ipc::transport::sync_io::Async_adapter_receiver< Core_t >, ipc::transport::sync_io::Blob_receiver, ipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Native_handle_receiver, ipc::transport::sync_io::Native_socket_stream, ipc::transport::sync_io::Native_socket_stream::Impl
                                      • -
                                      • impl() : ipc::session::Session_mv< Session_impl_t >, ipc::transport::Native_socket_stream
                                      • -
                                      • Impl() : ipc::transport::Native_socket_stream::Impl
                                      • +
                                      • impl() : ipc::session::Session_mv< Session_impl_t >, ipc::transport::Native_socket_stream
                                      • +
                                      • Impl() : ipc::transport::Native_socket_stream::Impl
                                      • impl() : ipc::transport::sync_io::Native_socket_stream
                                      • Impl() : ipc::transport::sync_io::Native_socket_stream::Impl
                                      • increment_use() : ipc::util::Use_counted_object
                                      • @@ -95,7 +95,7 @@

                                        - i -

                                          diff --git a/doc/ipc_doc/generated/html_full/functions_func_l.html b/doc/ipc_doc/generated/html_full/functions_func_l.html index a1ef6308c..c900e7628 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_l.html +++ b/doc/ipc_doc/generated/html_full/functions_func_l.html @@ -74,7 +74,7 @@

                                          - l -

                                            diff --git a/doc/ipc_doc/generated/html_full/functions_func_m.html b/doc/ipc_doc/generated/html_full/functions_func_m.html index 168955b36..9aa68e45a 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_m.html +++ b/doc/ipc_doc/generated/html_full/functions_func_m.html @@ -85,7 +85,7 @@

                                            - m -

                                              diff --git a/doc/ipc_doc/generated/html_full/functions_func_n.html b/doc/ipc_doc/generated/html_full/functions_func_n.html index a43aeb7e4..cf141fb47 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_n.html +++ b/doc/ipc_doc/generated/html_full/functions_func_n.html @@ -86,7 +86,7 @@

                                              - n -

                                                diff --git a/doc/ipc_doc/generated/html_full/functions_func_o.html b/doc/ipc_doc/generated/html_full/functions_func_o.html index 81a38c791..c3fc96893 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_o.html +++ b/doc/ipc_doc/generated/html_full/functions_func_o.html @@ -108,7 +108,7 @@

                                                - o -

                                                  diff --git a/doc/ipc_doc/generated/html_full/functions_func_p.html b/doc/ipc_doc/generated/html_full/functions_func_p.html index f8fb74a44..c86e8b416 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_p.html +++ b/doc/ipc_doc/generated/html_full/functions_func_p.html @@ -81,7 +81,7 @@

                                                  - p -

                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_func_r.html b/doc/ipc_doc/generated/html_full/functions_func_r.html index a4d058dfc..567fdb500 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_r.html +++ b/doc/ipc_doc/generated/html_full/functions_func_r.html @@ -103,7 +103,7 @@

                                                    - r -

                                                      diff --git a/doc/ipc_doc/generated/html_full/functions_func_s.html b/doc/ipc_doc/generated/html_full/functions_func_s.html index bb845446f..bd62a8fe6 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_s.html +++ b/doc/ipc_doc/generated/html_full/functions_func_s.html @@ -152,7 +152,7 @@

                                                      - s -

                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_func_t.html b/doc/ipc_doc/generated/html_full/functions_func_t.html index 5d467d30d..efea92a3c 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_t.html +++ b/doc/ipc_doc/generated/html_full/functions_func_t.html @@ -81,7 +81,7 @@

                                                        - t -

                                                          diff --git a/doc/ipc_doc/generated/html_full/functions_func_u.html b/doc/ipc_doc/generated/html_full/functions_func_u.html index 4769bd817..974bdc846 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_u.html +++ b/doc/ipc_doc/generated/html_full/functions_func_u.html @@ -76,7 +76,7 @@

                                                          - u -

                                                            diff --git a/doc/ipc_doc/generated/html_full/functions_func_w.html b/doc/ipc_doc/generated/html_full/functions_func_w.html index 0f4225a24..53c360a57 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_w.html +++ b/doc/ipc_doc/generated/html_full/functions_func_w.html @@ -73,7 +73,7 @@

                                                            - w -

                                                              diff --git a/doc/ipc_doc/generated/html_full/functions_func_~.html b/doc/ipc_doc/generated/html_full/functions_func_~.html index bb7c0eabe..ad0a79917 100644 --- a/doc/ipc_doc/generated/html_full/functions_func_~.html +++ b/doc/ipc_doc/generated/html_full/functions_func_~.html @@ -105,7 +105,7 @@

                                                              - ~ -

                                                                diff --git a/doc/ipc_doc/generated/html_full/functions_g.html b/doc/ipc_doc/generated/html_full/functions_g.html index d33f9ba15..40ace95bb 100644 --- a/doc/ipc_doc/generated/html_full/functions_g.html +++ b/doc/ipc_doc/generated/html_full/functions_g.html @@ -75,7 +75,7 @@

                                                                - g -

                                                                  diff --git a/doc/ipc_doc/generated/html_full/functions_h.html b/doc/ipc_doc/generated/html_full/functions_h.html index 3720a1ea5..3a447dd7c 100644 --- a/doc/ipc_doc/generated/html_full/functions_h.html +++ b/doc/ipc_doc/generated/html_full/functions_h.html @@ -90,7 +90,7 @@

                                                                  - h -

                                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_i.html b/doc/ipc_doc/generated/html_full/functions_i.html index 432b1485f..d43d69a3c 100644 --- a/doc/ipc_doc/generated/html_full/functions_i.html +++ b/doc/ipc_doc/generated/html_full/functions_i.html @@ -70,12 +70,12 @@

                                                                    - i -

                                                                    • id_t : ipc::transport::struc::Channel< Channel_obj, Message_body, Struct_builder_config, Struct_reader_config >::Sync_op_state
                                                                    • idle_timer_run() : ipc::transport::Blob_receiver, ipc::transport::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::Channel< Blob_sender, Blob_receiver, Native_handle_sender, Native_handle_receiver >, ipc::transport::Native_handle_receiver, ipc::transport::Native_socket_stream, ipc::transport::Native_socket_stream::Impl, ipc::transport::sync_io::Async_adapter_receiver< Core_t >, ipc::transport::sync_io::Blob_receiver, ipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Native_handle_receiver, ipc::transport::sync_io::Native_socket_stream, ipc::transport::sync_io::Native_socket_stream::Impl
                                                                    • Impl : ipc::session::Session_mv< Session_impl_t >
                                                                    • -
                                                                    • impl() : ipc::session::Session_mv< Session_impl_t >
                                                                    • +
                                                                    • impl() : ipc::session::Session_mv< Session_impl_t >
                                                                    • Impl : ipc::session::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::arena_lend::jemalloc::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >, ipc::session::shm::classic::Session_server< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >
                                                                    • impl() : ipc::transport::Native_socket_stream
                                                                    • -
                                                                    • Impl() : ipc::transport::Native_socket_stream::Impl
                                                                    • +
                                                                    • Impl() : ipc::transport::Native_socket_stream::Impl
                                                                    • impl() : ipc::transport::sync_io::Native_socket_stream
                                                                    • -
                                                                    • Impl() : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                    • +
                                                                    • Impl() : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                    • Impl_ptr : ipc::session::Session_mv< Session_impl_t >, ipc::transport::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::Native_socket_stream, ipc::transport::sync_io::Blob_stream_mq_receiver< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender< Persistent_mq_handle >, ipc::transport::sync_io::Native_socket_stream
                                                                    • Incomplete_session : ipc::session::Session_server_impl< Session_server_t, Server_session_t >
                                                                    • Incomplete_session_observer : ipc::session::Session_server_impl< Session_server_t, Server_session_t >
                                                                    • @@ -105,7 +105,7 @@

                                                                      - i -

                                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_l.html b/doc/ipc_doc/generated/html_full/functions_l.html index 534482eb7..a0f535a1d 100644 --- a/doc/ipc_doc/generated/html_full/functions_l.html +++ b/doc/ipc_doc/generated/html_full/functions_l.html @@ -76,7 +76,7 @@

                                                                        - l -

                                                                          diff --git a/doc/ipc_doc/generated/html_full/functions_m.html b/doc/ipc_doc/generated/html_full/functions_m.html index 8f618a98d..d7a6fd486 100644 --- a/doc/ipc_doc/generated/html_full/functions_m.html +++ b/doc/ipc_doc/generated/html_full/functions_m.html @@ -189,6 +189,7 @@

                                                                          - m -

                                                                          • m_opened_channel : ipc::session::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload, S_SHM_TYPE_OR_NONE, S_SHM_MAX_HNDL_SZ, S_GRACEFUL_FINISH_REQUIRED_V >::Open_channel_req
                                                                          • m_opposing_session_done : ipc::session::Session_base< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >::Graceful_finisher
                                                                          • m_peer_socket : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                          • +
                                                                          • m_peer_socket_hosed : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                          • m_peer_socket_mutex : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                          • m_peer_state_err_code_or_ok : ipc::session::Session_base< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >
                                                                          • m_pending_err_code : ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >
                                                                          • @@ -341,7 +342,7 @@

                                                                            - m -

                                                                              diff --git a/doc/ipc_doc/generated/html_full/functions_n.html b/doc/ipc_doc/generated/html_full/functions_n.html index 1c071f062..8bcb9bf5f 100644 --- a/doc/ipc_doc/generated/html_full/functions_n.html +++ b/doc/ipc_doc/generated/html_full/functions_n.html @@ -90,7 +90,7 @@

                                                                              - n -

                                                                                diff --git a/doc/ipc_doc/generated/html_full/functions_o.html b/doc/ipc_doc/generated/html_full/functions_o.html index c3970a08a..459ade66c 100644 --- a/doc/ipc_doc/generated/html_full/functions_o.html +++ b/doc/ipc_doc/generated/html_full/functions_o.html @@ -106,8 +106,8 @@

                                                                                - o -

                                                                                • operator>>() : ipc::util::Shared_name
                                                                                • Opt_peer_process_credentials() : ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials
                                                                                • originating_msg_id_or_none() : ipc::transport::struc::Msg_in< Message_body, Struct_reader_config >, ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >
                                                                                • -
                                                                                • Orphanage : ipc::transport::struc::Msg_out< Message_body, Struct_builder_t >
                                                                                • orphanage() : ipc::transport::struc::Msg_out< Message_body, Struct_builder_t >
                                                                                • +
                                                                                • Orphanage : ipc::transport::struc::Msg_out< Message_body, Struct_builder_t >
                                                                                • own_group_id() : ipc::util::Process_credentials
                                                                                • own_process_credentials() : ipc::util::Process_credentials
                                                                                • own_process_id() : ipc::util::Process_credentials
                                                                                • @@ -121,7 +121,7 @@

                                                                                  - o -

                                                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_p.html b/doc/ipc_doc/generated/html_full/functions_p.html index ae54d4fb5..600ec3cd4 100644 --- a/doc/ipc_doc/generated/html_full/functions_p.html +++ b/doc/ipc_doc/generated/html_full/functions_p.html @@ -92,7 +92,7 @@

                                                                                    - p -

                                                                                      diff --git a/doc/ipc_doc/generated/html_full/functions_r.html b/doc/ipc_doc/generated/html_full/functions_r.html index 0aaca93e4..93aff83d7 100644 --- a/doc/ipc_doc/generated/html_full/functions_r.html +++ b/doc/ipc_doc/generated/html_full/functions_r.html @@ -107,7 +107,7 @@

                                                                                      - r -

                                                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_rela.html b/doc/ipc_doc/generated/html_full/functions_rela.html index bcff94bee..dbc4d3351 100644 --- a/doc/ipc_doc/generated/html_full/functions_rela.html +++ b/doc/ipc_doc/generated/html_full/functions_rela.html @@ -70,7 +70,7 @@ diff --git a/doc/ipc_doc/generated/html_full/functions_s.html b/doc/ipc_doc/generated/html_full/functions_s.html index 08341c807..ecb809141 100644 --- a/doc/ipc_doc/generated/html_full/functions_s.html +++ b/doc/ipc_doc/generated/html_full/functions_s.html @@ -214,7 +214,7 @@

                                                                                        - s -

                                                                                          diff --git a/doc/ipc_doc/generated/html_full/functions_t.html b/doc/ipc_doc/generated/html_full/functions_t.html index 96b2a8728..ee9e55d92 100644 --- a/doc/ipc_doc/generated/html_full/functions_t.html +++ b/doc/ipc_doc/generated/html_full/functions_t.html @@ -83,7 +83,7 @@

                                                                                          - t -

                                                                                            diff --git a/doc/ipc_doc/generated/html_full/functions_type.html b/doc/ipc_doc/generated/html_full/functions_type.html index 611b4d094..7ced54c84 100644 --- a/doc/ipc_doc/generated/html_full/functions_type.html +++ b/doc/ipc_doc/generated/html_full/functions_type.html @@ -78,7 +78,7 @@

                                                                                            - a -

                                                                                              diff --git a/doc/ipc_doc/generated/html_full/functions_type_b.html b/doc/ipc_doc/generated/html_full/functions_type_b.html index 6a8938801..c569d0a8e 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_b.html +++ b/doc/ipc_doc/generated/html_full/functions_type_b.html @@ -82,7 +82,7 @@

                                                                                              - b -

                                                                                                diff --git a/doc/ipc_doc/generated/html_full/functions_type_c.html b/doc/ipc_doc/generated/html_full/functions_type_c.html index f8969c29e..5e5197aa4 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_c.html +++ b/doc/ipc_doc/generated/html_full/functions_type_c.html @@ -79,7 +79,7 @@

                                                                                                - c -

                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/functions_type_e.html b/doc/ipc_doc/generated/html_full/functions_type_e.html index 62b8d9736..d756551a5 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_e.html +++ b/doc/ipc_doc/generated/html_full/functions_type_e.html @@ -73,7 +73,7 @@

                                                                                                  - e -

                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_type_h.html b/doc/ipc_doc/generated/html_full/functions_type_h.html index 49ceeab12..5c2ea4156 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_h.html +++ b/doc/ipc_doc/generated/html_full/functions_type_h.html @@ -72,7 +72,7 @@

                                                                                                    - h -

                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/functions_type_i.html b/doc/ipc_doc/generated/html_full/functions_type_i.html index 2e922ceef..43f2d96c0 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_i.html +++ b/doc/ipc_doc/generated/html_full/functions_type_i.html @@ -78,7 +78,7 @@

                                                                                                      - i -

                                                                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_type_l.html b/doc/ipc_doc/generated/html_full/functions_type_l.html index d9389ccb7..6ed6f4cff 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_l.html +++ b/doc/ipc_doc/generated/html_full/functions_type_l.html @@ -72,7 +72,7 @@

                                                                                                        - l -

                                                                                                          diff --git a/doc/ipc_doc/generated/html_full/functions_type_m.html b/doc/ipc_doc/generated/html_full/functions_type_m.html index 23c5dcef1..823d68de2 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_m.html +++ b/doc/ipc_doc/generated/html_full/functions_type_m.html @@ -98,7 +98,7 @@

                                                                                                          - m -

                                                                                                            diff --git a/doc/ipc_doc/generated/html_full/functions_type_n.html b/doc/ipc_doc/generated/html_full/functions_type_n.html index 4be9e9912..78acd8ad4 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_n.html +++ b/doc/ipc_doc/generated/html_full/functions_type_n.html @@ -74,7 +74,7 @@

                                                                                                            - n -

                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/functions_type_o.html b/doc/ipc_doc/generated/html_full/functions_type_o.html index 3158d55af..8cc52ecaf 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_o.html +++ b/doc/ipc_doc/generated/html_full/functions_type_o.html @@ -80,7 +80,7 @@

                                                                                                              - o -

                                                                                                                diff --git a/doc/ipc_doc/generated/html_full/functions_type_p.html b/doc/ipc_doc/generated/html_full/functions_type_p.html index 0670d71df..26c461180 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_p.html +++ b/doc/ipc_doc/generated/html_full/functions_type_p.html @@ -80,7 +80,7 @@

                                                                                                                - p -

                                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/functions_type_r.html b/doc/ipc_doc/generated/html_full/functions_type_r.html index b5178fa39..3f43d4c2e 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_r.html +++ b/doc/ipc_doc/generated/html_full/functions_type_r.html @@ -73,7 +73,7 @@

                                                                                                                  - r -

                                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_type_s.html b/doc/ipc_doc/generated/html_full/functions_type_s.html index 4238279dd..00ebc4b25 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_s.html +++ b/doc/ipc_doc/generated/html_full/functions_type_s.html @@ -87,7 +87,7 @@

                                                                                                                    - s -

                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/functions_type_t.html b/doc/ipc_doc/generated/html_full/functions_type_t.html index 59b169ab9..66d7962bf 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_t.html +++ b/doc/ipc_doc/generated/html_full/functions_type_t.html @@ -72,7 +72,7 @@

                                                                                                                      - t -

                                                                                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_type_v.html b/doc/ipc_doc/generated/html_full/functions_type_v.html index f85d719f6..3b69ed609 100644 --- a/doc/ipc_doc/generated/html_full/functions_type_v.html +++ b/doc/ipc_doc/generated/html_full/functions_type_v.html @@ -72,7 +72,7 @@

                                                                                                                        - v -

                                                                                                                          diff --git a/doc/ipc_doc/generated/html_full/functions_u.html b/doc/ipc_doc/generated/html_full/functions_u.html index 07491ea31..de193c36f 100644 --- a/doc/ipc_doc/generated/html_full/functions_u.html +++ b/doc/ipc_doc/generated/html_full/functions_u.html @@ -76,7 +76,7 @@

                                                                                                                          - u -

                                                                                                                            diff --git a/doc/ipc_doc/generated/html_full/functions_v.html b/doc/ipc_doc/generated/html_full/functions_v.html index cdeea1638..6ae802212 100644 --- a/doc/ipc_doc/generated/html_full/functions_v.html +++ b/doc/ipc_doc/generated/html_full/functions_v.html @@ -73,7 +73,7 @@

                                                                                                                            - v -

                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/functions_vars.html b/doc/ipc_doc/generated/html_full/functions_vars.html index 3eb34b3cb..a25dd1b3d 100644 --- a/doc/ipc_doc/generated/html_full/functions_vars.html +++ b/doc/ipc_doc/generated/html_full/functions_vars.html @@ -189,6 +189,7 @@

                                                                                                                              - m -

                                                                                                                              • m_opened_channel : ipc::session::Server_session_impl< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload, S_SHM_TYPE_OR_NONE, S_SHM_MAX_HNDL_SZ, S_GRACEFUL_FINISH_REQUIRED_V >::Open_channel_req
                                                                                                                              • m_opposing_session_done : ipc::session::Session_base< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >::Graceful_finisher
                                                                                                                              • m_peer_socket : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                                                                              • +
                                                                                                                              • m_peer_socket_hosed : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                                                                              • m_peer_socket_mutex : ipc::transport::sync_io::Native_socket_stream::Impl
                                                                                                                              • m_peer_state_err_code_or_ok : ipc::session::Session_base< S_MQ_TYPE_OR_NONE, S_TRANSMIT_NATIVE_HANDLES, Mdt_payload >
                                                                                                                              • m_pending_err_code : ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >, ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >
                                                                                                                              • @@ -297,7 +298,7 @@

                                                                                                                                - m -

                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/functions_vars_s.html b/doc/ipc_doc/generated/html_full/functions_vars_s.html index 66a149eeb..328623205 100644 --- a/doc/ipc_doc/generated/html_full/functions_vars_s.html +++ b/doc/ipc_doc/generated/html_full/functions_vars_s.html @@ -110,7 +110,7 @@

                                                                                                                                  - s -

                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/functions_vars_v.html b/doc/ipc_doc/generated/html_full/functions_vars_v.html index 598feb320..be265dc21 100644 --- a/doc/ipc_doc/generated/html_full/functions_vars_v.html +++ b/doc/ipc_doc/generated/html_full/functions_vars_v.html @@ -71,7 +71,7 @@

                                                                                                                                    - v -

                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/functions_w.html b/doc/ipc_doc/generated/html_full/functions_w.html index 197694c9b..c25c95132 100644 --- a/doc/ipc_doc/generated/html_full/functions_w.html +++ b/doc/ipc_doc/generated/html_full/functions_w.html @@ -74,7 +74,7 @@

                                                                                                                                      - w -

                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_full/functions_~.html b/doc/ipc_doc/generated/html_full/functions_~.html index e0e6f067b..10c8ac4f9 100644 --- a/doc/ipc_doc/generated/html_full/functions_~.html +++ b/doc/ipc_doc/generated/html_full/functions_~.html @@ -105,7 +105,7 @@

                                                                                                                                        - ~ -

                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_full/globals.html b/doc/ipc_doc/generated/html_full/globals.html index 50106ac2d..1a4629a47 100644 --- a/doc/ipc_doc/generated/html_full/globals.html +++ b/doc/ipc_doc/generated/html_full/globals.html @@ -130,7 +130,7 @@

                                                                                                                                          - t -

                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_full/globals_defs.html b/doc/ipc_doc/generated/html_full/globals_defs.html index 317321d29..c6d6a581e 100644 --- a/doc/ipc_doc/generated/html_full/globals_defs.html +++ b/doc/ipc_doc/generated/html_full/globals_defs.html @@ -130,7 +130,7 @@

                                                                                                                                            - t -

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/graph_legend.html b/doc/ipc_doc/generated/html_full/graph_legend.html index e85094dfc..8a79c59b3 100644 --- a/doc/ipc_doc/generated/html_full/graph_legend.html +++ b/doc/ipc_doc/generated/html_full/graph_legend.html @@ -129,7 +129,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp.html b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp.html index a69bf71ef..423deb447 100644 --- a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp.html +++ b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp.html @@ -91,7 +91,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp_source.html b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp_source.html index 8a4a575bc..30040db7f 100644 --- a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8cpp_source.html @@ -226,7 +226,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp.html b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp.html index 51ebe75aa..7c9028406 100644 --- a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp.html +++ b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp_source.html b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp_source.html index 3f5589f65..e591bbb12 100644 --- a/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/heap__fixed__builder__capnp__msg__builder_8hpp_source.html @@ -289,7 +289,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__serializer_8cpp.html b/doc/ipc_doc/generated/html_full/heap__serializer_8cpp.html index 550d6a304..2804847cd 100644 --- a/doc/ipc_doc/generated/html_full/heap__serializer_8cpp.html +++ b/doc/ipc_doc/generated/html_full/heap__serializer_8cpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__serializer_8cpp_source.html b/doc/ipc_doc/generated/html_full/heap__serializer_8cpp_source.html index e7c516615..2fc055b35 100644 --- a/doc/ipc_doc/generated/html_full/heap__serializer_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/heap__serializer_8cpp_source.html @@ -301,7 +301,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__serializer_8hpp.html b/doc/ipc_doc/generated/html_full/heap__serializer_8hpp.html index 6c182840d..db20cae60 100644 --- a/doc/ipc_doc/generated/html_full/heap__serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_full/heap__serializer_8hpp.html @@ -122,7 +122,7 @@ diff --git a/doc/ipc_doc/generated/html_full/heap__serializer_8hpp_source.html b/doc/ipc_doc/generated/html_full/heap__serializer_8hpp_source.html index 19a374cee..824a7b0d1 100644 --- a/doc/ipc_doc/generated/html_full/heap__serializer_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/heap__serializer_8hpp_source.html @@ -675,7 +675,7 @@ diff --git a/doc/ipc_doc/generated/html_full/hierarchy.html b/doc/ipc_doc/generated/html_full/hierarchy.html index 35a64b389..aeb8e79f4 100644 --- a/doc/ipc_doc/generated/html_full/hierarchy.html +++ b/doc/ipc_doc/generated/html_full/hierarchy.html @@ -283,7 +283,7 @@ diff --git a/doc/ipc_doc/generated/html_full/index.html b/doc/ipc_doc/generated/html_full/index.html index 05f010aab..a73e59fc0 100644 --- a/doc/ipc_doc/generated/html_full/index.html +++ b/doc/ipc_doc/generated/html_full/index.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/inherits.html b/doc/ipc_doc/generated/html_full/inherits.html index 9644a9960..48e2e3e6d 100644 --- a/doc/ipc_doc/generated/html_full/inherits.html +++ b/doc/ipc_doc/generated/html_full/inherits.html @@ -233,7 +233,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp.html index 5522361f4..9be184b7e 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp_source.html index 3197a460e..9620eac7f 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8cpp_source.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp.html index d4b2f233b..d58bf4868 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp.html @@ -173,7 +173,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html index 3d0910322..3b19c3f9f 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2channel_8hpp_source.html @@ -2521,7 +2521,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp.html index 3a38b2d14..5783f1352 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp_source.html index 533dfdbe8..f8dd0f928 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8cpp_source.html @@ -368,7 +368,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp.html index 90f37a006..e2cb8b6c9 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp.html @@ -157,7 +157,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp_source.html index 96c65817e..7548060ce 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2transport_2error_8hpp_source.html @@ -371,7 +371,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp.html index fe464150d..446f08276 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp_source.html index 99bbca810..b507e11b7 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2detail_2util_8cpp_source.html @@ -246,7 +246,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp.html index 3b8a71e93..ce2cd46d0 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp.html @@ -130,7 +130,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp_source.html index b42eef4f7..b00bb3937 100644 --- a/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__core_2src_2ipc_2util_2util_8cpp_source.html @@ -266,7 +266,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp.html index 78128511f..552a532a2 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp.html @@ -152,7 +152,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp_source.html index ed7b59a1b..e00356ee3 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2client__session_8hpp_source.html @@ -519,7 +519,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp.html index eada746e9..6c9d65688 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp.html @@ -165,7 +165,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp_source.html index e25fee461..efa74373a 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2client__session__impl_8hpp_source.html @@ -2815,7 +2815,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp.html index be6e5ce37..2b3b9c0cd 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp.html @@ -159,7 +159,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp_source.html index fb4fd576c..fc6e0e695 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2server__session__impl_8hpp_source.html @@ -2423,7 +2423,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp.html index 83bebc0f4..d75c4d130 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp_source.html index 33be56a48..596cf480d 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2detail_2session__shared__name_8cpp_source.html @@ -319,7 +319,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp.html index d69e68c21..197df0912 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp_source.html index 024c97f1c..d62c59fe6 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8cpp_source.html @@ -315,7 +315,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp.html index 1a69348d6..fa5895ebe 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp.html @@ -148,7 +148,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp_source.html index d7ac91996..4a3c0d9b4 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2error_8hpp_source.html @@ -272,7 +272,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp.html index f254a4343..cb32408f7 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp.html @@ -152,7 +152,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp_source.html index 056ca7927..74c33ea84 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2server__session_8hpp_source.html @@ -476,7 +476,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp.html index fc19a96e4..6d85f621e 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp.html @@ -156,7 +156,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp_source.html index 91d008ac0..742e48547 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session_8hpp_source.html @@ -1109,7 +1109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp.html index 4c6a05cf3..adf181f4c 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp.html @@ -151,7 +151,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp_source.html index e41d92242..817024441 100644 --- a/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__session_2src_2ipc_2session_2session__server_8hpp_source.html @@ -627,7 +627,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp.html index 92ce66729..4d344ab01 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp.html @@ -158,7 +158,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp_source.html index ab4a52b5c..61a7fb57e 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2client__session__impl_8hpp_source.html @@ -391,7 +391,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp.html index aeb22a941..7e3e6c7fa 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp.html @@ -160,7 +160,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp_source.html index 8f350055f..811fb0c28 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2server__session__impl_8hpp_source.html @@ -474,7 +474,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp.html index 845c28bf4..a5b9a1dad 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp_source.html index bdd3d6921..7bfeed177 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2detail_2shm_2classic_2session__shared__name_8cpp_source.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html index 429cd3d5b..74e070aef 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp_source.html index d3d022001..328654dca 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp_source.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html index 20f7a74dc..f164829fe 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html @@ -161,7 +161,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp_source.html index c7ab34528..8be5bf994 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp_source.html @@ -369,7 +369,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html index f867b5040..4486503d6 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html @@ -157,7 +157,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp_source.html index ae19ba666..722b59b0f 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp_source.html @@ -533,7 +533,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html index 35262e6da..ae7d3ff52 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html @@ -160,7 +160,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp_source.html index 608f20cfd..4b61f5bdf 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp_source.html @@ -834,7 +834,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html index aa666238a..299fdbfbf 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp_source.html index f3b1ecf4f..10695d7b1 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp_source.html @@ -237,7 +237,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html index 94d01f738..900f6ed18 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html @@ -133,7 +133,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp_source.html index e672dd62d..a9cee0c56 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp_source.html @@ -198,7 +198,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html index 6046ae40f..f140b3fa3 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html @@ -216,7 +216,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp_source.html index 127189dda..02ff06e4c 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp_source.html @@ -978,7 +978,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html index 3a4f33206..9b7e2e1ce 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp_source.html index 1f450f2f0..d7e537b21 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp_source.html @@ -145,7 +145,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp.html index 1cd8b1905..cdf210e26 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp.html @@ -163,7 +163,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp_source.html index 2e97fe6c0..c5108d816 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2client__session__impl_8hpp_source.html @@ -705,7 +705,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp.html index 1c4184458..4891e6389 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp.html @@ -162,7 +162,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp_source.html index 428369782..3434bcdb9 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2server__session__impl_8hpp_source.html @@ -495,7 +495,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp.html index 41ff9bd49..eba615c40 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp_source.html index f863c59b0..6dabe6f12 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2detail_2shm_2arena__lend_2jemalloc_2session__shared__name_8cpp_source.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html index 4f2baa872..dba1c40dc 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp_source.html index 0c0c1e45f..95c033937 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp_source.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html index b4dc58f14..3d2a91ba3 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp_source.html index 4bd168483..28255cf83 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp_source.html @@ -260,7 +260,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html index d1fd1018c..8ca969c9c 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html @@ -141,7 +141,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp_source.html index a5acc8c90..2cdbe10e6 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp_source.html @@ -226,7 +226,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html index c8b0ef087..242115bcc 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html @@ -166,7 +166,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp_source.html index 80cc56bd0..c2296bcc7 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp_source.html @@ -464,7 +464,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html index 2579df2d6..5af5a3c96 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html @@ -160,7 +160,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp_source.html index d895d8426..5ad21ba59 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp_source.html @@ -531,7 +531,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html index 39025f7ec..0e94589be 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html @@ -164,7 +164,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp_source.html index 026aad35a..e7983cbb5 100644 --- a/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp_source.html @@ -859,7 +859,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html index 3f5c4e3a7..f48be19b0 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp_source.html index f2850abe5..7c413ea1f 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp_source.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html index 250656834..2be588267 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html @@ -162,7 +162,7 @@

                                                                                                                                              Doxygen notes

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp_source.html index 8a56490f9..a406b20a2 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp_source.html @@ -2802,7 +2802,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html index 29a3e36c8..abdca3a4b 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp_source.html index d2395fab1..e06febf79 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp_source.html @@ -312,7 +312,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html index bbe5f3488..046c35b39 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html @@ -149,7 +149,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp_source.html index 7d08376a1..55010b4b2 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp_source.html @@ -246,7 +246,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html index 09a8ab0fd..ec938d5a1 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp_source.html index 5f6065f7f..286a2c9d6 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp_source.html @@ -670,7 +670,7 @@ diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html index dd5574a82..933e327ab 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html @@ -169,7 +169,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html index 245ed4ebd..8af63f395 100644 --- a/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp_source.html @@ -5338,7 +5338,7 @@ diff --git a/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp.html b/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp.html index d94946eb0..cba0db33e 100644 --- a/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp.html +++ b/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp.html @@ -75,7 +75,7 @@ diff --git a/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp_source.html b/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp_source.html index d322a1991..cd1aef7fa 100644 --- a/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/log__component__enum__declare_8macros_8hpp_source.html @@ -113,7 +113,7 @@ diff --git a/doc/ipc_doc/generated/html_full/msg_8hpp.html b/doc/ipc_doc/generated/html_full/msg_8hpp.html index b9a464dc5..3633d2740 100644 --- a/doc/ipc_doc/generated/html_full/msg_8hpp.html +++ b/doc/ipc_doc/generated/html_full/msg_8hpp.html @@ -208,7 +208,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/msg_8hpp_source.html b/doc/ipc_doc/generated/html_full/msg_8hpp_source.html index b87d8f0ea..a3e51b971 100644 --- a/doc/ipc_doc/generated/html_full/msg_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/msg_8hpp_source.html @@ -1568,7 +1568,7 @@ diff --git a/doc/ipc_doc/generated/html_full/msg__impl_8hpp.html b/doc/ipc_doc/generated/html_full/msg__impl_8hpp.html index 0479ab0e0..7d233c464 100644 --- a/doc/ipc_doc/generated/html_full/msg__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/msg__impl_8hpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/msg__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/msg__impl_8hpp_source.html index 41b6f544c..d95b8c2c2 100644 --- a/doc/ipc_doc/generated/html_full/msg__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/msg__impl_8hpp_source.html @@ -356,7 +356,7 @@ diff --git a/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp.html b/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp.html index 9ef57415d..7eccfee6a 100644 --- a/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp.html +++ b/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp_source.html b/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp_source.html index 9000bd0a2..3d8d1894e 100644 --- a/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/msg__mdt__out_8hpp_source.html @@ -310,7 +310,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespaceboost_1_1system.html b/doc/ipc_doc/generated/html_full/namespaceboost_1_1system.html index dd213889e..fff27e8a8 100644 --- a/doc/ipc_doc/generated/html_full/namespaceboost_1_1system.html +++ b/doc/ipc_doc/generated/html_full/namespaceboost_1_1system.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespacecapnp.html b/doc/ipc_doc/generated/html_full/namespacecapnp.html index baeb0d7c8..3e7d5b094 100644 --- a/doc/ipc_doc/generated/html_full/namespacecapnp.html +++ b/doc/ipc_doc/generated/html_full/namespacecapnp.html @@ -128,7 +128,7 @@

                                                                                                                                              Rationale for existence

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc.html b/doc/ipc_doc/generated/html_full/namespaceipc.html index e581b2ce4..c0b8dd33f 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc.html @@ -342,7 +342,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1bipc.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1bipc.html index 47b857e7b..72b48f683 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1bipc.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1bipc.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1fs.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1fs.html index 52840c3e3..1d8f6c42b 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1fs.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1fs.html @@ -80,7 +80,7 @@

                                                                                                                                              Rationale for aliasing to boost::filesystem instead of st diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session.html index b6b04f4c8..5a4a2904a 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session.html @@ -1305,7 +1305,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1error.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1error.html index 23b28ec0d..3eb23bb8a 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1error.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1error.html @@ -349,7 +349,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm.html index d21a7dd63..581fba2fa 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm.html @@ -213,7 +213,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend.html index 0bbb58ab7..5c9d326cd 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html index dcce40e5d..a4f028b2f 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html @@ -473,7 +473,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html index 971636afc..8753642a9 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html @@ -312,7 +312,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1classic.html index 9763f9443..f36385749 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1shm_1_1classic.html @@ -465,7 +465,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1sync__io.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1sync__io.html index ad01e96af..073dfd42a 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1session_1_1sync__io.html @@ -240,7 +240,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm.html index fe5e5b255..3267ff5a4 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm.html @@ -170,7 +170,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic.html index 4a235faa9..bc51ad0a2 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic.html @@ -219,7 +219,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic_1_1error.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic_1_1error.html index 2ea5e48a7..dbd5d4e42 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic_1_1error.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1classic_1_1error.html @@ -303,7 +303,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1stl.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1stl.html index b04e3ff55..114a59a90 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1stl.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1shm_1_1stl.html @@ -262,7 +262,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport.html index 21fb1b404..1c3fd54a5 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport.html @@ -1033,7 +1033,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket.html index a474062fd..0dd1d06cb 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket.html @@ -515,7 +515,7 @@

                                                                                                                                              Rationale

                                                                                                                                              References ipc::util::blob_data(), ipc::util::Native_handle::null(), and on_wait_writable_or_error().

                                                                                                                                              -

                                                                                                                                              Referenced by ipc::transport::sync_io::Native_socket_stream::Impl::snd_async_write_q_head_payload().

                                                                                                                                              +

                                                                                                                                              Referenced by ipc::transport::sync_io::Native_socket_stream::Impl::snd_async_write_q_head_payload().

                                                                                                                                              Here is the call graph for this function:
                                                                                                                                              @@ -1064,7 +1064,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html index bf24deb59..7d2e69dfb 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html @@ -79,7 +79,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1error.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1error.html index 2efa0779f..46781614c 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1error.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1error.html @@ -386,7 +386,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc.html index 06b08f1f1..4935055b0 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc.html @@ -554,7 +554,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1error.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1error.html index 09d882772..225395ebc 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1error.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1error.html @@ -341,7 +341,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm.html index b0ba7524a..a6d8205f1 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm.html @@ -366,7 +366,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html index d78cfa2c0..fb9e5b911 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html index 7a8705078..270923ebd 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html @@ -155,7 +155,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html index 396c40a3f..a9787d293 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html @@ -155,7 +155,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1sync__io.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1sync__io.html index 03ef86a65..545a92d39 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1struc_1_1sync__io.html @@ -138,7 +138,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1sync__io.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1sync__io.html index 496fe4a70..647c34600 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1transport_1_1sync__io.html @@ -403,7 +403,7 @@

                                                                                                                                              Returns
                                                                                                                                              os.
                                                                                                                                              -

                                                                                                                                              Definition at line 1254 of file blob_stream_mq_rcv_impl.hpp.

                                                                                                                                              +

                                                                                                                                              Definition at line 1264 of file blob_stream_mq_rcv_impl.hpp.

                                                                                                                                              @@ -488,7 +488,7 @@

                                                                                                                                              Returns
                                                                                                                                              os.
                                                                                                                                              -

                                                                                                                                              Definition at line 1702 of file blob_stream_mq_snd_impl.hpp.

                                                                                                                                              +

                                                                                                                                              Definition at line 1703 of file blob_stream_mq_snd_impl.hpp.

                                                                                                                                              @@ -617,7 +617,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1util.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1util.html index d0a80d3e4..c579dfbb8 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1util.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1util.html @@ -2251,7 +2251,7 @@

                                                                                                                                              Definition at line 96 of file util.cpp.

                                                                                                                                              -

                                                                                                                                              Referenced by ipc::session::sync_io::Session_server_adapter< Session_server >::accept_read(), ipc::transport::Posix_mq_handle::allow_impl(), ipc::transport::sync_io::Native_socket_stream_acceptor::async_accept(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::async_write_q_head_payload(), ipc::util::sync_io::Timer_event_emitter::consume_timer_firing_signal(), ipc::session::sync_io::Session_adapter< Session >::on_ev_channel_open(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), and ipc::session::sync_io::Session_adapter< Session >::start_ops().

                                                                                                                                              +

                                                                                                                                              Referenced by ipc::session::sync_io::Session_server_adapter< Session_server >::accept_read(), ipc::transport::Posix_mq_handle::allow_impl(), ipc::transport::sync_io::Native_socket_stream_acceptor::async_accept(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::async_write_q_head_payload(), ipc::util::sync_io::Timer_event_emitter::consume_timer_firing_signal(), ipc::session::sync_io::Session_adapter< Session >::on_ev_channel_open(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), and ipc::session::sync_io::Session_adapter< Session >::start_ops().

                                                                                                                                              Here is the caller graph for this function:
                                                                                                                                              @@ -2299,7 +2299,7 @@

                                                                                                                                              Definition at line 67 of file util.cpp.

                                                                                                                                              -

                                                                                                                                              Referenced by ipc::session::sync_io::Session_server_adapter< Session_server >::accept_write(), ipc::transport::sync_io::Native_socket_stream_acceptor::async_accept(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::async_write_q_head_payload(), ipc::transport::Posix_mq_handle::interrupt_impl(), ipc::session::sync_io::Session_adapter< Session >::on_channel_func_sio(), ipc::session::sync_io::Session_adapter< Session >::on_err_func_sio(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), and ipc::util::sync_io::Timer_event_emitter::timer_async_wait().

                                                                                                                                              +

                                                                                                                                              Referenced by ipc::session::sync_io::Session_server_adapter< Session_server >::accept_write(), ipc::transport::sync_io::Native_socket_stream_acceptor::async_accept(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::async_write_q_head_payload(), ipc::transport::Posix_mq_handle::interrupt_impl(), ipc::session::sync_io::Session_adapter< Session >::on_channel_func_sio(), ipc::session::sync_io::Session_adapter< Session >::on_err_func_sio(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::read_msg(), and ipc::util::sync_io::Timer_event_emitter::timer_async_wait().

                                                                                                                                              Here is the caller graph for this function:
                                                                                                                                              @@ -2907,7 +2907,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespaceipc_1_1util_1_1sync__io.html b/doc/ipc_doc/generated/html_full/namespaceipc_1_1util_1_1sync__io.html index cb6ded80f..10f86af4b 100644 --- a/doc/ipc_doc/generated/html_full/namespaceipc_1_1util_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_full/namespaceipc_1_1util_1_1sync__io.html @@ -416,7 +416,9 @@

                                                                                                                                              Use in -
                                                                                                                                              Warning
                                                                                                                                              Do not forget to deregister the event before (*on_active_ev_func)(). Failure to do so can easily result in processor pegging at best; or undefined behavior/assertion tripping. Worse still, if it's mere processor pegging, you might not notice it happening. E.g., if Native_socket_stream::send*() encounters would-block internally, it will register interest in writability of an internal handle; suppose when you report writability it is able to push-through any queued internal payload. Now it no longer needs writability; if informed of writability anyway, it will at best do nothing – leading to an infinite loop of user reporting writability and Native_socket_stream ignoring it. Or, if that is how Native_socket_stream is written, it will detect that a write event is being reported despite it not asking for this and log WARNING or even FATAL/abort program. With epoll_*(), EPOLLONESHOT and/or EPOLLET may be of aid, but be very careful.
                                                                                                                                              +
                                                                                                                                              Warning
                                                                                                                                              Do not forget to deregister the event before (*on_active_ev_func)(). Failure to do so can easily result in processor pegging at best; or undefined behavior/assertion tripping. Worse still, if it's mere processor pegging, you might not notice it happening. E.g., if Native_socket_stream::send*() encounters would-block internally, it will register interest in writability of an internal handle; suppose when you report writability it is able to push-through any queued internal payload. Now it no longer needs writability; if informed of writability anyway, it will at best do nothing – leading to an infinite loop of user reporting writability and Native_socket_stream ignoring it. Or, if that is how Native_socket_stream is written, it will detect that a write event is being reported despite it not asking for this and log WARNING or even FATAL/abort program. With epoll_*(), EPOLLONESHOT and/or EPOLLET may be of aid, but be very careful.
                                                                                                                                              +
                                                                                                                                              +With this mechanism we are exposing native handles/FDs on which work is potentially performed by Flow-IPC internals. You may perform operations only as described here, namely read-only "watching" of events; do not transmit anything or close such handles under any circumstances. In addition such a native handle is guaranteed to be valid until the sync_io-pattern object exists, but once the destructor begins you must never touch it again. Corollary: See warning below in epoll-focused section below.

                                                                                                                                              Integrating with reactor-pattern poll() and similar

                                                                                                                                              Suppose your application is using POSIX poll(). Typically a data structure will be maintained mirroring the fds[].events (events of interest) sub-argument to poll(); for example an unordered_map<> from FD (Native_handle::m_native_handle) to an enum { S_NONE, S_RD, S_WR, S_RD_WR }; or simply the fds[] array itself. (In the latter case lookup by FD may not be constant-time. However fds[].events does not need to be built from a mirroring structure ahead of each poll().)

                                                                                                                                              When Event_wait_func F(hndl, snd_else_rcv, on_ev_func) is invoked, you will register the event:

                                                                                                                                                @@ -443,7 +445,8 @@

                                                                                                                                                Integrating with reactor-pattern poll() and similar

                                                                                                                                                You might notice hndl is a pointer to Asio_waitable_native_handle, but you simply get raw_hndl out of it and forget about the rest of *hndl. Why not just provide raw_hndl to you? Answer: It is useful when not integrating with a reactor-pattern event loop a-la poll() or similar but rather when integrating with a boost.asio event loop. See "Integrating with boost.asio" below.

                                                                                                                                                What about epoll_*()?

                                                                                                                                                In Linux epoll_*() is considered superior (its man page at least says that, when used in non-EPOLLET mode, it is a "faster" poll()). We leave the exercise of how to apply the above suggestions (for poll()) to epoll_*() to the reader. Briefly: Essentially epoll_ctl() lets the kernel track a long-running fds[].events sub-array, with add/remove/modify operations specified by the user as syscalls. However, it's not possible to simply say "I am interested in FD X, event writable"; the events-of-interest per FD are still specified as an ORing of EPOLLIN and/or EPOLLOUT in one per-FD entry, whereas Event_wait_func is finer-grained than that. It is not possible to iterate through the kernel-stored events-of-interest set or obtain the existing events bit-mask so as to then |= or &= it. Therefore a mirroring data structure (such as the aforementioned unordered_map<> from FD to rd/wr/rd-wr) may be necessary in practice. In my (ygoldfel) experience using such a mirroring thing is typical in any case.

                                                                                                                                                -

                                                                                                                                                One tip: EPOLLONESHOT may be quite useful: It means you can limit your code to just doing epoll_ctl(...ADD) without requiring the counterpart epoll_ctl(...DEL) once the event does fire. (EPOLLET may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing we haven't investigated this sufficiently to make a statement.)

                                                                                                                                                +
                                                                                                                                                Warning
                                                                                                                                                When a sync_io-pattern-API object (e.g., transport::sync_io::Native_socket_stream or transport::struc::sync_io::Channel or session::sync_io::Server_session_adapter) is about to be destroyed (by you), it is very possible you have 1+ outstanding async-waits on 1+ native handles (FDs). You must deregister any earlier epoll_ctl(...ADD)s via epoll_ctl(...DEL), and you must do so before destroying the Flow-IPC object. Failure to do so can lead to unexpected chaos (such as explained here). Conversely doing so but after Flow-IPC object destructor has begun executing breaks the earlier-mentioned rule wherein a handle must not be touched at that point (and is likely invalid or refers to something else by then).
                                                                                                                                                +

                                                                                                                                                One tip: EPOLLONESHOT may be quite useful: It means you can limit your code to just doing epoll_ctl(...ADD) without requiring the counterpart epoll_ctl(...DEL) once the event does fire. (EPOLLET may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing we haven't investigated this sufficiently to make a statement.)

                                                                                                                                                However EPOLLONESHOT pertains to the entire descriptor, not one specific waited-on event (read or write). Therefore this optimization is helpful only if .events is being set to EPOLLIN or EPOLLOUT – not EPOLLIN | EPOLLOUT. Be careful. That said, it should be possible to use dup() to clone the descriptor in question; then use the original for (e.g.) EPOLLIN exclusively and the clone for EPOLLOUT exclusively resulting in a clean solution.

                                                                                                                                                Integrating with boost.asio

                                                                                                                                                Suppose your application is using boost.asio (possibly with flow.async to manage threads), with a flow::util::Task_engine::run() comprising the event loop, in proactor pattern fashion. (We would recommend just that, preferring it to an old-school reactor-pattern via [e]poll*() directly.) Your loop is asynchronously expressed, but you can still use the sync_io pattern to graft Flow-IPC operations into it, so that they are invoked synchronously, when you want, in the exact thread you want. In fact, doing so is significantly simpler than integrating with a reactor-style [e]poll*(). That is because, conceptually, each Event_wait_func invocation is essentially expressing the following boost.asio operation:

                                                                                                                                                @@ -483,7 +486,7 @@

                                                                                                                                                Integrating with boost.asio

                                                                                                                                                Implements both Native_handle_sender and Native_handle_receiver concepts by using a stream-oriented U...

                                                                                                                                              Note
                                                                                                                                              As explained in "Integrating with reactor-pattern..." above, hndl is a boost.asio I/O object, as opposed to just a Native_handle or even Native_handle::handle_t, specifically for the boost.asio integration use case. If not integrating with boost.asio, start_*ops() is to be used without preceding it by replace_event_wait_handles(), and hndl->native_handle() is the only meaningful part of *hndl, with .async_wait() being meaningless and unused. Conversely, if integrating with boost.asio, hndl->native_handle() itself should not be required in your code, while .async_wait() is the only meaningful aspect of *hndl.
                                                                                                                                              -

                                                                                                                                              Definition at line 800 of file sync_io_fwd.hpp.

                                                                                                                                              +

                                                                                                                                              Definition at line 817 of file sync_io_fwd.hpp.

                                                                                                                                              @@ -554,7 +557,7 @@

                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespacemembers.html b/doc/ipc_doc/generated/html_full/namespacemembers.html index 1f4bdf3df..1a0814bb4 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers.html @@ -76,7 +76,7 @@

                                                                                                                                              - a -

                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_b.html b/doc/ipc_doc/generated/html_full/namespacemembers_b.html index e36101cc4..c6faeb446 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_b.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_b.html @@ -81,7 +81,7 @@

                                                                                                                                                - b -

                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_c.html b/doc/ipc_doc/generated/html_full/namespacemembers_c.html index 9e26639b8..5d837e035 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_c.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_c.html @@ -79,7 +79,7 @@

                                                                                                                                                  - c -

                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_d.html b/doc/ipc_doc/generated/html_full/namespacemembers_d.html index 633fe27ef..f8ae0cef2 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_d.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_d.html @@ -71,7 +71,7 @@

                                                                                                                                                    - d -

                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_e.html b/doc/ipc_doc/generated/html_full/namespacemembers_e.html index 059bc3dc4..cf329482e 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_e.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_e.html @@ -76,7 +76,7 @@

                                                                                                                                                      - e -

                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_enum.html b/doc/ipc_doc/generated/html_full/namespacemembers_enum.html index 5611cb0fc..3770d9f5e 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_enum.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_enum.html @@ -71,7 +71,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_f.html b/doc/ipc_doc/generated/html_full/namespacemembers_f.html index c46b2f714..6fd991f77 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_f.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_f.html @@ -75,7 +75,7 @@

                                                                                                                                                        - f -

                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_func.html b/doc/ipc_doc/generated/html_full/namespacemembers_func.html index a96481a40..901ebd6d6 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_func.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_func.html @@ -156,7 +156,7 @@

                                                                                                                                                          - s -

                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_g.html b/doc/ipc_doc/generated/html_full/namespacemembers_g.html index 5c115d24b..de8ff2f67 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_g.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_g.html @@ -71,7 +71,7 @@

                                                                                                                                                            - g -

                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_h.html b/doc/ipc_doc/generated/html_full/namespacemembers_h.html index 9be3d8619..e685059b9 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_h.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_h.html @@ -71,7 +71,7 @@

                                                                                                                                                              - h -

                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_i.html b/doc/ipc_doc/generated/html_full/namespacemembers_i.html index dc8869856..6217ac844 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_i.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_i.html @@ -71,7 +71,7 @@

                                                                                                                                                                - i -

                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_l.html b/doc/ipc_doc/generated/html_full/namespacemembers_l.html index 377fd1013..3c01173e4 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_l.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_l.html @@ -71,7 +71,7 @@

                                                                                                                                                                  - l -

                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_m.html b/doc/ipc_doc/generated/html_full/namespacemembers_m.html index c5729ab17..11064b5aa 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_m.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_m.html @@ -72,7 +72,7 @@

                                                                                                                                                                    - m -

                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_n.html b/doc/ipc_doc/generated/html_full/namespacemembers_n.html index e31df5484..a3cee72d5 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_n.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_n.html @@ -75,7 +75,7 @@

                                                                                                                                                                      - n -

                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_o.html b/doc/ipc_doc/generated/html_full/namespacemembers_o.html index 027d1ad27..35c6019a7 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_o.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_o.html @@ -84,7 +84,7 @@

                                                                                                                                                                        - o -

                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_p.html b/doc/ipc_doc/generated/html_full/namespacemembers_p.html index 2e4feff1a..6b7165b74 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_p.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_p.html @@ -87,7 +87,7 @@

                                                                                                                                                                          - p -

                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_r.html b/doc/ipc_doc/generated/html_full/namespacemembers_r.html index 1e445de9b..0d7fe1b2d 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_r.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_r.html @@ -75,7 +75,7 @@

                                                                                                                                                                            - r -

                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_s.html b/doc/ipc_doc/generated/html_full/namespacemembers_s.html index a47ef2a8c..8266e07b5 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_s.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_s.html @@ -82,7 +82,7 @@

                                                                                                                                                                              - s -

                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_t.html b/doc/ipc_doc/generated/html_full/namespacemembers_t.html index c083ec225..566b19dcd 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_t.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_t.html @@ -72,7 +72,7 @@

                                                                                                                                                                                - t -

                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_type.html b/doc/ipc_doc/generated/html_full/namespacemembers_type.html index 2fb533aaa..a8cf633cd 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_type.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_type.html @@ -169,7 +169,7 @@

                                                                                                                                                                                  - u -

                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_u.html b/doc/ipc_doc/generated/html_full/namespacemembers_u.html index 483144942..49efb8acb 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_u.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_u.html @@ -71,7 +71,7 @@

                                                                                                                                                                                    - u -

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/namespacemembers_vars.html b/doc/ipc_doc/generated/html_full/namespacemembers_vars.html index bde931734..3a16daab1 100644 --- a/doc/ipc_doc/generated/html_full/namespacemembers_vars.html +++ b/doc/ipc_doc/generated/html_full/namespacemembers_vars.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/namespaces.html b/doc/ipc_doc/generated/html_full/namespaces.html index 3fef7c00a..47e615d24 100644 --- a/doc/ipc_doc/generated/html_full/namespaces.html +++ b/doc/ipc_doc/generated/html_full/namespaces.html @@ -236,7 +236,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle_8cpp.html b/doc/ipc_doc/generated/html_full/native__handle_8cpp.html index c53628d4a..54c2c0a0d 100644 --- a/doc/ipc_doc/generated/html_full/native__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_full/native__handle_8cpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle_8cpp_source.html b/doc/ipc_doc/generated/html_full/native__handle_8cpp_source.html index 22f66ab79..837245e5b 100644 --- a/doc/ipc_doc/generated/html_full/native__handle_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__handle_8cpp_source.html @@ -195,7 +195,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle_8hpp.html b/doc/ipc_doc/generated/html_full/native__handle_8hpp.html index 91432ae65..c767ace79 100644 --- a/doc/ipc_doc/generated/html_full/native__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_full/native__handle_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle_8hpp_source.html b/doc/ipc_doc/generated/html_full/native__handle_8hpp_source.html index 230425ba9..1fb49ce0e 100644 --- a/doc/ipc_doc/generated/html_full/native__handle_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__handle_8hpp_source.html @@ -297,7 +297,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp.html b/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp.html index fb8742527..b8898ab9e 100644 --- a/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp_source.html b/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp_source.html index 8e01be758..37b250db4 100644 --- a/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__handle__transport_8hpp_source.html @@ -949,7 +949,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp.html index 99bd68be5..e8218eaec 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp_source.html index b0ac3d9e2..1c14b4325 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream_8cpp_source.html @@ -283,7 +283,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp.html index 7f0e3ab2c..5ed5f61da 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp_source.html index 612a4e93b..4cfa8e0a1 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream_8hpp_source.html @@ -988,7 +988,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp.html index c177c778d..3b127b1cd 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp_source.html index 2c5ae34f9..20e855bcc 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8cpp_source.html @@ -587,7 +587,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp.html index c94c7508b..5a55e2538 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp_source.html index 76e651a59..780f75e7c 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__acceptor_8hpp_source.html @@ -510,7 +510,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp.html index 6b6a8fa8f..f0db4848b 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp_source.html index ecfe39b76..e75ba40a6 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__rcv_8cpp_source.html @@ -823,60 +823,64 @@
                                                                                                                                                                                      751 }
                                                                                                                                                                                      752 else if (*err_code)
                                                                                                                                                                                      753 {
                                                                                                                                                                                      -
                                                                                                                                                                                      754 // True-blue system error. Kill off *m_peer_socket: might as well give it back to the system (it's a resource).
                                                                                                                                                                                      -
                                                                                                                                                                                      755
                                                                                                                                                                                      -
                                                                                                                                                                                      756 // Closes peer socket to the (hosed anyway) connection; including ::close(m_peer_socket->native_handle()).
                                                                                                                                                                                      -
                                                                                                                                                                                      757 m_peer_socket.reset();
                                                                                                                                                                                      +
                                                                                                                                                                                      754 /* True-blue system error. Kill off *m_peer_socket (connection hosed). We could simply nullify it, which would
                                                                                                                                                                                      +
                                                                                                                                                                                      755 * give it back to the system (it's a resource), but see m_peer_socket_hosed doc header for explanation as
                                                                                                                                                                                      +
                                                                                                                                                                                      756 * to why we cannot, and why instead we transfer it to "death row" until dtor executes, at which
                                                                                                                                                                                      +
                                                                                                                                                                                      757 * point ::close(m_peer_socket_hosed->native_handle()) will actually happen. */
                                                                                                                                                                                      758
                                                                                                                                                                                      -
                                                                                                                                                                                      759 // *err_code is truthy; n_rcvd_or_zero == 0; cool.
                                                                                                                                                                                      -
                                                                                                                                                                                      760 }
                                                                                                                                                                                      -
                                                                                                                                                                                      761 // else if (!*err_code) { *err_code is falsy; n_rcvd_or_zero >= 1; cool. }
                                                                                                                                                                                      -
                                                                                                                                                                                      762 } // if (m_peer_socket)
                                                                                                                                                                                      -
                                                                                                                                                                                      763 else // if (!m_peer_socket)
                                                                                                                                                                                      -
                                                                                                                                                                                      764 {
                                                                                                                                                                                      - -
                                                                                                                                                                                      766 }
                                                                                                                                                                                      -
                                                                                                                                                                                      767 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      -
                                                                                                                                                                                      768
                                                                                                                                                                                      -
                                                                                                                                                                                      769 assert((!*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      770 || (n_rcvd_or_zero == 0)); // && *err_code
                                                                                                                                                                                      -
                                                                                                                                                                                      771
                                                                                                                                                                                      -
                                                                                                                                                                                      772 if (*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      773 {
                                                                                                                                                                                      -
                                                                                                                                                                                      774 FLOW_LOG_TRACE("Received nothing due to error [" << *err_code << "] [" << err_code->message() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      775 }
                                                                                                                                                                                      -
                                                                                                                                                                                      776 else
                                                                                                                                                                                      +
                                                                                                                                                                                      759 assert((!m_peer_socket_hosed) && "m_peer_socket_hosed must start as null and only become non-null once. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      760 m_peer_socket_hosed = std::move(m_peer_socket);
                                                                                                                                                                                      +
                                                                                                                                                                                      761 assert((!m_peer_socket) && "Shocking unique_ptr misbehavior!");
                                                                                                                                                                                      +
                                                                                                                                                                                      762
                                                                                                                                                                                      +
                                                                                                                                                                                      763 // *err_code is truthy; n_rcvd_or_zero == 0; cool.
                                                                                                                                                                                      +
                                                                                                                                                                                      764 }
                                                                                                                                                                                      +
                                                                                                                                                                                      765 // else if (!*err_code) { *err_code is falsy; n_rcvd_or_zero >= 1; cool. }
                                                                                                                                                                                      +
                                                                                                                                                                                      766 } // if (m_peer_socket)
                                                                                                                                                                                      +
                                                                                                                                                                                      767 else // if (!m_peer_socket)
                                                                                                                                                                                      +
                                                                                                                                                                                      768 {
                                                                                                                                                                                      + +
                                                                                                                                                                                      770 }
                                                                                                                                                                                      +
                                                                                                                                                                                      771 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      +
                                                                                                                                                                                      772
                                                                                                                                                                                      +
                                                                                                                                                                                      773 assert((!*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      774 || (n_rcvd_or_zero == 0)); // && *err_code
                                                                                                                                                                                      +
                                                                                                                                                                                      775
                                                                                                                                                                                      +
                                                                                                                                                                                      776 if (*err_code)
                                                                                                                                                                                      777 {
                                                                                                                                                                                      -
                                                                                                                                                                                      778 FLOW_LOG_TRACE("Receive: no error. Was able to receive [" << n_rcvd_or_zero << "] of "
                                                                                                                                                                                      -
                                                                                                                                                                                      779 "[" << target_payload_blob.size() << "] bytes.");
                                                                                                                                                                                      -
                                                                                                                                                                                      780 if (target_payload_hndl_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      781 {
                                                                                                                                                                                      -
                                                                                                                                                                                      782 if (n_rcvd_or_zero != 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      783 {
                                                                                                                                                                                      -
                                                                                                                                                                                      784 FLOW_LOG_TRACE("Interest in native handle; was able to establish its presence or absence; "
                                                                                                                                                                                      -
                                                                                                                                                                                      785 "present? = [" << (!target_payload_hndl_or_null->null()) << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      786 }
                                                                                                                                                                                      -
                                                                                                                                                                                      787 } // if (target_payload_hndl_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      788 else
                                                                                                                                                                                      -
                                                                                                                                                                                      789 {
                                                                                                                                                                                      -
                                                                                                                                                                                      790 FLOW_LOG_TRACE("No interest in native handle.");
                                                                                                                                                                                      -
                                                                                                                                                                                      791 }
                                                                                                                                                                                      -
                                                                                                                                                                                      792 } // else if (!*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      793
                                                                                                                                                                                      -
                                                                                                                                                                                      794 return n_rcvd_or_zero;
                                                                                                                                                                                      -
                                                                                                                                                                                      795} // Native_socket_stream::Impl::rcv_nb_read_low_lvl_payload()
                                                                                                                                                                                      -
                                                                                                                                                                                      796
                                                                                                                                                                                      - -
                                                                                                                                                                                      798{
                                                                                                                                                                                      -
                                                                                                                                                                                      799 return state_peer("receive_meta_blob_max_size()") ? S_MAX_META_BLOB_LENGTH : 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      800}
                                                                                                                                                                                      -
                                                                                                                                                                                      801
                                                                                                                                                                                      - -
                                                                                                                                                                                      803{
                                                                                                                                                                                      - -
                                                                                                                                                                                      805}
                                                                                                                                                                                      -
                                                                                                                                                                                      806
                                                                                                                                                                                      -
                                                                                                                                                                                      807} // namespace ipc::transport::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      778 FLOW_LOG_TRACE("Received nothing due to error [" << *err_code << "] [" << err_code->message() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      779 }
                                                                                                                                                                                      +
                                                                                                                                                                                      780 else
                                                                                                                                                                                      +
                                                                                                                                                                                      781 {
                                                                                                                                                                                      +
                                                                                                                                                                                      782 FLOW_LOG_TRACE("Receive: no error. Was able to receive [" << n_rcvd_or_zero << "] of "
                                                                                                                                                                                      +
                                                                                                                                                                                      783 "[" << target_payload_blob.size() << "] bytes.");
                                                                                                                                                                                      +
                                                                                                                                                                                      784 if (target_payload_hndl_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      785 {
                                                                                                                                                                                      +
                                                                                                                                                                                      786 if (n_rcvd_or_zero != 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      787 {
                                                                                                                                                                                      +
                                                                                                                                                                                      788 FLOW_LOG_TRACE("Interest in native handle; was able to establish its presence or absence; "
                                                                                                                                                                                      +
                                                                                                                                                                                      789 "present? = [" << (!target_payload_hndl_or_null->null()) << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      790 }
                                                                                                                                                                                      +
                                                                                                                                                                                      791 } // if (target_payload_hndl_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      792 else
                                                                                                                                                                                      +
                                                                                                                                                                                      793 {
                                                                                                                                                                                      +
                                                                                                                                                                                      794 FLOW_LOG_TRACE("No interest in native handle.");
                                                                                                                                                                                      +
                                                                                                                                                                                      795 }
                                                                                                                                                                                      +
                                                                                                                                                                                      796 } // else if (!*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      797
                                                                                                                                                                                      +
                                                                                                                                                                                      798 return n_rcvd_or_zero;
                                                                                                                                                                                      +
                                                                                                                                                                                      799} // Native_socket_stream::Impl::rcv_nb_read_low_lvl_payload()
                                                                                                                                                                                      +
                                                                                                                                                                                      800
                                                                                                                                                                                      + +
                                                                                                                                                                                      802{
                                                                                                                                                                                      +
                                                                                                                                                                                      803 return state_peer("receive_meta_blob_max_size()") ? S_MAX_META_BLOB_LENGTH : 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      804}
                                                                                                                                                                                      +
                                                                                                                                                                                      805
                                                                                                                                                                                      + +
                                                                                                                                                                                      807{
                                                                                                                                                                                      + +
                                                                                                                                                                                      809}
                                                                                                                                                                                      +
                                                                                                                                                                                      810
                                                                                                                                                                                      +
                                                                                                                                                                                      811} // namespace ipc::transport::sync_io
                                                                                                                                                                                      int16_t proto_ver_t
                                                                                                                                                                                      Type sufficient to store a protocol version; positive values identify newer versions of a protocol; w...
                                                                                                                                                                                      static constexpr proto_ver_t S_VER_UNKNOWN
                                                                                                                                                                                      A proto_ver_t value, namely a negative one, which is a reserved value indicating "unknown version"; i...
                                                                                                                                                                                      void rcv_read_blob(Rcv_msg_state msg_state, const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      A somewhat-general utility that continues read chain with the aim to complete the present in-message,...
                                                                                                                                                                                      @@ -891,11 +895,11 @@
                                                                                                                                                                                      bool async_receive_native_handle(Native_handle *target_hndl, const util::Blob_mutable &target_meta_blob, Error_code *sync_err_code, size_t *sync_sz, flow::async::Task_asio_err_sz &&on_done_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void rcv_read_msg(Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Begins read chain (completing it as synchronously as possible, async-completing the rest) for the nex...
                                                                                                                                                                                      bool idle_timer_run(util::Fine_duration timeout)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void rcv_not_idle()
                                                                                                                                                                                      No-ops if idle_timer_run() is not engaged; otherwise reacts to non-idleness of the in-pipe by resched...
                                                                                                                                                                                      bool async_receive_native_handle_impl(Native_handle *target_hndl_or_null, const util::Blob_mutable &target_meta_blob, Error_code *sync_err_code, size_t *sync_sz, flow::async::Task_asio_err_sz &&on_done_func)
                                                                                                                                                                                      Body of both async_receive_native_handle() and async_receive_blob().
                                                                                                                                                                                      void rcv_on_ev_peer_socket_readable_or_error(Rcv_msg_state msg_state, size_t n_left)
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by vari...
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t receive_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t receive_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      static const size_t & S_MAX_META_BLOB_LENGTH
                                                                                                                                                                                      The maximum length of a blob that can be sent by this protocol.
                                                                                                                                                                                      static constexpr bool S_BLOB_UNDERFLOW_ALLOWED
                                                                                                                                                                                      Implements concept API; namely it is true.
                                                                                                                                                                                      flow::log::Logger * get_logger() const
                                                                                                                                                                                      Returns logger (possibly null).
                                                                                                                                                                                      @@ -910,7 +914,7 @@
                                                                                                                                                                                      @ S_MESSAGE_SIZE_EXCEEDS_USER_STORAGE
                                                                                                                                                                                      User protocol-code mismatch: local user-provided storage cannot fit entire message received from oppo...
                                                                                                                                                                                      @ S_BLOB_RECEIVER_GOT_NON_BLOB
                                                                                                                                                                                      User protocol-code mismatch: local user expected blob only and no native handle; received at least th...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      @@ -921,7 +925,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp.html b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp.html index 06fc4a8a0..c0ec51c71 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp_source.html b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp_source.html index bc077ee9d..2192ffc67 100644 --- a/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/native__socket__stream__impl__snd_8cpp_source.html @@ -881,232 +881,236 @@
                                                                                                                                                                                      809 }
                                                                                                                                                                                      810 else if (*err_code)
                                                                                                                                                                                      811 {
                                                                                                                                                                                      -
                                                                                                                                                                                      812 // True-blue system error. Kill off *m_peer_socket: might as well give it back to the system (it's a resource).
                                                                                                                                                                                      -
                                                                                                                                                                                      813
                                                                                                                                                                                      -
                                                                                                                                                                                      814 // Closes peer socket to the (hosed anyway) connection; including ::close(m_peer_socket->native_handle()).
                                                                                                                                                                                      -
                                                                                                                                                                                      815 m_peer_socket.reset();
                                                                                                                                                                                      +
                                                                                                                                                                                      812 /* True-blue system error. Kill off *m_peer_socket (connection hosed). We could simply nullify it, which would
                                                                                                                                                                                      +
                                                                                                                                                                                      813 * give it back to the system (it's a resource), but see m_peer_socket_hosed doc header for explanation as
                                                                                                                                                                                      +
                                                                                                                                                                                      814 * to why we cannot, and why instead we transfer it to "death row" until dtor executes, at which
                                                                                                                                                                                      +
                                                                                                                                                                                      815 * point ::close(m_peer_socket_hosed->native_handle()) will actually happen. */
                                                                                                                                                                                      816
                                                                                                                                                                                      -
                                                                                                                                                                                      817 // *err_code is truthy; n_sent_or_zero == 0; cool.
                                                                                                                                                                                      -
                                                                                                                                                                                      818 }
                                                                                                                                                                                      -
                                                                                                                                                                                      819 // else if (!*err_code) { *err_code is falsy; n_sent_or_zero >= 1; cool. }
                                                                                                                                                                                      -
                                                                                                                                                                                      820 } // if (m_peer_socket)
                                                                                                                                                                                      -
                                                                                                                                                                                      821 else // if (!m_peer_socket)
                                                                                                                                                                                      -
                                                                                                                                                                                      822 {
                                                                                                                                                                                      - -
                                                                                                                                                                                      824 }
                                                                                                                                                                                      -
                                                                                                                                                                                      825 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      -
                                                                                                                                                                                      826
                                                                                                                                                                                      -
                                                                                                                                                                                      827 assert((!*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      828 || (n_sent_or_zero == 0)); // && *err_code
                                                                                                                                                                                      -
                                                                                                                                                                                      829
                                                                                                                                                                                      -
                                                                                                                                                                                      830 if (*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      831 {
                                                                                                                                                                                      -
                                                                                                                                                                                      832 FLOW_LOG_TRACE("Sent nothing due to error [" << *err_code << "] [" << err_code->message() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      833 }
                                                                                                                                                                                      -
                                                                                                                                                                                      834 else
                                                                                                                                                                                      +
                                                                                                                                                                                      817 assert((!m_peer_socket_hosed) && "m_peer_socket_hosed must start as null and only become non-null once. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      818 m_peer_socket_hosed = std::move(m_peer_socket);
                                                                                                                                                                                      +
                                                                                                                                                                                      819 assert((!m_peer_socket) && "Shocking unique_ptr misbehavior!");
                                                                                                                                                                                      +
                                                                                                                                                                                      820
                                                                                                                                                                                      +
                                                                                                                                                                                      821 // *err_code is truthy; n_sent_or_zero == 0; cool.
                                                                                                                                                                                      +
                                                                                                                                                                                      822 }
                                                                                                                                                                                      +
                                                                                                                                                                                      823 // else if (!*err_code) { *err_code is falsy; n_sent_or_zero >= 1; cool. }
                                                                                                                                                                                      +
                                                                                                                                                                                      824 } // if (m_peer_socket)
                                                                                                                                                                                      +
                                                                                                                                                                                      825 else // if (!m_peer_socket)
                                                                                                                                                                                      +
                                                                                                                                                                                      826 {
                                                                                                                                                                                      + +
                                                                                                                                                                                      828 }
                                                                                                                                                                                      +
                                                                                                                                                                                      829 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      +
                                                                                                                                                                                      830
                                                                                                                                                                                      +
                                                                                                                                                                                      831 assert((!*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      832 || (n_sent_or_zero == 0)); // && *err_code
                                                                                                                                                                                      +
                                                                                                                                                                                      833
                                                                                                                                                                                      +
                                                                                                                                                                                      834 if (*err_code)
                                                                                                                                                                                      835 {
                                                                                                                                                                                      -
                                                                                                                                                                                      836 FLOW_LOG_TRACE("Send: no error. Was able to send [" << n_sent_or_zero << "] of [" << blob.size() << "] bytes.");
                                                                                                                                                                                      -
                                                                                                                                                                                      837 if (!hndl_or_null.null())
                                                                                                                                                                                      -
                                                                                                                                                                                      838 {
                                                                                                                                                                                      -
                                                                                                                                                                                      839 FLOW_LOG_TRACE("Able to send the native handle? = [" << (n_sent_or_zero != 0) << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      840 }
                                                                                                                                                                                      -
                                                                                                                                                                                      841 }
                                                                                                                                                                                      -
                                                                                                                                                                                      842
                                                                                                                                                                                      -
                                                                                                                                                                                      843 return n_sent_or_zero;
                                                                                                                                                                                      -
                                                                                                                                                                                      844} // Native_socket_stream::Impl::snd_nb_write_low_lvl_payload()
                                                                                                                                                                                      -
                                                                                                                                                                                      845
                                                                                                                                                                                      - -
                                                                                                                                                                                      847{
                                                                                                                                                                                      - -
                                                                                                                                                                                      849 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      850 using flow::util::Lock_guard;
                                                                                                                                                                                      -
                                                                                                                                                                                      851 using boost::asio::async_write;
                                                                                                                                                                                      -
                                                                                                                                                                                      852
                                                                                                                                                                                      -
                                                                                                                                                                                      853 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      854
                                                                                                                                                                                      -
                                                                                                                                                                                      855 assert((!m_snd_pending_payloads_q.empty()) && "Contract is stuff is queued to be async-sent. Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      856 assert((!m_snd_pending_err_code) && "Pipe must not be pre-hosed by contract.");
                                                                                                                                                                                      -
                                                                                                                                                                                      857
                                                                                                                                                                                      -
                                                                                                                                                                                      858 /* Conceptually we'd like to do m_peer_socket->async_wait(writable, F), where F() would perform
                                                                                                                                                                                      -
                                                                                                                                                                                      859 * snd_nb_write_low_lvl_payload() (nb-send over m_peer_socket). However this is the sync_io pattern, so
                                                                                                                                                                                      -
                                                                                                                                                                                      860 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      -
                                                                                                                                                                                      861 * via m_snd_ev_wait_func(), giving them m_peer_socket's FD -- m_snd_ev_wait_hndl_peer_socket -- to wait-on. */
                                                                                                                                                                                      -
                                                                                                                                                                                      862
                                                                                                                                                                                      -
                                                                                                                                                                                      863 // m_*peer_socket = (the only) shared data between our- and opposite-direction code. Must lock (see class docs).
                                                                                                                                                                                      -
                                                                                                                                                                                      864 {
                                                                                                                                                                                      -
                                                                                                                                                                                      865 Lock_guard<decltype(m_peer_socket_mutex)> peer_socket_lock(m_peer_socket_mutex);
                                                                                                                                                                                      +
                                                                                                                                                                                      836 FLOW_LOG_TRACE("Sent nothing due to error [" << *err_code << "] [" << err_code->message() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      837 }
                                                                                                                                                                                      +
                                                                                                                                                                                      838 else
                                                                                                                                                                                      +
                                                                                                                                                                                      839 {
                                                                                                                                                                                      +
                                                                                                                                                                                      840 FLOW_LOG_TRACE("Send: no error. Was able to send [" << n_sent_or_zero << "] of [" << blob.size() << "] bytes.");
                                                                                                                                                                                      +
                                                                                                                                                                                      841 if (!hndl_or_null.null())
                                                                                                                                                                                      +
                                                                                                                                                                                      842 {
                                                                                                                                                                                      +
                                                                                                                                                                                      843 FLOW_LOG_TRACE("Able to send the native handle? = [" << (n_sent_or_zero != 0) << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      844 }
                                                                                                                                                                                      +
                                                                                                                                                                                      845 }
                                                                                                                                                                                      +
                                                                                                                                                                                      846
                                                                                                                                                                                      +
                                                                                                                                                                                      847 return n_sent_or_zero;
                                                                                                                                                                                      +
                                                                                                                                                                                      848} // Native_socket_stream::Impl::snd_nb_write_low_lvl_payload()
                                                                                                                                                                                      +
                                                                                                                                                                                      849
                                                                                                                                                                                      + +
                                                                                                                                                                                      851{
                                                                                                                                                                                      + +
                                                                                                                                                                                      853 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      854 using flow::util::Lock_guard;
                                                                                                                                                                                      +
                                                                                                                                                                                      855 using boost::asio::async_write;
                                                                                                                                                                                      +
                                                                                                                                                                                      856
                                                                                                                                                                                      +
                                                                                                                                                                                      857 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      858
                                                                                                                                                                                      +
                                                                                                                                                                                      859 assert((!m_snd_pending_payloads_q.empty()) && "Contract is stuff is queued to be async-sent. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      860 assert((!m_snd_pending_err_code) && "Pipe must not be pre-hosed by contract.");
                                                                                                                                                                                      +
                                                                                                                                                                                      861
                                                                                                                                                                                      +
                                                                                                                                                                                      862 /* Conceptually we'd like to do m_peer_socket->async_wait(writable, F), where F() would perform
                                                                                                                                                                                      +
                                                                                                                                                                                      863 * snd_nb_write_low_lvl_payload() (nb-send over m_peer_socket). However this is the sync_io pattern, so
                                                                                                                                                                                      +
                                                                                                                                                                                      864 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      +
                                                                                                                                                                                      865 * via m_snd_ev_wait_func(), giving them m_peer_socket's FD -- m_snd_ev_wait_hndl_peer_socket -- to wait-on. */
                                                                                                                                                                                      866
                                                                                                                                                                                      -
                                                                                                                                                                                      867 if (m_peer_socket)
                                                                                                                                                                                      -
                                                                                                                                                                                      868 {
                                                                                                                                                                                      -
                                                                                                                                                                                      869 /* @todo Previously, when we ran our own boost.asio loop in a separate thread mandatorily (non-sync_io pattern),
                                                                                                                                                                                      -
                                                                                                                                                                                      870 * we did either boost::asio::async_write() (stubborn write, no handle to send) or
                                                                                                                                                                                      -
                                                                                                                                                                                      871 * asio_local_stream_socket::async_write_with_native_handle (same but with handle to send).
                                                                                                                                                                                      -
                                                                                                                                                                                      872 * Either one would do the async_wait()->nb-write->async_wait()->... chain for us. Now with sync_io we
                                                                                                                                                                                      -
                                                                                                                                                                                      873 * manually split it up into our version of "async"-wait->nb-write->.... However other than the
                                                                                                                                                                                      -
                                                                                                                                                                                      874 * "async-wait" mechanism itself, the logic is the same. The to-do would be to perhaps provide
                                                                                                                                                                                      -
                                                                                                                                                                                      875 * those functions in such a way as to work with the sync_io way of "async"-waiting, without getting rid
                                                                                                                                                                                      -
                                                                                                                                                                                      876 * of the publicly useful non-sync_io API (some layered design, confined to
                                                                                                                                                                                      -
                                                                                                                                                                                      877 * asio_local_stream_socket::*). The logic would not need to be repeated and maintained in two places;
                                                                                                                                                                                      -
                                                                                                                                                                                      878 * as of this writing the non-sync_io version has become for direct public use (by user) only anyway;
                                                                                                                                                                                      -
                                                                                                                                                                                      879 * two birds one stone to have both use cases use the same core logic code. */
                                                                                                                                                                                      -
                                                                                                                                                                                      880
                                                                                                                                                                                      -
                                                                                                                                                                                      881 m_snd_ev_wait_func(&m_ev_wait_hndl_peer_socket,
                                                                                                                                                                                      -
                                                                                                                                                                                      882 true, // Wait for write.
                                                                                                                                                                                      -
                                                                                                                                                                                      883 // Once writable do this:
                                                                                                                                                                                      -
                                                                                                                                                                                      884 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      885 ([this]() { snd_on_ev_peer_socket_writable_or_error(); }));
                                                                                                                                                                                      -
                                                                                                                                                                                      886 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      887 }
                                                                                                                                                                                      -
                                                                                                                                                                                      888 // else:
                                                                                                                                                                                      -
                                                                                                                                                                                      889 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      -
                                                                                                                                                                                      890
                                                                                                                                                                                      - -
                                                                                                                                                                                      892
                                                                                                                                                                                      -
                                                                                                                                                                                      893 /* Style note: I (ygoldfel) was tempted to make snd_on_ev_peer_socket_writable_or_error() a closure right in here,
                                                                                                                                                                                      -
                                                                                                                                                                                      894 * which saves boiler-plate lines, but subjectively the reading flow seemed too gnarly here. Typically I would have
                                                                                                                                                                                      -
                                                                                                                                                                                      895 * done it that other way though; in fact originally that's how I had it, but it proved too gnarly over time.
                                                                                                                                                                                      -
                                                                                                                                                                                      896 * Among other things it's nice to have the on-sent handler appear right *below* the async-op that takes it as
                                                                                                                                                                                      -
                                                                                                                                                                                      897 * an arg; *above* is dicey to read. */
                                                                                                                                                                                      -
                                                                                                                                                                                      898} // Native_socket_stream::Impl::snd_async_write_q_head_payload()
                                                                                                                                                                                      -
                                                                                                                                                                                      899
                                                                                                                                                                                      - -
                                                                                                                                                                                      901{
                                                                                                                                                                                      -
                                                                                                                                                                                      902 FLOW_LOG_TRACE("Socket stream [" << *this << "]: User-performed wait-for-writable finished (writable or error, "
                                                                                                                                                                                      -
                                                                                                                                                                                      903 "we do not know which yet). We endeavour to send->pop->send->... as much of the queue as we "
                                                                                                                                                                                      -
                                                                                                                                                                                      904 "can until would-block or total success.");
                                                                                                                                                                                      -
                                                                                                                                                                                      905
                                                                                                                                                                                      -
                                                                                                                                                                                      906 assert((!m_snd_pending_payloads_q.empty()) && "Send-queue should not be touched while async-write of head is going.");
                                                                                                                                                                                      -
                                                                                                                                                                                      907 assert((!m_snd_pending_err_code) && "Send error would only be detected by us. Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      908
                                                                                                                                                                                      -
                                                                                                                                                                                      909 // Let's do as much as we can.
                                                                                                                                                                                      -
                                                                                                                                                                                      910 bool would_block = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      911 do
                                                                                                                                                                                      -
                                                                                                                                                                                      912 {
                                                                                                                                                                                      -
                                                                                                                                                                                      913 auto& low_lvl_payload = *m_snd_pending_payloads_q.front();
                                                                                                                                                                                      -
                                                                                                                                                                                      914 auto& hndl_or_null = low_lvl_payload.m_hndl_or_null;
                                                                                                                                                                                      -
                                                                                                                                                                                      915 auto& low_lvl_blob = low_lvl_payload.m_blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      916 auto low_lvl_blob_view = low_lvl_blob.const_buffer();
                                                                                                                                                                                      -
                                                                                                                                                                                      917
                                                                                                                                                                                      -
                                                                                                                                                                                      918 FLOW_LOG_TRACE("Socket stream [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      919 "Out-queue size is [" << m_snd_pending_payloads_q.size() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      920 "want to send handle [" << hndl_or_null << "] with "
                                                                                                                                                                                      -
                                                                                                                                                                                      921 "low-level blob of size [" << low_lvl_blob_view.size() << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      922 "located @ [" << low_lvl_blob_view.data() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      923
                                                                                                                                                                                      -
                                                                                                                                                                                      924 const auto n_sent_or_zero
                                                                                                                                                                                      -
                                                                                                                                                                                      925 = snd_nb_write_low_lvl_payload(low_lvl_payload.m_hndl_or_null, low_lvl_blob_view, &m_snd_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      926 if (m_snd_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      927 {
                                                                                                                                                                                      -
                                                                                                                                                                                      928 continue; // Get out of the loop.
                                                                                                                                                                                      -
                                                                                                                                                                                      929 }
                                                                                                                                                                                      -
                                                                                                                                                                                      930 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      931
                                                                                                                                                                                      -
                                                                                                                                                                                      932 if (n_sent_or_zero == low_lvl_blob_view.size())
                                                                                                                                                                                      -
                                                                                                                                                                                      933 {
                                                                                                                                                                                      -
                                                                                                                                                                                      934 // Everything was sent nicely!
                                                                                                                                                                                      -
                                                                                                                                                                                      935 m_snd_pending_payloads_q.pop(); // This should dealloc low_lvl_payload.m_blob in particular.
                                                                                                                                                                                      -
                                                                                                                                                                                      936 }
                                                                                                                                                                                      -
                                                                                                                                                                                      937 else // if (n_sent_or_zero != low_lvl_payload.m_blob.size())
                                                                                                                                                                                      -
                                                                                                                                                                                      938 {
                                                                                                                                                                                      -
                                                                                                                                                                                      939 /* Some or all of the payload could not be sent (it would-block if we tried to send the rest now).
                                                                                                                                                                                      -
                                                                                                                                                                                      940 * This is similar to snd_sync_write_or_q_payload(), but we needn't enqueue it, as it's already enqueued;
                                                                                                                                                                                      -
                                                                                                                                                                                      941 * just "edit" it in-place as needed. */
                                                                                                                                                                                      -
                                                                                                                                                                                      942 if (n_sent_or_zero != 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      943 {
                                                                                                                                                                                      -
                                                                                                                                                                                      944 // Even if (!m_hndl_or_null.null()): 1 bytes were sent => so was the native handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      945 low_lvl_payload.m_hndl_or_null = Native_handle();
                                                                                                                                                                                      -
                                                                                                                                                                                      946 /* Slide its .begin() to the right by n_sent_or_zero (might be no-op if was not writable after all).
                                                                                                                                                                                      -
                                                                                                                                                                                      947 * Note internally it's just a size_t +=; no realloc or anything. */
                                                                                                                                                                                      -
                                                                                                                                                                                      948 low_lvl_payload.m_blob.start_past_prefix_inc(n_sent_or_zero);
                                                                                                                                                                                      -
                                                                                                                                                                                      949 }
                                                                                                                                                                                      -
                                                                                                                                                                                      950 // else if (n_sent_or_zero == 0) { Nothing was sent, so no edits needed to low_lvl_payload. }
                                                                                                                                                                                      -
                                                                                                                                                                                      951 would_block = true; // Stop; would-block if we tried more.
                                                                                                                                                                                      -
                                                                                                                                                                                      952 }
                                                                                                                                                                                      -
                                                                                                                                                                                      953 }
                                                                                                                                                                                      -
                                                                                                                                                                                      954 while ((!m_snd_pending_payloads_q.empty()) && (!would_block) && (!m_snd_pending_err_code));
                                                                                                                                                                                      -
                                                                                                                                                                                      955
                                                                                                                                                                                      -
                                                                                                                                                                                      956 // Careful! This must be done before the `if` sequence below, as it can make m_snd_pending_err_code truthy after all.
                                                                                                                                                                                      -
                                                                                                                                                                                      957 if ((!m_snd_pending_err_code) && (!m_snd_pending_payloads_q.empty()))
                                                                                                                                                                                      -
                                                                                                                                                                                      958 {
                                                                                                                                                                                      -
                                                                                                                                                                                      959 FLOW_LOG_TRACE("Out-queue has not been emptied. Must keep async-send chain going.");
                                                                                                                                                                                      -
                                                                                                                                                                                      960
                                                                                                                                                                                      -
                                                                                                                                                                                      961 // Continue the chain (this guy "asynchronously" brought us here in the first place).
                                                                                                                                                                                      -
                                                                                                                                                                                      962 snd_async_write_q_head_payload();
                                                                                                                                                                                      -
                                                                                                                                                                                      963 /* To be clear: queue can now only become empty in "async" handler, not synchronously here.
                                                                                                                                                                                      -
                                                                                                                                                                                      964 *
                                                                                                                                                                                      -
                                                                                                                                                                                      965 * Reasoning sanity check: How could m_snd_pending_err_code become truthy here yet falsy (success)
                                                                                                                                                                                      -
                                                                                                                                                                                      966 * through the do/while() loop above? Answer: The writes could work; then after the last such write,
                                                                                                                                                                                      -
                                                                                                                                                                                      967 * but before snd_async_write_q_head_payload() -- which needs an m_*peer_socket member to indicate
                                                                                                                                                                                      -
                                                                                                                                                                                      968 * connection is still healthy, to initiate the user-executed wait-for-writable -- incoming-direction processing
                                                                                                                                                                                      -
                                                                                                                                                                                      969 * could have hosed m_*peer_socket. E.g., it tried to nb-receive and exposed newly-arrived error condition. */
                                                                                                                                                                                      -
                                                                                                                                                                                      970 }
                                                                                                                                                                                      -
                                                                                                                                                                                      971 /* ^-- if ((!m_snd_pending_err_code) && (!m_snd_pending_payloads_q.empty()))
                                                                                                                                                                                      -
                                                                                                                                                                                      972 * (but m_snd_pending_err_code may have become truthy inside). */
                                                                                                                                                                                      -
                                                                                                                                                                                      973
                                                                                                                                                                                      -
                                                                                                                                                                                      974 // Lastly deal with possibly having to fire async_end_sending() completion handler.
                                                                                                                                                                                      -
                                                                                                                                                                                      975
                                                                                                                                                                                      -
                                                                                                                                                                                      976 bool invoke_on_done = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      977 if (m_snd_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      978 {
                                                                                                                                                                                      -
                                                                                                                                                                                      979 invoke_on_done = !m_snd_pending_on_last_send_done_func_or_empty.empty();
                                                                                                                                                                                      -
                                                                                                                                                                                      980 FLOW_LOG_WARNING("Socket stream [" << *this << "]: User-performed wait-for-writable reported completion; "
                                                                                                                                                                                      -
                                                                                                                                                                                      981 "wanted to nb-send any queued data and possibly initiated another wait-for-writable; "
                                                                                                                                                                                      -
                                                                                                                                                                                      982 "got error during an nb-send or when initiating wait; TRACE details above. "
                                                                                                                                                                                      -
                                                                                                                                                                                      983 "Error code details follow: "
                                                                                                                                                                                      -
                                                                                                                                                                                      984 "[" << m_snd_pending_err_code << "] [" << m_snd_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      985 "Saved error code to return in next user send attempt if any. "
                                                                                                                                                                                      -
                                                                                                                                                                                      986 "Will run graceful-sends-close completion handler? = [" << invoke_on_done << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      987
                                                                                                                                                                                      -
                                                                                                                                                                                      988 assert((!m_snd_pending_payloads_q.empty()) && "Opportunistic sanity check.");
                                                                                                                                                                                      -
                                                                                                                                                                                      989 }
                                                                                                                                                                                      -
                                                                                                                                                                                      990 else if (m_snd_pending_payloads_q.empty()) // && (!m_snd_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      991 {
                                                                                                                                                                                      -
                                                                                                                                                                                      992 FLOW_LOG_TRACE("Out-queue has been emptied.");
                                                                                                                                                                                      -
                                                                                                                                                                                      993
                                                                                                                                                                                      -
                                                                                                                                                                                      994 if (!m_snd_pending_on_last_send_done_func_or_empty.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      995 {
                                                                                                                                                                                      -
                                                                                                                                                                                      996 // INFO-log is okay, as this occurs at most once per *this.
                                                                                                                                                                                      -
                                                                                                                                                                                      997 FLOW_LOG_INFO("Socket stream [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      998 "We sent graceful-close and any preceding user messages with success. Will now inform user via "
                                                                                                                                                                                      -
                                                                                                                                                                                      999 "graceful-sends-close completion handler.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1000 invoke_on_done = true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1001 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1002 } // else if (m_snd_pending_payloads_q.empty() && (!m_snd_pending_err_code))
                                                                                                                                                                                      -
                                                                                                                                                                                      1003 // else if ((!m_snd_pending_payloads_q.empty()) && (!m_snd_pending_err_code)) { Async-wait started. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1004
                                                                                                                                                                                      -
                                                                                                                                                                                      1005 if (invoke_on_done)
                                                                                                                                                                                      -
                                                                                                                                                                                      1006 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1007 FLOW_LOG_TRACE("Socket stream [" << *this << "]: Executing end-sending completion handler now.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1008 auto on_done_func = std::move(m_snd_pending_on_last_send_done_func_or_empty);
                                                                                                                                                                                      -
                                                                                                                                                                                      1009 m_snd_pending_on_last_send_done_func_or_empty.clear(); // For cleanliness, in case move() didn't do it.
                                                                                                                                                                                      -
                                                                                                                                                                                      1010
                                                                                                                                                                                      -
                                                                                                                                                                                      1011 on_done_func(m_snd_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1012 FLOW_LOG_TRACE("Handler completed.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1013 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1014} // Native_socket_stream::Impl::snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      -
                                                                                                                                                                                      1015
                                                                                                                                                                                      - -
                                                                                                                                                                                      1017{
                                                                                                                                                                                      -
                                                                                                                                                                                      1018 return state_peer("send_meta_blob_max_size()") ? S_MAX_META_BLOB_LENGTH : 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      1019}
                                                                                                                                                                                      -
                                                                                                                                                                                      1020
                                                                                                                                                                                      - -
                                                                                                                                                                                      1022{
                                                                                                                                                                                      -
                                                                                                                                                                                      1023 return send_meta_blob_max_size();
                                                                                                                                                                                      -
                                                                                                                                                                                      1024}
                                                                                                                                                                                      -
                                                                                                                                                                                      1025
                                                                                                                                                                                      -
                                                                                                                                                                                      1026} // namespace ipc::transport::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      867 // m_*peer_socket = (the only) shared data between our- and opposite-direction code. Must lock (see class docs).
                                                                                                                                                                                      +
                                                                                                                                                                                      868 {
                                                                                                                                                                                      +
                                                                                                                                                                                      869 Lock_guard<decltype(m_peer_socket_mutex)> peer_socket_lock(m_peer_socket_mutex);
                                                                                                                                                                                      +
                                                                                                                                                                                      870
                                                                                                                                                                                      +
                                                                                                                                                                                      871 if (m_peer_socket)
                                                                                                                                                                                      +
                                                                                                                                                                                      872 {
                                                                                                                                                                                      +
                                                                                                                                                                                      873 /* @todo Previously, when we ran our own boost.asio loop in a separate thread mandatorily (non-sync_io pattern),
                                                                                                                                                                                      +
                                                                                                                                                                                      874 * we did either boost::asio::async_write() (stubborn write, no handle to send) or
                                                                                                                                                                                      +
                                                                                                                                                                                      875 * asio_local_stream_socket::async_write_with_native_handle (same but with handle to send).
                                                                                                                                                                                      +
                                                                                                                                                                                      876 * Either one would do the async_wait()->nb-write->async_wait()->... chain for us. Now with sync_io we
                                                                                                                                                                                      +
                                                                                                                                                                                      877 * manually split it up into our version of "async"-wait->nb-write->.... However other than the
                                                                                                                                                                                      +
                                                                                                                                                                                      878 * "async-wait" mechanism itself, the logic is the same. The to-do would be to perhaps provide
                                                                                                                                                                                      +
                                                                                                                                                                                      879 * those functions in such a way as to work with the sync_io way of "async"-waiting, without getting rid
                                                                                                                                                                                      +
                                                                                                                                                                                      880 * of the publicly useful non-sync_io API (some layered design, confined to
                                                                                                                                                                                      +
                                                                                                                                                                                      881 * asio_local_stream_socket::*). The logic would not need to be repeated and maintained in two places;
                                                                                                                                                                                      +
                                                                                                                                                                                      882 * as of this writing the non-sync_io version has become for direct public use (by user) only anyway;
                                                                                                                                                                                      +
                                                                                                                                                                                      883 * two birds one stone to have both use cases use the same core logic code. */
                                                                                                                                                                                      +
                                                                                                                                                                                      884
                                                                                                                                                                                      +
                                                                                                                                                                                      885 m_snd_ev_wait_func(&m_ev_wait_hndl_peer_socket,
                                                                                                                                                                                      +
                                                                                                                                                                                      886 true, // Wait for write.
                                                                                                                                                                                      +
                                                                                                                                                                                      887 // Once writable do this:
                                                                                                                                                                                      +
                                                                                                                                                                                      888 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      889 ([this]() { snd_on_ev_peer_socket_writable_or_error(); }));
                                                                                                                                                                                      +
                                                                                                                                                                                      890 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      891 }
                                                                                                                                                                                      +
                                                                                                                                                                                      892 // else:
                                                                                                                                                                                      +
                                                                                                                                                                                      893 } // Lock_guard peer_socket_lock(m_peer_socket_mutex)
                                                                                                                                                                                      +
                                                                                                                                                                                      894
                                                                                                                                                                                      + +
                                                                                                                                                                                      896
                                                                                                                                                                                      +
                                                                                                                                                                                      897 /* Style note: I (ygoldfel) was tempted to make snd_on_ev_peer_socket_writable_or_error() a closure right in here,
                                                                                                                                                                                      +
                                                                                                                                                                                      898 * which saves boiler-plate lines, but subjectively the reading flow seemed too gnarly here. Typically I would have
                                                                                                                                                                                      +
                                                                                                                                                                                      899 * done it that other way though; in fact originally that's how I had it, but it proved too gnarly over time.
                                                                                                                                                                                      +
                                                                                                                                                                                      900 * Among other things it's nice to have the on-sent handler appear right *below* the async-op that takes it as
                                                                                                                                                                                      +
                                                                                                                                                                                      901 * an arg; *above* is dicey to read. */
                                                                                                                                                                                      +
                                                                                                                                                                                      902} // Native_socket_stream::Impl::snd_async_write_q_head_payload()
                                                                                                                                                                                      +
                                                                                                                                                                                      903
                                                                                                                                                                                      + +
                                                                                                                                                                                      905{
                                                                                                                                                                                      +
                                                                                                                                                                                      906 FLOW_LOG_TRACE("Socket stream [" << *this << "]: User-performed wait-for-writable finished (writable or error, "
                                                                                                                                                                                      +
                                                                                                                                                                                      907 "we do not know which yet). We endeavour to send->pop->send->... as much of the queue as we "
                                                                                                                                                                                      +
                                                                                                                                                                                      908 "can until would-block or total success.");
                                                                                                                                                                                      +
                                                                                                                                                                                      909
                                                                                                                                                                                      +
                                                                                                                                                                                      910 assert((!m_snd_pending_payloads_q.empty()) && "Send-queue should not be touched while async-write of head is going.");
                                                                                                                                                                                      +
                                                                                                                                                                                      911 assert((!m_snd_pending_err_code) && "Send error would only be detected by us. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      912
                                                                                                                                                                                      +
                                                                                                                                                                                      913 // Let's do as much as we can.
                                                                                                                                                                                      +
                                                                                                                                                                                      914 bool would_block = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      915 do
                                                                                                                                                                                      +
                                                                                                                                                                                      916 {
                                                                                                                                                                                      +
                                                                                                                                                                                      917 auto& low_lvl_payload = *m_snd_pending_payloads_q.front();
                                                                                                                                                                                      +
                                                                                                                                                                                      918 auto& hndl_or_null = low_lvl_payload.m_hndl_or_null;
                                                                                                                                                                                      +
                                                                                                                                                                                      919 auto& low_lvl_blob = low_lvl_payload.m_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      920 auto low_lvl_blob_view = low_lvl_blob.const_buffer();
                                                                                                                                                                                      +
                                                                                                                                                                                      921
                                                                                                                                                                                      +
                                                                                                                                                                                      922 FLOW_LOG_TRACE("Socket stream [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      923 "Out-queue size is [" << m_snd_pending_payloads_q.size() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      924 "want to send handle [" << hndl_or_null << "] with "
                                                                                                                                                                                      +
                                                                                                                                                                                      925 "low-level blob of size [" << low_lvl_blob_view.size() << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      926 "located @ [" << low_lvl_blob_view.data() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      927
                                                                                                                                                                                      +
                                                                                                                                                                                      928 const auto n_sent_or_zero
                                                                                                                                                                                      +
                                                                                                                                                                                      929 = snd_nb_write_low_lvl_payload(low_lvl_payload.m_hndl_or_null, low_lvl_blob_view, &m_snd_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      930 if (m_snd_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      931 {
                                                                                                                                                                                      +
                                                                                                                                                                                      932 continue; // Get out of the loop.
                                                                                                                                                                                      +
                                                                                                                                                                                      933 }
                                                                                                                                                                                      +
                                                                                                                                                                                      934 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      935
                                                                                                                                                                                      +
                                                                                                                                                                                      936 if (n_sent_or_zero == low_lvl_blob_view.size())
                                                                                                                                                                                      +
                                                                                                                                                                                      937 {
                                                                                                                                                                                      +
                                                                                                                                                                                      938 // Everything was sent nicely!
                                                                                                                                                                                      +
                                                                                                                                                                                      939 m_snd_pending_payloads_q.pop(); // This should dealloc low_lvl_payload.m_blob in particular.
                                                                                                                                                                                      +
                                                                                                                                                                                      940 }
                                                                                                                                                                                      +
                                                                                                                                                                                      941 else // if (n_sent_or_zero != low_lvl_payload.m_blob.size())
                                                                                                                                                                                      +
                                                                                                                                                                                      942 {
                                                                                                                                                                                      +
                                                                                                                                                                                      943 /* Some or all of the payload could not be sent (it would-block if we tried to send the rest now).
                                                                                                                                                                                      +
                                                                                                                                                                                      944 * This is similar to snd_sync_write_or_q_payload(), but we needn't enqueue it, as it's already enqueued;
                                                                                                                                                                                      +
                                                                                                                                                                                      945 * just "edit" it in-place as needed. */
                                                                                                                                                                                      +
                                                                                                                                                                                      946 if (n_sent_or_zero != 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      947 {
                                                                                                                                                                                      +
                                                                                                                                                                                      948 // Even if (!m_hndl_or_null.null()): 1 bytes were sent => so was the native handle.
                                                                                                                                                                                      +
                                                                                                                                                                                      949 low_lvl_payload.m_hndl_or_null = Native_handle();
                                                                                                                                                                                      +
                                                                                                                                                                                      950 /* Slide its .begin() to the right by n_sent_or_zero (might be no-op if was not writable after all).
                                                                                                                                                                                      +
                                                                                                                                                                                      951 * Note internally it's just a size_t +=; no realloc or anything. */
                                                                                                                                                                                      +
                                                                                                                                                                                      952 low_lvl_payload.m_blob.start_past_prefix_inc(n_sent_or_zero);
                                                                                                                                                                                      +
                                                                                                                                                                                      953 }
                                                                                                                                                                                      +
                                                                                                                                                                                      954 // else if (n_sent_or_zero == 0) { Nothing was sent, so no edits needed to low_lvl_payload. }
                                                                                                                                                                                      +
                                                                                                                                                                                      955 would_block = true; // Stop; would-block if we tried more.
                                                                                                                                                                                      +
                                                                                                                                                                                      956 }
                                                                                                                                                                                      +
                                                                                                                                                                                      957 }
                                                                                                                                                                                      +
                                                                                                                                                                                      958 while ((!m_snd_pending_payloads_q.empty()) && (!would_block) && (!m_snd_pending_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      959
                                                                                                                                                                                      +
                                                                                                                                                                                      960 // Careful! This must be done before the `if` sequence below, as it can make m_snd_pending_err_code truthy after all.
                                                                                                                                                                                      +
                                                                                                                                                                                      961 if ((!m_snd_pending_err_code) && (!m_snd_pending_payloads_q.empty()))
                                                                                                                                                                                      +
                                                                                                                                                                                      962 {
                                                                                                                                                                                      +
                                                                                                                                                                                      963 FLOW_LOG_TRACE("Out-queue has not been emptied. Must keep async-send chain going.");
                                                                                                                                                                                      +
                                                                                                                                                                                      964
                                                                                                                                                                                      +
                                                                                                                                                                                      965 // Continue the chain (this guy "asynchronously" brought us here in the first place).
                                                                                                                                                                                      +
                                                                                                                                                                                      966 snd_async_write_q_head_payload();
                                                                                                                                                                                      +
                                                                                                                                                                                      967 /* To be clear: queue can now only become empty in "async" handler, not synchronously here.
                                                                                                                                                                                      +
                                                                                                                                                                                      968 *
                                                                                                                                                                                      +
                                                                                                                                                                                      969 * Reasoning sanity check: How could m_snd_pending_err_code become truthy here yet falsy (success)
                                                                                                                                                                                      +
                                                                                                                                                                                      970 * through the do/while() loop above? Answer: The writes could work; then after the last such write,
                                                                                                                                                                                      +
                                                                                                                                                                                      971 * but before snd_async_write_q_head_payload() -- which needs an m_*peer_socket member to indicate
                                                                                                                                                                                      +
                                                                                                                                                                                      972 * connection is still healthy, to initiate the user-executed wait-for-writable -- incoming-direction processing
                                                                                                                                                                                      +
                                                                                                                                                                                      973 * could have hosed m_*peer_socket. E.g., it tried to nb-receive and exposed newly-arrived error condition. */
                                                                                                                                                                                      +
                                                                                                                                                                                      974 }
                                                                                                                                                                                      +
                                                                                                                                                                                      975 /* ^-- if ((!m_snd_pending_err_code) && (!m_snd_pending_payloads_q.empty()))
                                                                                                                                                                                      +
                                                                                                                                                                                      976 * (but m_snd_pending_err_code may have become truthy inside). */
                                                                                                                                                                                      +
                                                                                                                                                                                      977
                                                                                                                                                                                      +
                                                                                                                                                                                      978 // Lastly deal with possibly having to fire async_end_sending() completion handler.
                                                                                                                                                                                      +
                                                                                                                                                                                      979
                                                                                                                                                                                      +
                                                                                                                                                                                      980 bool invoke_on_done = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      981 if (m_snd_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      982 {
                                                                                                                                                                                      +
                                                                                                                                                                                      983 invoke_on_done = !m_snd_pending_on_last_send_done_func_or_empty.empty();
                                                                                                                                                                                      +
                                                                                                                                                                                      984 FLOW_LOG_WARNING("Socket stream [" << *this << "]: User-performed wait-for-writable reported completion; "
                                                                                                                                                                                      +
                                                                                                                                                                                      985 "wanted to nb-send any queued data and possibly initiated another wait-for-writable; "
                                                                                                                                                                                      +
                                                                                                                                                                                      986 "got error during an nb-send or when initiating wait; TRACE details above. "
                                                                                                                                                                                      +
                                                                                                                                                                                      987 "Error code details follow: "
                                                                                                                                                                                      +
                                                                                                                                                                                      988 "[" << m_snd_pending_err_code << "] [" << m_snd_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      989 "Saved error code to return in next user send attempt if any. "
                                                                                                                                                                                      +
                                                                                                                                                                                      990 "Will run graceful-sends-close completion handler? = [" << invoke_on_done << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      991
                                                                                                                                                                                      +
                                                                                                                                                                                      992 assert((!m_snd_pending_payloads_q.empty()) && "Opportunistic sanity check.");
                                                                                                                                                                                      +
                                                                                                                                                                                      993 }
                                                                                                                                                                                      +
                                                                                                                                                                                      994 else if (m_snd_pending_payloads_q.empty()) // && (!m_snd_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      995 {
                                                                                                                                                                                      +
                                                                                                                                                                                      996 FLOW_LOG_TRACE("Out-queue has been emptied.");
                                                                                                                                                                                      +
                                                                                                                                                                                      997
                                                                                                                                                                                      +
                                                                                                                                                                                      998 if (!m_snd_pending_on_last_send_done_func_or_empty.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      999 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1000 // INFO-log is okay, as this occurs at most once per *this.
                                                                                                                                                                                      +
                                                                                                                                                                                      1001 FLOW_LOG_INFO("Socket stream [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1002 "We sent graceful-close and any preceding user messages with success. Will now inform user via "
                                                                                                                                                                                      +
                                                                                                                                                                                      1003 "graceful-sends-close completion handler.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1004 invoke_on_done = true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1005 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1006 } // else if (m_snd_pending_payloads_q.empty() && (!m_snd_pending_err_code))
                                                                                                                                                                                      +
                                                                                                                                                                                      1007 // else if ((!m_snd_pending_payloads_q.empty()) && (!m_snd_pending_err_code)) { Async-wait started. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1008
                                                                                                                                                                                      +
                                                                                                                                                                                      1009 if (invoke_on_done)
                                                                                                                                                                                      +
                                                                                                                                                                                      1010 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1011 FLOW_LOG_TRACE("Socket stream [" << *this << "]: Executing end-sending completion handler now.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1012 auto on_done_func = std::move(m_snd_pending_on_last_send_done_func_or_empty);
                                                                                                                                                                                      +
                                                                                                                                                                                      1013 m_snd_pending_on_last_send_done_func_or_empty.clear(); // For cleanliness, in case move() didn't do it.
                                                                                                                                                                                      +
                                                                                                                                                                                      1014
                                                                                                                                                                                      +
                                                                                                                                                                                      1015 on_done_func(m_snd_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1016 FLOW_LOG_TRACE("Handler completed.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1017 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1018} // Native_socket_stream::Impl::snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      +
                                                                                                                                                                                      1019
                                                                                                                                                                                      + +
                                                                                                                                                                                      1021{
                                                                                                                                                                                      +
                                                                                                                                                                                      1022 return state_peer("send_meta_blob_max_size()") ? S_MAX_META_BLOB_LENGTH : 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      1023}
                                                                                                                                                                                      +
                                                                                                                                                                                      1024
                                                                                                                                                                                      + +
                                                                                                                                                                                      1026{
                                                                                                                                                                                      +
                                                                                                                                                                                      1027 return send_meta_blob_max_size();
                                                                                                                                                                                      +
                                                                                                                                                                                      1028}
                                                                                                                                                                                      +
                                                                                                                                                                                      1029
                                                                                                                                                                                      +
                                                                                                                                                                                      1030} // namespace ipc::transport::sync_io
                                                                                                                                                                                      proto_ver_t local_max_proto_ver_for_sending()
                                                                                                                                                                                      To be called at most once, this returns local_max_proto_ver from ctor the first time and S_VER_UNKNOW...
                                                                                                                                                                                      static constexpr proto_ver_t S_VER_UNKNOWN
                                                                                                                                                                                      A proto_ver_t value, namely a negative one, which is a reserved value indicating "unknown version"; i...
                                                                                                                                                                                      -
                                                                                                                                                                                      Error_code m_snd_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      +
                                                                                                                                                                                      Error_code m_snd_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      bool async_end_sending(Error_code *sync_err_code, flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      void snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by snd_...
                                                                                                                                                                                      +
                                                                                                                                                                                      void snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by snd_...
                                                                                                                                                                                      Protocol_negotiator m_protocol_negotiator
                                                                                                                                                                                      Handles the protocol negotiation at the start of the pipe.
                                                                                                                                                                                      bool snd_sync_write_or_q_payload(Native_handle hndl_or_null, const util::Blob_const &orig_blob, bool avoid_qing)
                                                                                                                                                                                      Either synchronously sends hndl_or_null handle (if any) and orig_blob low-level blob over m_peer_sock...
                                                                                                                                                                                      void snd_on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the auto-ping timer firing; if...
                                                                                                                                                                                      bool send_native_handle(Native_handle hndl_or_null, const util::Blob_const &meta_blob, Error_code *err_code)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      void snd_async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_peer_socket of the low-level payload at the head of out-queue m_snd_pend...
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t send_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      void snd_async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_peer_socket of the low-level payload at the head of out-queue m_snd_pend...
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t send_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool async_end_sending_impl(Error_code *sync_err_code_ptr_or_null, flow::async::Task_asio_err &&on_done_func_or_empty)
                                                                                                                                                                                      *end_sending() body.
                                                                                                                                                                                      bool start_send_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      @@ -1115,7 +1119,7 @@
                                                                                                                                                                                      bool auto_ping(util::Fine_duration period)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      size_t snd_nb_write_low_lvl_payload(Native_handle hndl_or_null, const util::Blob_const &blob, Error_code *err_code)
                                                                                                                                                                                      Utility that sends non-empty blob, and (unless null) hndl_or_null associated with its 1st byte,...
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      static const size_t & S_MAX_META_BLOB_LENGTH
                                                                                                                                                                                      The maximum length of a blob that can be sent by this protocol.
                                                                                                                                                                                      bool start_send_native_handle_ops(Event_wait_func_t &&ev_wait_func)
                                                                                                                                                                                      Implements Native_handle_sender API per contract.
                                                                                                                                                                                      size_t send_meta_blob_max_size() const
                                                                                                                                                                                      Implements Native_handle_sender API per contract.
                                                                                                                                                                                      @@ -1130,7 +1134,7 @@
                                                                                                                                                                                      @ S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND
                                                                                                                                                                                      Unable to send outgoing traffic: an earlier-reported, or at least logged, system error had hosed the ...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      boost::asio::const_buffer Blob_const
                                                                                                                                                                                      Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:134
                                                                                                                                                                                      @@ -1141,7 +1145,7 @@ diff --git a/doc/ipc_doc/generated/html_full/pages.html b/doc/ipc_doc/generated/html_full/pages.html index c7a3c5ccb..3e05a630d 100644 --- a/doc/ipc_doc/generated/html_full/pages.html +++ b/doc/ipc_doc/generated/html_full/pages.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp.html index a2a6d98ca..ae47a1970 100644 --- a/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp_source.html b/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp_source.html index 98be3abb0..d16cdd053 100644 --- a/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/persistent__mq__handle_8hpp_source.html @@ -828,7 +828,7 @@ diff --git a/doc/ipc_doc/generated/html_full/pool__arena_8cpp.html b/doc/ipc_doc/generated/html_full/pool__arena_8cpp.html index a3103928e..07f99b258 100644 --- a/doc/ipc_doc/generated/html_full/pool__arena_8cpp.html +++ b/doc/ipc_doc/generated/html_full/pool__arena_8cpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/pool__arena_8cpp_source.html b/doc/ipc_doc/generated/html_full/pool__arena_8cpp_source.html index 192ff0427..7f56f8439 100644 --- a/doc/ipc_doc/generated/html_full/pool__arena_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/pool__arena_8cpp_source.html @@ -277,7 +277,7 @@ diff --git a/doc/ipc_doc/generated/html_full/pool__arena_8hpp.html b/doc/ipc_doc/generated/html_full/pool__arena_8hpp.html index bad5716ae..b2377f30d 100644 --- a/doc/ipc_doc/generated/html_full/pool__arena_8hpp.html +++ b/doc/ipc_doc/generated/html_full/pool__arena_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/pool__arena_8hpp_source.html b/doc/ipc_doc/generated/html_full/pool__arena_8hpp_source.html index a398ad62a..18e339446 100644 --- a/doc/ipc_doc/generated/html_full/pool__arena_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/pool__arena_8hpp_source.html @@ -885,7 +885,7 @@ diff --git a/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp.html b/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp.html index a0a79d753..29818d44b 100644 --- a/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp_source.html b/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp_source.html index e5f736ddc..55bd984e6 100644 --- a/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/posix__mq__handle_8cpp_source.html @@ -1545,7 +1545,7 @@ diff --git a/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp.html index 7836bdbd9..3fe6646ed 100644 --- a/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp_source.html b/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp_source.html index 6b5358df3..a195c9750 100644 --- a/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/posix__mq__handle_8hpp_source.html @@ -836,7 +836,7 @@ diff --git a/doc/ipc_doc/generated/html_full/process__credentials_8cpp.html b/doc/ipc_doc/generated/html_full/process__credentials_8cpp.html index 17a37384f..296ddb001 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials_8cpp.html +++ b/doc/ipc_doc/generated/html_full/process__credentials_8cpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_full/process__credentials_8cpp_source.html b/doc/ipc_doc/generated/html_full/process__credentials_8cpp_source.html index 15872beab..4498a9782 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/process__credentials_8cpp_source.html @@ -256,7 +256,7 @@ diff --git a/doc/ipc_doc/generated/html_full/process__credentials_8hpp.html b/doc/ipc_doc/generated/html_full/process__credentials_8hpp.html index 9c73afab6..10dd248d5 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials_8hpp.html +++ b/doc/ipc_doc/generated/html_full/process__credentials_8hpp.html @@ -114,7 +114,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/process__credentials_8hpp_source.html b/doc/ipc_doc/generated/html_full/process__credentials_8hpp_source.html index a490c37bf..422a5cb2b 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/process__credentials_8hpp_source.html @@ -265,7 +265,7 @@ diff --git a/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp.html index 4f0ebc0ca..f447cb307 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp_source.html index fcbc02e90..3999beda2 100644 --- a/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/process__credentials__fwd_8hpp_source.html @@ -153,7 +153,7 @@ diff --git a/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp.html b/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp.html index ed2d9b810..c7a5260cc 100644 --- a/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp.html +++ b/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp_source.html b/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp_source.html index e98119683..1ba4e4476 100644 --- a/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/protocol__negotiator_8cpp_source.html @@ -240,7 +240,7 @@ diff --git a/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp.html b/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp.html index d681b0ac7..ad0bd59e4 100644 --- a/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp.html +++ b/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp_source.html b/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp_source.html index 78d86344e..f110511c0 100644 --- a/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/protocol__negotiator_8hpp_source.html @@ -455,7 +455,7 @@ diff --git a/doc/ipc_doc/generated/html_full/safety_perms.html b/doc/ipc_doc/generated/html_full/safety_perms.html index fc4ed0ee6..fbb05d759 100644 --- a/doc/ipc_doc/generated/html_full/safety_perms.html +++ b/doc/ipc_doc/generated/html_full/safety_perms.html @@ -147,7 +147,7 @@

                                                                                                                                                                                      Permissions level: GROUP_ACCESS

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/search/all_14.js b/doc/ipc_doc/generated/html_full/search/all_14.js index 0e9472f85..eeef0946d 100644 --- a/doc/ipc_doc/generated/html_full/search/all_14.js +++ b/doc/ipc_doc/generated/html_full/search/all_14.js @@ -1,6 +1,6 @@ var searchData= [ - ['value_0',['value',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html#abb6dcf1fc9ad95ec2d115e8292f580d5',1,'boost::system::is_error_code_enum<::ipc::transport::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html#a8986c8d91543689237cd71835a16651b',1,'boost::system::is_error_code_enum<::ipc::transport::struc::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html#ad2abe8adcb3ab8b6be9204fe47bd7d1f',1,'boost::system::is_error_code_enum<::ipc::session::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html#ad212be3d5deccfe7326277d532baf111',1,'boost::system::is_error_code_enum<::ipc::shm::classic::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html#a3bc8952bdfa710b12bb99d42dcc83e50',1,'boost::system::is_error_code_enum<::ipc::session::shm::arena_lend::jemalloc::error::Code >::value()']]], - ['value_1',['Value',['../classipc_1_1shm_1_1stl_1_1Stateless__allocator.html#a8bf26ee2ae30dfbe4d64fbcad3ac8368',1,'ipc::shm::stl::Stateless_allocator']]], + ['value_0',['Value',['../classipc_1_1shm_1_1stl_1_1Stateless__allocator.html#a8bf26ee2ae30dfbe4d64fbcad3ac8368',1,'ipc::shm::stl::Stateless_allocator']]], + ['value_1',['value',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html#abb6dcf1fc9ad95ec2d115e8292f580d5',1,'boost::system::is_error_code_enum<::ipc::transport::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html#a8986c8d91543689237cd71835a16651b',1,'boost::system::is_error_code_enum<::ipc::transport::struc::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html#ad2abe8adcb3ab8b6be9204fe47bd7d1f',1,'boost::system::is_error_code_enum<::ipc::session::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html#ad212be3d5deccfe7326277d532baf111',1,'boost::system::is_error_code_enum<::ipc::shm::classic::error::Code >::value()'],['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html#a3bc8952bdfa710b12bb99d42dcc83e50',1,'boost::system::is_error_code_enum<::ipc::session::shm::arena_lend::jemalloc::error::Code >::value()']]], ['value_5ftype_2',['value_type',['../classipc_1_1shm_1_1stl_1_1Stateless__allocator.html#afa85349670ddd8da1eb0386a2556f753',1,'ipc::shm::stl::Stateless_allocator']]] ]; diff --git a/doc/ipc_doc/generated/html_full/search/all_2.js b/doc/ipc_doc/generated/html_full/search/all_2.js index 4d469c0eb..f2cf4cae6 100644 --- a/doc/ipc_doc/generated/html_full/search/all_2.js +++ b/doc/ipc_doc/generated/html_full/search/all_2.js @@ -1,8 +1,8 @@ var searchData= [ - ['base_0',['Base',['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#acd1c9740a9d78d34586ee422591e6069',1,'ipc::transport::Blob_stream_mq_sender_impl::Base()'],['../structipc_1_1session_1_1Client__app.html#a9d1ec69e821e034305e20cfbf1161a04',1,'ipc::session::Client_app::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4a497bd79840cf84848ec8512ae0426b',1,'ipc::transport::struc::Msg_mdt_out::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a268250263cf7a4122dd8139b36cf380c',1,'ipc::transport::struc::Msg_in_impl::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html#aa838f0d1bb88afc254ac91dda622de7b',1,'ipc::transport::struc::Msg_out_impl::Base()'],['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#a4cbb287f5971162e747f475052abc413',1,'ipc::util::sync_io::Asio_waitable_native_handle::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a5a36bff3c8346f952b154e081817f53c',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac3d293643835e752560de34116554624',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#a948890be188e53c540e5423d67ba33eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a5747fffe1a1a6837c69f6dfabbad9ae0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Base()'],['../classipc_1_1session_1_1Client__session__mv.html#aaa2fa231533e672f89dd3ae63113d2a2',1,'ipc::session::Client_session_mv::Base()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#ac030a85153248492a06f255f1c0cea00',1,'ipc::transport::Blob_stream_mq_receiver_impl::Base()'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#a31fa15aabde0fc6b77929577973ca00b',1,'ipc::transport::Mqs_socket_stream_channel::Base()'],['../classipc_1_1transport_1_1Mqs__channel.html#abcd00571d161aa2f0dc8738fa9a451ff',1,'ipc::transport::Mqs_channel::Base()'],['../classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html#ab6c060d7c300e21b2f89cc2790583fdb',1,'ipc::transport::Socket_stream_channel_of_blobs::Base()'],['../classipc_1_1transport_1_1Socket__stream__channel.html#aa5908f07f8da3c854e7b838aed404042',1,'ipc::transport::Socket_stream_channel::Base()']]], - ['base_1',['base',['../classipc_1_1session_1_1Server__session__dtl.html#ae91b835b0f82f071d695f9ae62ad9174',1,'ipc::session::Server_session_dtl::base()'],['../classipc_1_1session_1_1Server__session__impl.html#a0992cbc57bf346d6b8df191f2dcb9188',1,'ipc::session::Server_session_impl::base()'],['../classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d',1,'ipc::session::Session_mv::base()']]], - ['base_2',['Base',['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#a57ed4042d5b70b0c1b73bcb75a9e5f85',1,'ipc::transport::Blob_stream_mq_sender::Base()'],['../classipc_1_1session_1_1Client__session__impl.html#acd9519f313206fdd2cd6ca91efb79516',1,'ipc::session::Client_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html#ac11498f4b8a526f2525de8e3d2dcf08c',1,'ipc::session::shm::classic::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a6c0160faae9e8a9c880b6f78fafb428c',1,'ipc::session::shm::arena_lend::jemalloc::Session_mv::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#aee0d5c20c166905ba0d915e182cb7e13',1,'ipc::session::shm::arena_lend::jemalloc::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a445e945051a370bb71b124840f994a3b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html#a9e77771dc08dc94622556973e482cceb',1,'ipc::session::shm::arena_lend::jemalloc::Server_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#adcac8ed7fad784120c032276510dc409',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html#ac11498f4b8a526f2525de8e3d2dcf08c',1,'ipc::session::shm::classic::Session_mv::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html#a1507bab4b191f908e9c45470fdb8d296',1,'ipc::session::shm::classic::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#ad0100f8bf97fe2d5dca929c1fe21fdaf',1,'ipc::session::shm::classic::Session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html#a7eb8811c0dfc0f25f2b5cb5acd0ff90d',1,'ipc::session::shm::classic::Server_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html#ad8ee9fe8272ecbb6da5f13e459feb668',1,'ipc::session::shm::classic::Client_session_impl::Base()'],['../classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html#ae95391bb96cb2d0f34fe1c105ddc6fc0',1,'ipc::session::sync_io::Server_session_adapter::Base()'],['../classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html#ad4a0976c70c7d9a995a290cbea20054d',1,'ipc::session::sync_io::Client_session_adapter::Base()'],['../classipc_1_1session_1_1Server__session__mv.html#a17a6288bac54ea18317582121ed8e10d',1,'ipc::session::Server_session_mv::Base()'],['../classipc_1_1session_1_1Server__session__impl.html#a80daf8c8041d8d510f4712156732b09d',1,'ipc::session::Server_session_impl::Base()'],['../classipc_1_1session_1_1Server__session__dtl.html#a4615bdb6fac6b95d177befea9cb07afe',1,'ipc::session::Server_session_dtl::Base()']]], + ['base_0',['Base',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac3d293643835e752560de34116554624',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::Base()'],['../classipc_1_1session_1_1Server__session__dtl.html#a4615bdb6fac6b95d177befea9cb07afe',1,'ipc::session::Server_session_dtl::Base()'],['../classipc_1_1session_1_1Client__session__impl.html#acd9519f313206fdd2cd6ca91efb79516',1,'ipc::session::Client_session_impl::Base()'],['../classipc_1_1session_1_1Client__session__mv.html#aaa2fa231533e672f89dd3ae63113d2a2',1,'ipc::session::Client_session_mv::Base()'],['../structipc_1_1session_1_1Client__app.html#a9d1ec69e821e034305e20cfbf1161a04',1,'ipc::session::Client_app::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a4a497bd79840cf84848ec8512ae0426b',1,'ipc::transport::struc::Msg_mdt_out::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a268250263cf7a4122dd8139b36cf380c',1,'ipc::transport::struc::Msg_in_impl::Base()'],['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html#aa838f0d1bb88afc254ac91dda622de7b',1,'ipc::transport::struc::Msg_out_impl::Base()'],['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#a4cbb287f5971162e747f475052abc413',1,'ipc::util::sync_io::Asio_waitable_native_handle::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a5a36bff3c8346f952b154e081817f53c',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::Base()'],['../classipc_1_1session_1_1Server__session__impl.html#a80daf8c8041d8d510f4712156732b09d',1,'ipc::session::Server_session_impl::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#a948890be188e53c540e5423d67ba33eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Base()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a5747fffe1a1a6837c69f6dfabbad9ae0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Base()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#acd1c9740a9d78d34586ee422591e6069',1,'ipc::transport::Blob_stream_mq_sender_impl::Base()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#ac030a85153248492a06f255f1c0cea00',1,'ipc::transport::Blob_stream_mq_receiver_impl::Base()'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#a31fa15aabde0fc6b77929577973ca00b',1,'ipc::transport::Mqs_socket_stream_channel::Base()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#a57ed4042d5b70b0c1b73bcb75a9e5f85',1,'ipc::transport::Blob_stream_mq_sender::Base()'],['../classipc_1_1transport_1_1Socket__stream__channel.html#aa5908f07f8da3c854e7b838aed404042',1,'ipc::transport::Socket_stream_channel::Base()'],['../classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html#ab6c060d7c300e21b2f89cc2790583fdb',1,'ipc::transport::Socket_stream_channel_of_blobs::Base()'],['../classipc_1_1transport_1_1Mqs__channel.html#abcd00571d161aa2f0dc8738fa9a451ff',1,'ipc::transport::Mqs_channel::Base()'],['../classipc_1_1session_1_1Server__session__mv.html#a17a6288bac54ea18317582121ed8e10d',1,'ipc::session::Server_session_mv::Base()']]], + ['base_1',['base',['../classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d',1,'ipc::session::Session_mv::base()'],['../classipc_1_1session_1_1Server__session__impl.html#a0992cbc57bf346d6b8df191f2dcb9188',1,'ipc::session::Server_session_impl::base()'],['../classipc_1_1session_1_1Server__session__dtl.html#ae91b835b0f82f071d695f9ae62ad9174',1,'ipc::session::Server_session_dtl::base()']]], + ['base_2',['Base',['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html#ac11498f4b8a526f2525de8e3d2dcf08c',1,'ipc::session::shm::classic::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html#a6c0160faae9e8a9c880b6f78fafb428c',1,'ipc::session::shm::arena_lend::jemalloc::Session_mv::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html#aee0d5c20c166905ba0d915e182cb7e13',1,'ipc::session::shm::arena_lend::jemalloc::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a445e945051a370bb71b124840f994a3b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html#a9e77771dc08dc94622556973e482cceb',1,'ipc::session::shm::arena_lend::jemalloc::Server_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#adcac8ed7fad784120c032276510dc409',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html#ac11498f4b8a526f2525de8e3d2dcf08c',1,'ipc::session::shm::classic::Session_mv::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html#a1507bab4b191f908e9c45470fdb8d296',1,'ipc::session::shm::classic::Server_session::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#ad0100f8bf97fe2d5dca929c1fe21fdaf',1,'ipc::session::shm::classic::Session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Server__session__impl.html#a7eb8811c0dfc0f25f2b5cb5acd0ff90d',1,'ipc::session::shm::classic::Server_session_impl::Base()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html#ad8ee9fe8272ecbb6da5f13e459feb668',1,'ipc::session::shm::classic::Client_session_impl::Base()'],['../classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html#ae95391bb96cb2d0f34fe1c105ddc6fc0',1,'ipc::session::sync_io::Server_session_adapter::Base()'],['../classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html#ad4a0976c70c7d9a995a290cbea20054d',1,'ipc::session::sync_io::Client_session_adapter::Base()']]], ['bipc_5fmq_5fhandle_3',['Bipc_mq_handle',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a11941ad5d1a6d0cef286a69ed99bb2d0',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(flow::log::Logger *logger_ptr, const Shared_name &absolute_name, util::Create_only mode_tag, size_t max_n_msg, size_t max_msg_sz, const util::Permissions &perms=util::Permissions(), Error_code *err_code=0)'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a0022f89e50cc522971cac3eb12025924',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a65748d60779863c62808478340bfb142',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(flow::log::Logger *logger_ptr, const Shared_name &absolute_name, util::Open_only mode_tag, Error_code *err_code=0)'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a9734d457200dbaa9234539f666060403',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(Bipc_mq_handle &&src)'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a33a6dd5bd00f47d79ee42a2ff5d99ddc',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(const Bipc_mq_handle &)=delete'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a09f47c6b083179259b7a21b1a6f3c6d0',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(Mode_tag mode_tag, flow::log::Logger *logger_ptr, const Shared_name &absolute_name, size_t max_n_msg_on_create, size_t max_msg_sz_on_create, const util::Permissions &perms_on_create, Error_code *err_code)'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a8fc57150cd7b7223b5f75b187bc7406f',1,'ipc::transport::Bipc_mq_handle::Bipc_mq_handle(flow::log::Logger *logger_ptr, const Shared_name &absolute_name, util::Open_or_create mode_tag, size_t max_n_msg_on_create, size_t max_msg_sz_on_create, const util::Permissions &perms_on_create=util::Permissions(), Error_code *err_code=0)'],['../classipc_1_1transport_1_1Bipc__mq__handle.html',1,'ipc::transport::Bipc_mq_handle']]], ['bipc_5fmq_5fhandle_2ecpp_4',['bipc_mq_handle.cpp',['../bipc__mq__handle_8cpp.html',1,'']]], ['bipc_5fmq_5fhandle_2ehpp_5',['bipc_mq_handle.hpp',['../bipc__mq__handle_8hpp.html',1,'']]], diff --git a/doc/ipc_doc/generated/html_full/search/all_9.js b/doc/ipc_doc/generated/html_full/search/all_9.js index 580c4f306..30f4d4747 100644 --- a/doc/ipc_doc/generated/html_full/search/all_9.js +++ b/doc/ipc_doc/generated/html_full/search/all_9.js @@ -9,49 +9,48 @@ var searchData= ['id_5for_5fnone_6',['id_or_none',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#abd54a8eca0685638068734630e53c697',1,'ipc::transport::struc::Msg_in_impl::id_or_none()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#ad42fc6c023dae0f6bf66ffb3a3437fa4',1,'ipc::transport::struc::Msg_in::id_or_none()']]], ['id_5ft_7',['id_t',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html#a6b5142da7049fc212faff3914e69379b',1,'ipc::transport::struc::Channel::Sync_op_state']]], ['idle_5ftimer_5frun_8',['idle_timer_run',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a9ebd5852a2cad6d01e299507e4729b62',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html#a6888f84e88c00d28daa579a9b47a2d77',1,'ipc::transport::sync_io::Blob_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a2067b525e54efd90bdc584cf77f7ae4b',1,'ipc::transport::sync_io::Async_adapter_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a444ed00ac6f4375a1bb65d0cd036b493',1,'ipc::transport::Blob_stream_mq_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__receiver.html#a5be288e0479a91e352fdea6d54460b22',1,'ipc::transport::Blob_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a878fa03873bcdea5aa9d938a4791325f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abedd0db5a5ae04e47085728ae548d07c',1,'ipc::transport::sync_io::Native_socket_stream::Impl::idle_timer_run()'],['../classipc_1_1transport_1_1Channel.html#abf25364b49b9fdd3ba4b1541b3a50356',1,'ipc::transport::Channel::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a20c29f8ed0b480497ad47c9247235c58',1,'ipc::transport::Blob_stream_mq_receiver_impl::idle_timer_run()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a3103ec6899bfb6f945d970d8c4114338',1,'ipc::transport::Native_socket_stream::Impl::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html#a57ec0f2a9c1b8bfbaaf88975433a1354',1,'ipc::transport::sync_io::Native_handle_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Native__handle__receiver.html#a174ee15818a8bda361bdc40f094faac9',1,'ipc::transport::Native_handle_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Native__socket__stream.html#a1b4ce3ddee39f21e752ec9114ac17bbd',1,'ipc::transport::Native_socket_stream::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#ac645b3e69ee3bfda64c0e9fda62f656a',1,'ipc::transport::sync_io::Native_socket_stream::idle_timer_run()']]], - ['impl_9',['impl',['../classipc_1_1transport_1_1Native__socket__stream.html#a0d0416ffe729877dad845e88c3609974',1,'ipc::transport::Native_socket_stream']]], - ['impl_10',['Impl',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae43a7982c98b4eb6501e7f74f3f6fa04',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, std::nullptr_t tag)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a90f29990e2e88052232c218c076414c7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae9194e2eefe81185d1bf067b1f934657',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae6713aa742cee52ae9ca16156d1f8599',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_moved, std::nullptr_t tag)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae50a22a4dd601f009134d2aaa2841eca',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_in_peer_state_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#af9aa3d981a2295bd9cfa9e5d3f567cb9',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad7c2d6c843935c5413d3dd8fbc39d272',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#af2d0f0b214054c9df58b9c44be38de14',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Impl()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aa2aaa84142feffe216d274d465c8bf5c',1,'ipc::session::shm::classic::Session_server::Impl()'],['../classipc_1_1session_1_1Session__server.html#a88662c940c51cbaad4dd2cc8af87b147',1,'ipc::session::Session_server::Impl()'],['../classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93',1,'ipc::session::Session_mv::Impl()']]], - ['impl_11',['impl',['../classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63',1,'ipc::session::Session_mv::impl() const'],['../classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25',1,'ipc::session::Session_mv::impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a8e3703d5c8bac62f828a372691249c85',1,'ipc::transport::sync_io::Native_socket_stream::impl()']]], - ['impl_12',['Impl',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html',1,'ipc::transport::Native_socket_stream::Impl'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['impl_5fptr_13',['Impl_ptr',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a410a106b49f69c0d93e4818eb35eec5f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Impl_ptr()'],['../classipc_1_1transport_1_1Native__socket__stream.html#ab93697ce64c2f2357d319ae2cdf7a1da',1,'ipc::transport::Native_socket_stream::Impl_ptr()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#ac97c9d7d3dad9e48151f92f884d5f12e',1,'ipc::transport::Blob_stream_mq_sender::Impl_ptr()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a2356c1b82f534d17e3a7a8e00023d08c',1,'ipc::transport::Blob_stream_mq_receiver::Impl_ptr()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#a2fa1c0c0639a06f3616aa6264af4a76a',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Impl_ptr()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a34a0e0baa9582cfcdef40f590105927c',1,'ipc::transport::sync_io::Native_socket_stream::Impl_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e',1,'ipc::session::Session_mv::Impl_ptr()']]], - ['incomplete_5fsession_14',['Incomplete_session',['../classipc_1_1session_1_1Session__server__impl.html#a3a608ab714f6a6725e6122470d87713f',1,'ipc::session::Session_server_impl']]], - ['incomplete_5fsession_5fobserver_15',['Incomplete_session_observer',['../classipc_1_1session_1_1Session__server__impl.html#ae66f28a17f3cdd72d97212126483650a',1,'ipc::session::Session_server_impl']]], - ['incomplete_5fsessions_16',['Incomplete_sessions',['../classipc_1_1session_1_1Session__server__impl.html#a5286c0f847ccf7e62d87c088e7be32e0',1,'ipc::session::Session_server_impl']]], - ['increment_5fuse_17',['increment_use',['../classipc_1_1util_1_1Use__counted__object.html#a2d616e432356ba5198b4827a30157d28',1,'ipc::util::Use_counted_object']]], - ['init_5fapp_5fshm_5fas_5fneeded_18',['init_app_shm_as_needed',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ae5b53f9881efc8eccb5f93dc7d820c70',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::init_app_shm_as_needed()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a406e3860e68d2e863e64215aae43812e',1,'ipc::session::shm::classic::Session_server::init_app_shm_as_needed()']]], - ['init_5fblob_5fpipe_19',['init_blob_pipe',['../classipc_1_1transport_1_1Channel.html#aa8209a5adde4e5c2b3b1d8779fab0433',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd_and_rcv)'],['../classipc_1_1transport_1_1Channel.html#abc969fa7785f5acda19a0c08bfeeb7e9',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd, Blob_receiver_obj &&rcv)']]], - ['init_5fhandlers_20',['init_handlers',['../classipc_1_1session_1_1Server__session__impl.html#ac93040ccdaf5a261a053a8b55bd2e14e',1,'ipc::session::Server_session_impl::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1Server__session__impl.html#a493937b9737f1fc4803364c35ceae83e',1,'ipc::session::Server_session_impl::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1Server__session__mv.html#a99097e5aa6883877c74f8a93ebc9f3e1',1,'ipc::session::Server_session_mv::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1Server__session__mv.html#ac1ea393b9d0d7de60f7433cbc7dad0d4',1,'ipc::session::Server_session_mv::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ae7fcf6915de1764b69d0d49abb20666e',1,'ipc::session::sync_io::Session_adapter::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#af738e1f4be56643da0987fc1c0660e67',1,'ipc::session::sync_io::Session_adapter::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html#a592f273a045b84ed361d141ae01e6525',1,'ipc::session::sync_io::Server_session_adapter::init_handlers()']]], - ['init_5fhandlers_5fimpl_21',['init_handlers_impl',['../classipc_1_1session_1_1Server__session__impl.html#ad39cb95f2e546cf5be927dfc295306c1',1,'ipc::session::Server_session_impl']]], - ['init_5fnative_5fhandle_5fpipe_22',['init_native_handle_pipe',['../classipc_1_1transport_1_1Channel.html#afa221b9b60aa9de1aa8dfcb0c1cabec1',1,'ipc::transport::Channel::init_native_handle_pipe(Native_handle_sender_obj &&snd, Native_handle_receiver_obj &&rcv)'],['../classipc_1_1transport_1_1Channel.html#a0e0e396759dab8c0930594eac3bb03ba',1,'ipc::transport::Channel::init_native_handle_pipe(Native_handle_sender_obj &&snd_and_rcv)']]], - ['init_5fpipe_23',['init_pipe',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a48b4b10dcb605860a58d2a394ba9c35b',1,'ipc::session::sync_io::Session_adapter']]], - ['init_5fshm_24',['init_shm',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a46155078d8764c71a8d75db64345074b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], - ['init_5fshm_5farenas_25',['init_shm_arenas',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#ad7b01ef2b4a8c14b9960b8be8891375b',1,'ipc::session::shm::classic::Session_impl']]], - ['initialized_26',['initialized',['../classipc_1_1transport_1_1Channel.html#a43c79955b3ad0eab347550b4263523ec',1,'ipc::transport::Channel']]], - ['internal_5fmsg_5fbody_5fbuilder_27',['Internal_msg_body_builder',['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19',1,'ipc::transport::struc::Msg_mdt_out']]], - ['internal_5fmsg_5fbody_5freader_28',['Internal_msg_body_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a014dd91524d8b76aa9a36efe71eed415',1,'ipc::transport::struc::Msg_in_impl::Internal_msg_body_reader()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#afdc86a45b50e9869329b11a1e576b172',1,'ipc::transport::struc::Msg_in::Internal_msg_body_reader()']]], - ['internal_5fmsg_5fbody_5froot_29',['internal_msg_body_root',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a880fb3eb4b037c9a06d0a683feed660f',1,'ipc::transport::struc::Msg_in::internal_msg_body_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a1541fa2c6343cbcddf3feac9fcf67c46',1,'ipc::transport::struc::Msg_mdt_out::internal_msg_body_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a1a57abfeb8dc53f43d20cd0a8bb7def7',1,'ipc::transport::struc::Msg_in_impl::internal_msg_body_root()']]], - ['interrupt_5fallow_5fimpl_30',['interrupt_allow_impl',['../classipc_1_1transport_1_1Bipc__mq__handle.html#ac52aa9402e0f5d50babff7b06e5eaab3',1,'ipc::transport::Bipc_mq_handle']]], - ['interrupt_5fimpl_31',['interrupt_impl',['../classipc_1_1transport_1_1Posix__mq__handle.html#a98884af2e485268f92b3f5f7c1069291',1,'ipc::transport::Posix_mq_handle']]], - ['interrupt_5freceives_32',['interrupt_receives',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a84db01ec0b3dadaa7368df4fad8f8529',1,'ipc::transport::Bipc_mq_handle::interrupt_receives()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a206333d3eb619588d17812f8f49013a2',1,'ipc::transport::Persistent_mq_handle::interrupt_receives()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a02262faa0f53b5518db359b4e5968b47',1,'ipc::transport::Posix_mq_handle::interrupt_receives()']]], - ['interrupt_5fsends_33',['interrupt_sends',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a40a750e20cb4696cdb7dc6cdddc78b1a',1,'ipc::transport::Bipc_mq_handle::interrupt_sends()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#af7a883553df39b16047b49942bd734c0',1,'ipc::transport::Persistent_mq_handle::interrupt_sends()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a0afe8a636902116223b4f33f081119df',1,'ipc::transport::Posix_mq_handle::interrupt_sends()']]], - ['invoke_5fconn_5fon_5fdone_5ffunc_34',['invoke_conn_on_done_func',['../classipc_1_1session_1_1Client__session__impl.html#a428ae010a09aae1bac509e87fd927152',1,'ipc::session::Client_session_impl']]], - ['ipc_35',['ipc',['../namespaceipc.html',1,'']]], - ['ipc_5fkernel_5fpersistent_5frun_5fdir_36',['IPC_KERNEL_PERSISTENT_RUN_DIR',['../namespaceipc_1_1util.html#aaaa1fe31f8d77f78345dec8fc95e9882',1,'ipc::util']]], - ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3asession_3a_3aerror_3a_3acode_20_3e_37',['is_error_code_enum<::ipc::session::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html',1,'boost::system']]], - ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3asession_3a_3ashm_3a_3aarena_5flend_3a_3ajemalloc_3a_3aerror_3a_3acode_20_3e_38',['is_error_code_enum<::ipc::session::shm::arena_lend::jemalloc::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html',1,'boost::system']]], - ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3ashm_3a_3aclassic_3a_3aerror_3a_3acode_20_3e_39',['is_error_code_enum<::ipc::shm::classic::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html',1,'boost::system']]], - ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3atransport_3a_3aerror_3a_3acode_20_3e_40',['is_error_code_enum<::ipc::transport::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html',1,'boost::system']]], - ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3atransport_3a_3astruc_3a_3aerror_3a_3acode_20_3e_41',['is_error_code_enum<::ipc::transport::struc::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html',1,'boost::system']]], - ['is_5fhandle_5fin_5farena_42',['is_handle_in_arena',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#ad2d54cc87b56613bba32aabd2c52ef13',1,'ipc::shm::classic::Pool_arena']]], - ['is_5freceivable_43',['is_receivable',['../classipc_1_1transport_1_1Bipc__mq__handle.html#adade0e6deab4db302be7343d27568e8a',1,'ipc::transport::Bipc_mq_handle::is_receivable()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#acdf4279219020020b1d8b3ff8a80cbe2',1,'ipc::transport::Persistent_mq_handle::is_receivable()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a399bb25dbcfa06437b2f50abcc1500d1',1,'ipc::transport::Posix_mq_handle::is_receivable()']]], - ['is_5fsendable_44',['is_sendable',['../classipc_1_1transport_1_1Persistent__mq__handle.html#ab95e3d32a7ad3fa3630ba54442d8f2ee',1,'ipc::transport::Persistent_mq_handle::is_sendable()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a409b0d91e57c994341d900f840e75bb4',1,'ipc::transport::Posix_mq_handle::is_sendable()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#afa693699d1678040f6d22efbfaf657fe',1,'ipc::transport::Bipc_mq_handle::is_sendable()']]], - ['jemalloc_45',['jemalloc',['../namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html',1,'ipc::session::shm::arena_lend::jemalloc'],['../namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html',1,'ipc::transport::struc::shm::arena_lend::jemalloc']]], - ['local_5fns_46',['local_ns',['../namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html',1,'ipc::transport::asio_local_stream_socket']]], - ['session_47',['session',['../namespaceipc_1_1session.html',1,'ipc']]], - ['shm_48',['shm',['../namespaceipc_1_1session_1_1shm.html',1,'ipc::session::shm'],['../namespaceipc_1_1shm.html',1,'ipc::shm'],['../namespaceipc_1_1transport_1_1struc_1_1shm.html',1,'ipc::transport::struc::shm']]], - ['stl_49',['stl',['../namespaceipc_1_1shm_1_1stl.html',1,'ipc::shm']]], - ['struc_50',['struc',['../namespaceipc_1_1transport_1_1struc.html',1,'ipc::transport']]], - ['sync_5fio_51',['sync_io',['../namespaceipc_1_1session_1_1sync__io.html',1,'ipc::session::sync_io'],['../namespaceipc_1_1transport_1_1struc_1_1sync__io.html',1,'ipc::transport::struc::sync_io'],['../namespaceipc_1_1transport_1_1sync__io.html',1,'ipc::transport::sync_io'],['../namespaceipc_1_1util_1_1sync__io.html',1,'ipc::util::sync_io']]], - ['transport_52',['transport',['../namespaceipc_1_1transport.html',1,'ipc']]], - ['util_53',['util',['../namespaceipc_1_1util.html',1,'ipc']]] + ['impl_9',['Impl',['../classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93',1,'ipc::session::Session_mv']]], + ['impl_10',['impl',['../classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63',1,'ipc::session::Session_mv::impl() const'],['../classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25',1,'ipc::session::Session_mv::impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a8e3703d5c8bac62f828a372691249c85',1,'ipc::transport::sync_io::Native_socket_stream::impl()'],['../classipc_1_1transport_1_1Native__socket__stream.html#a0d0416ffe729877dad845e88c3609974',1,'ipc::transport::Native_socket_stream::impl()']]], + ['impl_11',['Impl',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae43a7982c98b4eb6501e7f74f3f6fa04',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, std::nullptr_t tag)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a90f29990e2e88052232c218c076414c7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae9194e2eefe81185d1bf067b1f934657',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae6713aa742cee52ae9ca16156d1f8599',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_moved, std::nullptr_t tag)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae50a22a4dd601f009134d2aaa2841eca',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_in_peer_state_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#af9aa3d981a2295bd9cfa9e5d3f567cb9',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad7c2d6c843935c5413d3dd8fbc39d272',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#af2d0f0b214054c9df58b9c44be38de14',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Impl()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aa2aaa84142feffe216d274d465c8bf5c',1,'ipc::session::shm::classic::Session_server::Impl()'],['../classipc_1_1session_1_1Session__server.html#a88662c940c51cbaad4dd2cc8af87b147',1,'ipc::session::Session_server::Impl()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html',1,'ipc::transport::Native_socket_stream::Impl'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['impl_5fptr_12',['Impl_ptr',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a410a106b49f69c0d93e4818eb35eec5f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Impl_ptr()'],['../classipc_1_1transport_1_1Native__socket__stream.html#ab93697ce64c2f2357d319ae2cdf7a1da',1,'ipc::transport::Native_socket_stream::Impl_ptr()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#ac97c9d7d3dad9e48151f92f884d5f12e',1,'ipc::transport::Blob_stream_mq_sender::Impl_ptr()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a2356c1b82f534d17e3a7a8e00023d08c',1,'ipc::transport::Blob_stream_mq_receiver::Impl_ptr()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#a2fa1c0c0639a06f3616aa6264af4a76a',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Impl_ptr()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a34a0e0baa9582cfcdef40f590105927c',1,'ipc::transport::sync_io::Native_socket_stream::Impl_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e',1,'ipc::session::Session_mv::Impl_ptr()']]], + ['incomplete_5fsession_13',['Incomplete_session',['../classipc_1_1session_1_1Session__server__impl.html#a3a608ab714f6a6725e6122470d87713f',1,'ipc::session::Session_server_impl']]], + ['incomplete_5fsession_5fobserver_14',['Incomplete_session_observer',['../classipc_1_1session_1_1Session__server__impl.html#ae66f28a17f3cdd72d97212126483650a',1,'ipc::session::Session_server_impl']]], + ['incomplete_5fsessions_15',['Incomplete_sessions',['../classipc_1_1session_1_1Session__server__impl.html#a5286c0f847ccf7e62d87c088e7be32e0',1,'ipc::session::Session_server_impl']]], + ['increment_5fuse_16',['increment_use',['../classipc_1_1util_1_1Use__counted__object.html#a2d616e432356ba5198b4827a30157d28',1,'ipc::util::Use_counted_object']]], + ['init_5fapp_5fshm_5fas_5fneeded_17',['init_app_shm_as_needed',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ae5b53f9881efc8eccb5f93dc7d820c70',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::init_app_shm_as_needed()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a406e3860e68d2e863e64215aae43812e',1,'ipc::session::shm::classic::Session_server::init_app_shm_as_needed()']]], + ['init_5fblob_5fpipe_18',['init_blob_pipe',['../classipc_1_1transport_1_1Channel.html#aa8209a5adde4e5c2b3b1d8779fab0433',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd_and_rcv)'],['../classipc_1_1transport_1_1Channel.html#abc969fa7785f5acda19a0c08bfeeb7e9',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd, Blob_receiver_obj &&rcv)']]], + ['init_5fhandlers_19',['init_handlers',['../classipc_1_1session_1_1Server__session__impl.html#ac93040ccdaf5a261a053a8b55bd2e14e',1,'ipc::session::Server_session_impl::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1Server__session__impl.html#a493937b9737f1fc4803364c35ceae83e',1,'ipc::session::Server_session_impl::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1Server__session__mv.html#a99097e5aa6883877c74f8a93ebc9f3e1',1,'ipc::session::Server_session_mv::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1Server__session__mv.html#ac1ea393b9d0d7de60f7433cbc7dad0d4',1,'ipc::session::Server_session_mv::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ae7fcf6915de1764b69d0d49abb20666e',1,'ipc::session::sync_io::Session_adapter::init_handlers(Task_err &&on_err_func_arg, On_passive_open_channel_handler &&on_passive_open_channel_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#af738e1f4be56643da0987fc1c0660e67',1,'ipc::session::sync_io::Session_adapter::init_handlers(Task_err &&on_err_func_arg)'],['../classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html#a592f273a045b84ed361d141ae01e6525',1,'ipc::session::sync_io::Server_session_adapter::init_handlers()']]], + ['init_5fhandlers_5fimpl_20',['init_handlers_impl',['../classipc_1_1session_1_1Server__session__impl.html#ad39cb95f2e546cf5be927dfc295306c1',1,'ipc::session::Server_session_impl']]], + ['init_5fnative_5fhandle_5fpipe_21',['init_native_handle_pipe',['../classipc_1_1transport_1_1Channel.html#afa221b9b60aa9de1aa8dfcb0c1cabec1',1,'ipc::transport::Channel::init_native_handle_pipe(Native_handle_sender_obj &&snd, Native_handle_receiver_obj &&rcv)'],['../classipc_1_1transport_1_1Channel.html#a0e0e396759dab8c0930594eac3bb03ba',1,'ipc::transport::Channel::init_native_handle_pipe(Native_handle_sender_obj &&snd_and_rcv)']]], + ['init_5fpipe_22',['init_pipe',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a48b4b10dcb605860a58d2a394ba9c35b',1,'ipc::session::sync_io::Session_adapter']]], + ['init_5fshm_23',['init_shm',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a46155078d8764c71a8d75db64345074b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], + ['init_5fshm_5farenas_24',['init_shm_arenas',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#ad7b01ef2b4a8c14b9960b8be8891375b',1,'ipc::session::shm::classic::Session_impl']]], + ['initialized_25',['initialized',['../classipc_1_1transport_1_1Channel.html#a43c79955b3ad0eab347550b4263523ec',1,'ipc::transport::Channel']]], + ['internal_5fmsg_5fbody_5fbuilder_26',['Internal_msg_body_builder',['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a8b0d864f297026952728c9bf5f90cb19',1,'ipc::transport::struc::Msg_mdt_out']]], + ['internal_5fmsg_5fbody_5freader_27',['Internal_msg_body_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a014dd91524d8b76aa9a36efe71eed415',1,'ipc::transport::struc::Msg_in_impl::Internal_msg_body_reader()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#afdc86a45b50e9869329b11a1e576b172',1,'ipc::transport::struc::Msg_in::Internal_msg_body_reader()']]], + ['internal_5fmsg_5fbody_5froot_28',['internal_msg_body_root',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a880fb3eb4b037c9a06d0a683feed660f',1,'ipc::transport::struc::Msg_in::internal_msg_body_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a1541fa2c6343cbcddf3feac9fcf67c46',1,'ipc::transport::struc::Msg_mdt_out::internal_msg_body_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a1a57abfeb8dc53f43d20cd0a8bb7def7',1,'ipc::transport::struc::Msg_in_impl::internal_msg_body_root()']]], + ['interrupt_5fallow_5fimpl_29',['interrupt_allow_impl',['../classipc_1_1transport_1_1Bipc__mq__handle.html#ac52aa9402e0f5d50babff7b06e5eaab3',1,'ipc::transport::Bipc_mq_handle']]], + ['interrupt_5fimpl_30',['interrupt_impl',['../classipc_1_1transport_1_1Posix__mq__handle.html#a98884af2e485268f92b3f5f7c1069291',1,'ipc::transport::Posix_mq_handle']]], + ['interrupt_5freceives_31',['interrupt_receives',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a84db01ec0b3dadaa7368df4fad8f8529',1,'ipc::transport::Bipc_mq_handle::interrupt_receives()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a206333d3eb619588d17812f8f49013a2',1,'ipc::transport::Persistent_mq_handle::interrupt_receives()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a02262faa0f53b5518db359b4e5968b47',1,'ipc::transport::Posix_mq_handle::interrupt_receives()']]], + ['interrupt_5fsends_32',['interrupt_sends',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a40a750e20cb4696cdb7dc6cdddc78b1a',1,'ipc::transport::Bipc_mq_handle::interrupt_sends()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#af7a883553df39b16047b49942bd734c0',1,'ipc::transport::Persistent_mq_handle::interrupt_sends()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a0afe8a636902116223b4f33f081119df',1,'ipc::transport::Posix_mq_handle::interrupt_sends()']]], + ['invoke_5fconn_5fon_5fdone_5ffunc_33',['invoke_conn_on_done_func',['../classipc_1_1session_1_1Client__session__impl.html#a428ae010a09aae1bac509e87fd927152',1,'ipc::session::Client_session_impl']]], + ['ipc_34',['ipc',['../namespaceipc.html',1,'']]], + ['ipc_5fkernel_5fpersistent_5frun_5fdir_35',['IPC_KERNEL_PERSISTENT_RUN_DIR',['../namespaceipc_1_1util.html#aaaa1fe31f8d77f78345dec8fc95e9882',1,'ipc::util']]], + ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3asession_3a_3aerror_3a_3acode_20_3e_36',['is_error_code_enum<::ipc::session::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html',1,'boost::system']]], + ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3asession_3a_3ashm_3a_3aarena_5flend_3a_3ajemalloc_3a_3aerror_3a_3acode_20_3e_37',['is_error_code_enum<::ipc::session::shm::arena_lend::jemalloc::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html',1,'boost::system']]], + ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3ashm_3a_3aclassic_3a_3aerror_3a_3acode_20_3e_38',['is_error_code_enum<::ipc::shm::classic::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html',1,'boost::system']]], + ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3atransport_3a_3aerror_3a_3acode_20_3e_39',['is_error_code_enum<::ipc::transport::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html',1,'boost::system']]], + ['is_5ferror_5fcode_5fenum_3c_3a_3aipc_3a_3atransport_3a_3astruc_3a_3aerror_3a_3acode_20_3e_40',['is_error_code_enum<::ipc::transport::struc::error::Code >',['../structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html',1,'boost::system']]], + ['is_5fhandle_5fin_5farena_41',['is_handle_in_arena',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#ad2d54cc87b56613bba32aabd2c52ef13',1,'ipc::shm::classic::Pool_arena']]], + ['is_5freceivable_42',['is_receivable',['../classipc_1_1transport_1_1Bipc__mq__handle.html#adade0e6deab4db302be7343d27568e8a',1,'ipc::transport::Bipc_mq_handle::is_receivable()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#acdf4279219020020b1d8b3ff8a80cbe2',1,'ipc::transport::Persistent_mq_handle::is_receivable()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a399bb25dbcfa06437b2f50abcc1500d1',1,'ipc::transport::Posix_mq_handle::is_receivable()']]], + ['is_5fsendable_43',['is_sendable',['../classipc_1_1transport_1_1Persistent__mq__handle.html#ab95e3d32a7ad3fa3630ba54442d8f2ee',1,'ipc::transport::Persistent_mq_handle::is_sendable()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a409b0d91e57c994341d900f840e75bb4',1,'ipc::transport::Posix_mq_handle::is_sendable()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#afa693699d1678040f6d22efbfaf657fe',1,'ipc::transport::Bipc_mq_handle::is_sendable()']]], + ['jemalloc_44',['jemalloc',['../namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html',1,'ipc::session::shm::arena_lend::jemalloc'],['../namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html',1,'ipc::transport::struc::shm::arena_lend::jemalloc']]], + ['local_5fns_45',['local_ns',['../namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html',1,'ipc::transport::asio_local_stream_socket']]], + ['session_46',['session',['../namespaceipc_1_1session.html',1,'ipc']]], + ['shm_47',['shm',['../namespaceipc_1_1session_1_1shm.html',1,'ipc::session::shm'],['../namespaceipc_1_1shm.html',1,'ipc::shm'],['../namespaceipc_1_1transport_1_1struc_1_1shm.html',1,'ipc::transport::struc::shm']]], + ['stl_48',['stl',['../namespaceipc_1_1shm_1_1stl.html',1,'ipc::shm']]], + ['struc_49',['struc',['../namespaceipc_1_1transport_1_1struc.html',1,'ipc::transport']]], + ['sync_5fio_50',['sync_io',['../namespaceipc_1_1session_1_1sync__io.html',1,'ipc::session::sync_io'],['../namespaceipc_1_1transport_1_1struc_1_1sync__io.html',1,'ipc::transport::struc::sync_io'],['../namespaceipc_1_1transport_1_1sync__io.html',1,'ipc::transport::sync_io'],['../namespaceipc_1_1util_1_1sync__io.html',1,'ipc::util::sync_io']]], + ['transport_51',['transport',['../namespaceipc_1_1transport.html',1,'ipc']]], + ['util_52',['util',['../namespaceipc_1_1util.html',1,'ipc']]] ]; diff --git a/doc/ipc_doc/generated/html_full/search/all_c.js b/doc/ipc_doc/generated/html_full/search/all_c.js index 8228e715f..1fc6fe1cc 100644 --- a/doc/ipc_doc/generated/html_full/search/all_c.js +++ b/doc/ipc_doc/generated/html_full/search/all_c.js @@ -1,15 +1,15 @@ var searchData= [ - ['m_5fabsolute_5fname_0',['m_absolute_name',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a35785c842d668ee13f556580d0045511',1,'ipc::transport::Native_socket_stream_acceptor::m_absolute_name()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a4ea460de8caacec0ac8f75dd93f6c548',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_absolute_name()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#add6affc3ee78f02c3a48a10115ec82ea',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_absolute_name()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#ade4351eeddc732c817af9a924780ba27',1,'ipc::transport::Bipc_mq_handle::m_absolute_name()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#ab6fae02d734897a9149a7b271a146f41',1,'ipc::transport::Posix_mq_handle::m_absolute_name()']]], + ['m_5fabsolute_5fname_0',['m_absolute_name',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#add6affc3ee78f02c3a48a10115ec82ea',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_absolute_name()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#ab6fae02d734897a9149a7b271a146f41',1,'ipc::transport::Posix_mq_handle::m_absolute_name()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#ade4351eeddc732c817af9a924780ba27',1,'ipc::transport::Bipc_mq_handle::m_absolute_name()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a35785c842d668ee13f556580d0045511',1,'ipc::transport::Native_socket_stream_acceptor::m_absolute_name()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a4ea460de8caacec0ac8f75dd93f6c548',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_absolute_name()']]], ['m_5facceptor_1',['m_acceptor',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a946663a2ab4070babdc80091f5adfb28',1,'ipc::transport::Native_socket_stream_acceptor']]], ['m_5fallowed_5fclient_5fapps_2',['m_allowed_client_apps',['../structipc_1_1session_1_1Server__app.html#a12df649b33893270afeac7240a571633',1,'ipc::session::Server_app']]], - ['m_5fapp_5fshm_3',['m_app_shm',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a5947156dd71df2c59346f0a85647d7f2',1,'ipc::session::shm::classic::Session_impl::m_app_shm()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html#aef219aa9de394a81e88e488775b22351',1,'ipc::session::shm::classic::Client_session_impl::m_app_shm()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html#a6029703c6907e5bb96641aa94cd5cfe1',1,'ipc::session::shm::arena_lend::jemalloc::Server_session_impl::m_app_shm()']]], + ['m_5fapp_5fshm_3',['m_app_shm',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session__impl.html#a6029703c6907e5bb96641aa94cd5cfe1',1,'ipc::session::shm::arena_lend::jemalloc::Server_session_impl::m_app_shm()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Client__session__impl.html#aef219aa9de394a81e88e488775b22351',1,'ipc::session::shm::classic::Client_session_impl::m_app_shm()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a5947156dd71df2c59346f0a85647d7f2',1,'ipc::session::shm::classic::Session_impl::m_app_shm()']]], ['m_5fapp_5fshm_5fby_5fname_4',['m_app_shm_by_name',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a820b0bbdc3b27961be178e572d9fb529',1,'ipc::session::shm::classic::Session_server::m_app_shm_by_name()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a288737a9a8301c166aa83a5f05315c2a',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_app_shm_by_name()']]], - ['m_5fapp_5fshm_5fmutex_5',['m_app_shm_mutex',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#acff88daea55dc583980576e06659324b',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_app_shm_mutex()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aac8485479a47f222c36d683a7d5d5f47',1,'ipc::session::shm::classic::Session_server::m_app_shm_mutex()']]], - ['m_5farena_6',['m_arena',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#aca2f1b980653da86d533243f174107f3',1,'ipc::transport::struc::shm::Builder::Config::m_arena()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a49b5e0642b5c1be67c79e55484ecb7b6',1,'ipc::transport::struc::shm::Capnp_message_builder::m_arena()']]], - ['m_5fasync_5fcleanup_5fworker_7',['m_async_cleanup_worker',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#a992fd889ad66447d938032e049dada11',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_async_cleanup_worker()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a37d900117341220d3f5b86b706dca47c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_async_cleanup_worker()']]], - ['m_5fasync_5fio_8',['m_async_io',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#acff016523b1b1cff00f6d44a47cc9426',1,'ipc::session::sync_io::Session_adapter::m_async_io()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#ab58ecf6547887fcbfbc7b46f1ed9ea08',1,'ipc::session::sync_io::Session_server_adapter::m_async_io()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a9788dc2f0f1b4f8f9285402df02523f4',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_async_io()']]], - ['m_5fasync_5fworker_9',['m_async_worker',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a5de1dea5af9f0ef5558e91ff6484e68d',1,'ipc::session::Session_base::Graceful_finisher::m_async_worker()'],['../classipc_1_1session_1_1Server__session__impl.html#a73419b3ccb6e3d028d8acc8f9f42e0ac',1,'ipc::session::Server_session_impl::m_async_worker()'],['../classipc_1_1session_1_1Client__session__impl.html#ac3039c565e1da99296dfb71255129201',1,'ipc::session::Client_session_impl::m_async_worker()']]], + ['m_5fapp_5fshm_5fmutex_5',['m_app_shm_mutex',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aac8485479a47f222c36d683a7d5d5f47',1,'ipc::session::shm::classic::Session_server::m_app_shm_mutex()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#acff88daea55dc583980576e06659324b',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_app_shm_mutex()']]], + ['m_5farena_6',['m_arena',['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a49b5e0642b5c1be67c79e55484ecb7b6',1,'ipc::transport::struc::shm::Capnp_message_builder::m_arena()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#aca2f1b980653da86d533243f174107f3',1,'ipc::transport::struc::shm::Builder::Config::m_arena()']]], + ['m_5fasync_5fcleanup_5fworker_7',['m_async_cleanup_worker',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a37d900117341220d3f5b86b706dca47c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_async_cleanup_worker()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#a992fd889ad66447d938032e049dada11',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_async_cleanup_worker()']]], + ['m_5fasync_5fio_8',['m_async_io',['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#ab58ecf6547887fcbfbc7b46f1ed9ea08',1,'ipc::session::sync_io::Session_server_adapter::m_async_io()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a9788dc2f0f1b4f8f9285402df02523f4',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_async_io()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#acff016523b1b1cff00f6d44a47cc9426',1,'ipc::session::sync_io::Session_adapter::m_async_io()']]], + ['m_5fasync_5fworker_9',['m_async_worker',['../classipc_1_1session_1_1Client__session__impl.html#ac3039c565e1da99296dfb71255129201',1,'ipc::session::Client_session_impl::m_async_worker()'],['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a5de1dea5af9f0ef5558e91ff6484e68d',1,'ipc::session::Session_base::Graceful_finisher::m_async_worker()'],['../classipc_1_1session_1_1Server__session__impl.html#a73419b3ccb6e3d028d8acc8f9f42e0ac',1,'ipc::session::Server_session_impl::m_async_worker()']]], ['m_5fatomic_5fowner_5fct_10',['m_atomic_owner_ct',['../structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html#aa801c3aa3c8f15945c5ac94936bd072d',1,'ipc::shm::classic::Pool_arena::Handle_in_shm']]], ['m_5fauto_5fping_5fperiod_11',['m_auto_ping_period',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a2c8029fdae05966ef05312919c85aeac',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], ['m_5fauto_5fping_5ftimer_12',['m_auto_ping_timer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a41bb316b2f9ca88371506ebed3890261',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], @@ -88,7 +88,7 @@ var searchData= ['m_5flog_5fpfx_85',['m_log_pfx',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a5dd1bf37b817a3ebbb968d34f0d240b1',1,'ipc::transport::sync_io::Async_adapter_receiver::m_log_pfx()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#aa6e0c8421b44bc49fff0c7cab706d18d',1,'ipc::transport::sync_io::Async_adapter_sender::m_log_pfx()']]], ['m_5flogger_5ffor_5fblobs_86',['m_logger_for_blobs',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#ae15044026ef19363177d474c6ac890bc',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], ['m_5flogger_5fptr_87',['m_logger_ptr',['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a8e16bef50eeda7c1af3b7caaa862fe73',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html#a7c2548263f04d8c37b846b534a874917',1,'ipc::transport::struc::Heap_reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html#ab818ec0d61c6c797f27222acc5fc0038',1,'ipc::transport::struc::Struct_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html#aee7630fa3413e39c1cec5f544ca0d8fe',1,'ipc::transport::struc::Struct_reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#a4c287783d239663193a681aad8690dd4',1,'ipc::transport::struc::shm::Builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#ad6bac9489c95df6c13a36d467ac1f6aa',1,'ipc::transport::struc::shm::Reader::Config::m_logger_ptr()']]], - ['m_5fmaster_5fchannel_88',['m_master_channel',['../classipc_1_1session_1_1Client__session__impl.html#a3acf3432c3806476fc20e951d0790949',1,'ipc::session::Client_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a8dd106d9ac3223737dac58d0b056367b',1,'ipc::session::Session_base::Graceful_finisher::m_master_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a81eb6769bc75d900bb3c442047249503',1,'ipc::session::Server_session_impl::m_master_channel()']]], + ['m_5fmaster_5fchannel_88',['m_master_channel',['../classipc_1_1session_1_1Client__session__impl.html#a3acf3432c3806476fc20e951d0790949',1,'ipc::session::Client_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a81eb6769bc75d900bb3c442047249503',1,'ipc::session::Server_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a8dd106d9ac3223737dac58d0b056367b',1,'ipc::session::Session_base::Graceful_finisher::m_master_channel()']]], ['m_5fmaster_5fsock_5facceptor_89',['m_master_sock_acceptor',['../structipc_1_1session_1_1Session__server__impl_1_1State.html#a7d717bece2122ff619496717b5da7b68',1,'ipc::session::Session_server_impl::State']]], ['m_5fmaster_5fsock_5fstm_90',['m_master_sock_stm',['../classipc_1_1session_1_1Server__session__impl.html#a9be157fe8791e7be2dd43bd06480d3eb',1,'ipc::session::Server_session_impl']]], ['m_5fmdt_5fbuilder_91',['m_mdt_builder',['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#aa1a85c280c8144f3dfd4ba069de2eb0a',1,'ipc::session::Server_session_impl::Open_channel_req::m_mdt_builder()'],['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a91c936c8824be5dfc7112a5b02fc730d',1,'ipc::session::Client_session_impl::Master_channel_req::m_mdt_builder()']]], @@ -96,8 +96,8 @@ var searchData= ['m_5fmdt_5freader_93',['m_mdt_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a6fd10709650b97357f05bf9cf402c10e',1,'ipc::transport::struc::Msg_in']]], ['m_5fmdt_5freader_5fptr_94',['m_mdt_reader_ptr',['../structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html#a5868da8b3a718d43af3d3b7a5c611cd8',1,'ipc::session::sync_io::Session_adapter::Channel_open_result']]], ['m_5fmdt_5froot_95',['m_mdt_root',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a198052c9afc3f0f2727dd38214169b2b',1,'ipc::transport::struc::Msg_in']]], - ['m_5fmq_96',['m_mq',['../classipc_1_1transport_1_1Posix__mq__handle.html#ae9465f6fe5c2d36bcbe747fe1bf8d995',1,'ipc::transport::Posix_mq_handle::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a32a49dff090ce4b658707e7d9b9036c9',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a152b99bc327c774553e9b90a5f0bc4d3',1,'ipc::transport::Bipc_mq_handle::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ae71fa0a5594915910b0b8dd88743f62e',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq()']]], - ['m_5fmq_5fmax_5fmsg_5fsz_97',['m_mq_max_msg_sz',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a25ec1b85b46e3b9ad9a4fe59bc158f45',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_max_msg_sz()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a3a69e00d989a53f1151c64b58560551f',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_max_msg_sz()']]], + ['m_5fmq_96',['m_mq',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ae71fa0a5594915910b0b8dd88743f62e',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#ae9465f6fe5c2d36bcbe747fe1bf8d995',1,'ipc::transport::Posix_mq_handle::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a32a49dff090ce4b658707e7d9b9036c9',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a152b99bc327c774553e9b90a5f0bc4d3',1,'ipc::transport::Bipc_mq_handle::m_mq()']]], + ['m_5fmq_5fmax_5fmsg_5fsz_97',['m_mq_max_msg_sz',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a3a69e00d989a53f1151c64b58560551f',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_max_msg_sz()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a25ec1b85b46e3b9ad9a4fe59bc158f45',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_max_msg_sz()']]], ['m_5fmq_5fready_5freader_98',['m_mq_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af742578435fde1d0c536196698ddbc75',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_ready_reader()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a63f5f55ad38aecc5195a93bccaf23014',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_ready_reader()']]], ['m_5fmq_5fready_5fwriter_99',['m_mq_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac181b33a0b5cdb0e89753b62d86af50f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_ready_writer()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a72c3901ca66a8d94aa22c83118aedbdd',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_ready_writer()']]], ['m_5fmutex_100',['m_mutex',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a113a43c175209f7e3293f75ab4bcd794',1,'ipc::transport::sync_io::Async_adapter_receiver::m_mutex()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a801d13765438ce9f2963cf59981cd7c0',1,'ipc::transport::sync_io::Async_adapter_sender::m_mutex()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a01c90903e715ebcf64d8b5ea0d114bc0',1,'ipc::transport::struc::Channel::m_mutex()'],['../structipc_1_1session_1_1Session__server__impl_1_1State.html#a96b5d124c1a31532a38a0f0cd095ec05',1,'ipc::session::Session_server_impl::State::m_mutex()']]], @@ -123,161 +123,162 @@ var searchData= ['m_5fopened_5fchannel_120',['m_opened_channel',['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#af46d9d419a695676703311def193044d',1,'ipc::session::Server_session_impl::Open_channel_req']]], ['m_5fopposing_5fsession_5fdone_121',['m_opposing_session_done',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#ab1548d77913d3e99e4f30e1dd46f8d86',1,'ipc::session::Session_base::Graceful_finisher']]], ['m_5fpeer_5fsocket_122',['m_peer_socket',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a42aab631e9c70bfaa53764309adfe37c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fpeer_5fsocket_5fmutex_123',['m_peer_socket_mutex',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abc7d2b14208ed2b8c0add0c26f7fbf27',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fpeer_5fstate_5ferr_5fcode_5for_5fok_124',['m_peer_state_err_code_or_ok',['../classipc_1_1session_1_1Session__base.html#a0d7926326671d05679c53e5e3991603e',1,'ipc::session::Session_base']]], - ['m_5fpending_5ferr_5fcode_125',['m_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a415d72c8ed4bed42fc84bf46f716742a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_pending_err_code()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#affd27be454f2e394f44fc76a5a4c50de',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_pending_err_code()']]], - ['m_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_126',['m_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a48689f6fbe1a1d4df3285736326b18f4',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], - ['m_5fpending_5fpayloads_5fq_127',['m_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#aaecb4615ae4d9fbf82ab2c195ada47cf',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], - ['m_5fpending_5fresults_5fq_128',['m_pending_results_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#ac04049d9b4c38f2a46d7f26192b17b69',1,'ipc::transport::Native_socket_stream_acceptor']]], - ['m_5fpending_5fuser_5frequests_5fq_129',['m_pending_user_requests_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a5d2e731d023d9c6465e01fa84a6e5138',1,'ipc::transport::Native_socket_stream_acceptor::m_pending_user_requests_q()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a13a636ca275a188bd3727e2d7c247f0e',1,'ipc::transport::sync_io::Async_adapter_receiver::m_pending_user_requests_q()']]], - ['m_5fper_5fapp_5fsetup_5ffunc_130',['m_per_app_setup_func',['../classipc_1_1session_1_1Session__server__impl.html#adc97c8fd3c5860dc6164f0a384b9fe03',1,'ipc::session::Session_server_impl']]], - ['m_5fpermissions_5flevel_5ffor_5fclient_5fapps_131',['m_permissions_level_for_client_apps',['../structipc_1_1session_1_1Server__app.html#abdcd9e8b0287f914496d45a99848be44',1,'ipc::session::Server_app']]], - ['m_5fphase_132',['m_phase',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#afca9a3012b2f41d635381a5a13ddd7c1',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fphase_5flog_5fin_5fstarted_133',['m_phase_log_in_started',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa14373afb4601567d1640f7b0b3faa45',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fpool_134',['m_pool',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a3a16fc7903eca88464d50fdf2873e37f',1,'ipc::shm::classic::Pool_arena']]], - ['m_5fpool_5fname_135',['m_pool_name',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a71009bb725b4cd68bea4ac99fa81ee2e',1,'ipc::shm::classic::Pool_arena']]], - ['m_5fpool_5fsize_5flimit_5fmi_136',['m_pool_size_limit_mi',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#ae86848eb54eac26e276cee29a0eb030a',1,'ipc::session::shm::classic::Session_server']]], - ['m_5fpre_5finit_5ferr_5fcode_137',['m_pre_init_err_code',['../classipc_1_1session_1_1Server__session__impl.html#ad9f6932719c1565191da73bfa4a3923f',1,'ipc::session::Server_session_impl']]], - ['m_5fproto_5fneg_5fblob_138',['m_proto_neg_blob',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a56c1f9cdcfd2a145114ab080199eb704',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fproto_5fneg_5ferr_5fcode_5for_5fok_139',['m_proto_neg_err_code_or_ok',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a515bbf752a9021ba8e0cec34d30f24b9',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fproto_5fneg_5fhndl_140',['m_proto_neg_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a83b9a3a7ddee7b6bfe14724bfccfc6ba',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fproto_5fneg_5freader_5fin_141',['m_proto_neg_reader_in',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a58b72930ddbf7e45936f8c8f34105324',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fprotocol_5fnegotiator_142',['m_protocol_negotiator',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aeec08979b985498aa0738892c947a8a9',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a28485fe8e4fbeea78f05eadc69a31c20',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a393316703a666a9b022f2b879337b920',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aad25fed4c22117bf07c45240f790d306',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator()'],['../classipc_1_1session_1_1Client__session__impl.html#ab55fdca2097f5444f35efc97a8af326b',1,'ipc::session::Client_session_impl::m_protocol_negotiator()'],['../classipc_1_1session_1_1Server__session__impl.html#aeca3e83ea5e99271ba928550ea4fb2d4',1,'ipc::session::Server_session_impl::m_protocol_negotiator()']]], - ['m_5fprotocol_5fnegotiator_5faux_143',['m_protocol_negotiator_aux',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9d7fc428bc293e993fe96428c44bfb4c',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Client__session__impl.html#a3c53046a113fcf1ba4c857e8d4c2fbbd',1,'ipc::session::Client_session_impl::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Server__session__impl.html#a891c082930a837694606aff30c7026ed',1,'ipc::session::Server_session_impl::m_protocol_negotiator_aux()']]], - ['m_5fraw_5fname_144',['m_raw_name',['../classipc_1_1util_1_1Shared__name.html#a4ebeee7fd046ca6ad405af6183dfb790',1,'ipc::util::Shared_name']]], - ['m_5frcv_5fev_5fwait_5ffunc_145',['m_rcv_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a5e1051f460cddb73d3cbc48afbac18a9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fev_5fwait_5fhndl_5fidle_5ftimer_5ffired_5fpeer_146',['m_rcv_ev_wait_hndl_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3540ba657d9d7c95e755d1b348c88b8f',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fexpecting_5fmsg_5fmap_147',['m_rcv_expecting_msg_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a072fb8667ba55ff69230fd48d400ee88',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fexpecting_5fresponse_5fmap_148',['m_rcv_expecting_response_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#abf9a2118d887439717e17d0515be3e43',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fidle_5ftimeout_149',['m_rcv_idle_timeout',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ada7f2368dc0591f7a903946201c83636',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fidle_5ftimer_150',['m_rcv_idle_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab65c4574a9a084030a9a66a8340c94b2',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fidle_5ftimer_5ffired_5fpeer_151',['m_rcv_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#aa94400dd47704098beffe37b07b75472',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fmsg_5fnext_5fid_152',['m_rcv_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a26d39d4e1e2c304ef803b3721bde86f0',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fpending_5ferr_5fcode_153',['m_rcv_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab824da16816893b2ffe2e778a7169b62',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fpending_5fmsgs_154',['m_rcv_pending_msgs',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ae9f5a798718d98523342acf55400d628',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fpipes_155',['m_rcv_pipes',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9c04f15d4d17cd43aca70136119e1d28',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5freassembly_5fq_156',['m_rcv_reassembly_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1218e59c91d08758cd997d77913abd5a',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fsync_5fio_5fadapter_157',['m_rcv_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a9d006ccbd86681405447a5f2033ad2ca',1,'ipc::transport::Native_socket_stream::Impl']]], - ['m_5frcv_5ftarget_5fmeta_5flength_158',['m_rcv_target_meta_length',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a6676379057415274d2c6f2f096828cf9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fuser_5frequest_159',['m_rcv_user_request',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a9098de978da64572c419019597274d68',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5freader_5fconfig_160',['m_reader_config',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a7ebd1458417e3ffea3220424aacced9c',1,'ipc::transport::struc::Msg_in']]], - ['m_5fready_5freader_161',['m_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a80ab7afeab9753497d92a0af1f3f9610',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_reader()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a439be095b518a57efbbca079d6b05f59',1,'ipc::session::sync_io::Session_server_adapter::m_ready_reader()']]], - ['m_5fready_5freader_5fchan_162',['m_ready_reader_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a95ca5ad4d856f3921b9e0b3accf7b618',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5freader_5ferr_163',['m_ready_reader_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a6ea8f9f021af50050dbb88bd14978e24',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5fwriter_164',['m_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#ada90b100aa98cd6ca5853d88f2fff993',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_writer()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a19f346f8827932b4cfcfe525a7d039a0',1,'ipc::session::sync_io::Session_server_adapter::m_ready_writer()']]], - ['m_5fready_5fwriter_5fchan_165',['m_ready_writer_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#aef11d364d6df923acff043cd7b3bee1d',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5fwriter_5ferr_166',['m_ready_writer_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a22c47810c9273ce7f86b85f51c474b9f',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5freq_5fmsg_167',['m_req_msg',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a8cab22f0afe897330ad77a2bc2b536b7',1,'ipc::session::Client_session_impl::Master_channel_req::m_req_msg()'],['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#a522e6691e46f956648c64877b64d6219',1,'ipc::session::Server_session_impl::Open_channel_req::m_req_msg()']]], - ['m_5fresult_5fif_5fany_168',['m_result_if_any',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html#ac8c083b7c861d00e2f987a017fbe994e',1,'ipc::transport::struc::Channel::Sync_op_state']]], - ['m_5frsp_169',['m_rsp',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html#a2c7cde843910f748296c2c9ec406d99b',1,'ipc::transport::struc::Channel::Sync_op_state::Request_result']]], - ['m_5fsegment_5fsz_170',['m_segment_sz',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#af012d6917cdc16494a22b4b6f2c10edd',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_segment_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a9e759098107b22d8e40238eeb74c7f0b',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#afa719b263e06eb7359b948a36f251485',1,'ipc::transport::struc::Heap_fixed_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a89d5dac6078a1a2c184e2239810b5480',1,'ipc::transport::struc::shm::Capnp_message_builder::m_segment_sz()']]], - ['m_5fserialization_5fsegments_171',['m_serialization_segments',['../classipc_1_1transport_1_1struc_1_1Heap__reader.html#a86d1fba98bf24c390587893c61174111',1,'ipc::transport::struc::Heap_reader::m_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a98472f1e376123f6d98297f5c61ebc76',1,'ipc::transport::struc::shm::Capnp_message_builder::m_serialization_segments()']]], - ['m_5fserialization_5fsegments_5fplus_5fframe_5fspace_172',['m_serialization_segments_plus_frame_space',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#aad029fd4e08580a785824c48790c748f',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], - ['m_5fsession_173',['m_session',['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#a3636cf0176e444342f4e178fbec94fa0',1,'ipc::transport::struc::shm::Reader::Config::m_session()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#af9f19bfd2d275b3770a3c978ae451c31',1,'ipc::transport::struc::shm::Reader::m_session()']]], - ['m_5fsession_5fshm_174',['m_session_shm',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a3b7b7eb37270320a495a26303aaed2c7',1,'ipc::session::shm::classic::Session_impl::m_session_shm()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a830c19b190c29b9bb326b0790e11976c',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::m_session_shm()']]], - ['m_5fsession_5ftoken_175',['m_session_token',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aa4c99d20d237670ba77769e721891b4b',1,'ipc::transport::struc::Msg_in::m_session_token()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a49e257338f9b20fd70c42142eb2db4f0',1,'ipc::transport::struc::sync_io::Channel::m_session_token()']]], - ['m_5fshm_5farena_5fpool_5flistener_176',['m_shm_arena_pool_listener',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#ad1cf86692c17aa00fb175996d825f11f',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_shm_arena_pool_listener()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aea3beac7c650fb100748a1f768e14d5e',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_shm_arena_pool_listener()']]], - ['m_5fshm_5fchannel_177',['m_shm_channel',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a264175697b8e32e732bee46790ab3c67',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], - ['m_5fshm_5fpool_5fnames_178',['m_shm_pool_names',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#af4d3de8bd66de27bf740ba3eeb1d988f',1,'ipc::session::shm::classic::Session_server']]], - ['m_5fshm_5fsession_179',['m_shm_session',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a49b633551f139e19999c0d4b060dc65b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], - ['m_5fsignal_5fpipe_5freaders_180',['m_signal_pipe_readers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#afafdfa9e2c522cd3e12b4f1915f83b56',1,'ipc::util::sync_io::Timer_event_emitter']]], - ['m_5fsignal_5fpipe_5fwriters_181',['m_signal_pipe_writers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ac2e6652bed4a80239d57a7fad2bab47c',1,'ipc::util::sync_io::Timer_event_emitter']]], - ['m_5fsnd_5fauto_5fping_5fperiod_182',['m_snd_auto_ping_period',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a4cb5d8ce6fa402c2cbaf27ec9654277c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fauto_5fping_5ftimer_183',['m_snd_auto_ping_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a311a0641a1da83530311e16845105c2c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fauto_5fping_5ftimer_5ffired_5fpeer_184',['m_snd_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3116d5b66bf35bec158905bbde4f6854',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fend_5fsending_5fon_5fdone_5ffunc_5for_5fempty_185',['m_snd_end_sending_on_done_func_or_empty',['../classipc_1_1transport_1_1struc_1_1Channel.html#a5e905a57052ba370d8d2f45a361982d8',1,'ipc::transport::struc::Channel']]], - ['m_5fsnd_5fev_5fwait_5ffunc_186',['m_snd_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abd4d8d43776c3956c6896ca721e95dab',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fev_5fwait_5fhndl_5fauto_5fping_5ftimer_5ffired_5fpeer_187',['m_snd_ev_wait_hndl_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a459618a64d769ba8798a6380e9292181',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5ffinished_188',['m_snd_finished',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#acfefc83c990b1b6cd903f5ad323e5dfa',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fmsg_5fnext_5fid_189',['m_snd_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a5132d96a55a628a7830c19c630390582',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsnd_5fpending_5ferr_5fcode_190',['m_snd_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a0257a7903bff120aa1523f8de04bccf7',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_191',['m_snd_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a92372b2da3a4bdccda23b27b2865f01d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fpending_5fpayloads_5fq_192',['m_snd_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1af9eb83b9afee25ba153a2ca066858d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fsync_5fio_5fadapter_193',['m_snd_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad4689db8dfd0be14695e93d8760b23ed',1,'ipc::transport::Native_socket_stream::Impl']]], - ['m_5fsrv_5fapp_5fref_194',['m_srv_app_ref',['../classipc_1_1session_1_1Session__base.html#afd32d90b86d699263a0f02637dd7c6c6',1,'ipc::session::Session_base::m_srv_app_ref()'],['../classipc_1_1session_1_1Session__server__impl.html#a7be0cca184cdba62b9748e0ca37b8b17',1,'ipc::session::Session_server_impl::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a58684b85b4cfe6c4095bc56f2700ec27',1,'ipc::session::shm::classic::Session_server::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a39dc0e5a46a40b15c50d51b4929bac3c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_app_ref()']]], - ['m_5fsrv_5fnamespace_195',['m_srv_namespace',['../classipc_1_1session_1_1Session__base.html#a60a30526bad0c8db6ad05ede618a22bd',1,'ipc::session::Session_base::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a1034bc43eb088ede11111b97f79aff96',1,'ipc::session::shm::classic::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aaeb9c251968732f0f44dcde64abdb8bb',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_namespace()']]], - ['m_5fstarted_5fops_196',['m_started_ops',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9a63c3620852f2354fe145364a73c688',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstate_197',['m_state',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a64e47a38b3ed59e37295336114918142',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_state()'],['../classipc_1_1session_1_1Client__session__impl.html#a3a5f5102020adace1e898d977e929908',1,'ipc::session::Client_session_impl::m_state()'],['../classipc_1_1session_1_1Session__server__impl.html#ac49be718ad86c3919563da57502d11b3',1,'ipc::session::Session_server_impl::m_state()']]], - ['m_5fstruct_5fbuilder_5fconfig_198',['m_struct_builder_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a47816a05b0af2d8b5c26ecaf01b89b1f',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstruct_5flender_5fsession_199',['m_struct_lender_session',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa4cd0e7c721ee3af4d1faa2ada5ad646',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstruct_5freader_5fconfig_200',['m_struct_reader_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#af7ac60b2b7a7baf26a96cf4635d4c320',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsync_5fio_201',['m_sync_io',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a2983ca0b49dd550d29f24534ab4e9574',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#ad0d9321e04c451b8c087d4e672ecaa94',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a8e3d15efe152af3d5de7bed2a094b885',1,'ipc::transport::Native_socket_stream::Impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#af07534b8b9beb4e47b1af513d82d7460',1,'ipc::transport::sync_io::Async_adapter_receiver::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a9bc681f5ac954b2ce9e1c62545c6796f',1,'ipc::transport::sync_io::Async_adapter_sender::m_sync_io()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#aefee55a9e754a63ce52766d6c65df92c',1,'ipc::transport::struc::Channel::m_sync_io()']]], - ['m_5fsync_5fio_5fadapter_202',['m_sync_io_adapter',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a940f3f6b3f770cd51ea3052f3136a94e',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io_adapter()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a44fb72c110d737656c6cd7ecee2c6472',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io_adapter()']]], - ['m_5fsync_5fio_5fhandlers_203',['m_sync_io_handlers',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2c0013237f845e5589cf0063886c7431',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsync_5fop_5fstate_204',['m_sync_op_state',['../classipc_1_1transport_1_1struc_1_1Channel.html#ab40d8133d53135bcc41a12cc27fc8e13',1,'ipc::transport::struc::Channel']]], - ['m_5fsync_5fop_5fstate_5fid_205',['m_sync_op_state_id',['../classipc_1_1transport_1_1struc_1_1Channel.html#abb0ed2e666191dd85e543072077bf38b',1,'ipc::transport::struc::Channel']]], - ['m_5ftarget_5fblob_206',['m_target_blob',['../structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html#aabc02495e840cdd6fe0e5bfa31b33509',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::User_request::m_target_blob()'],['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#af73c6fcead6a866df1524e01b5654222',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe::m_target_blob()']]], - ['m_5ftarget_5fchannel_5fopen_5fq_207',['m_target_channel_open_q',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad26ef2d688edc711821951d00101ccae',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fchannel_5fopen_5fq_5fmutex_208',['m_target_channel_open_q_mutex',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a7212b0336f96d32d6ab36ef43e16135a',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fcontrol_5fblob_209',['m_target_control_blob',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af308d3f1ff50138070c8422552f069a5',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], - ['m_5ftarget_5ferr_5fcode_210',['m_target_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#acbb3682fbd1502d4fa3952133d956547',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_target_err_code()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a57e1e2ca43f06bd1aa9658c855b1666b',1,'ipc::session::sync_io::Session_server_adapter::m_target_err_code()']]], - ['m_5ftarget_5ferr_5fcode_5ferr_211',['m_target_err_code_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a698532c47d2962e7e60dc804ac5c4e53',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fhndl_212',['m_target_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#ad27cbaa9b01823f31fb2ae47835974df',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5ftarget_5fhndl_5fptr_213',['m_target_hndl_ptr',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a2d0ba069841a0d43bb5c173f9b4ea0b5',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_hndl_ptr()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#ae8094bf28837a5ff2f5794222114d3b7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_hndl_ptr()']]], - ['m_5ftarget_5fmeta_5fblob_214',['m_target_meta_blob',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a8071b7e47453d21bd86665c15af7949d',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_meta_blob()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#a589c41dcf6cf1622c8df6a02e1f7497b',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_meta_blob()']]], - ['m_5ftarget_5fpeer_215',['m_target_peer',['../structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html#a8c8eae7aa61cb5e00f2af65aa08daa26',1,'ipc::transport::Native_socket_stream_acceptor::User_request']]], - ['m_5fthis_5fsession_216',['m_this_session',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#acb037930b23240ecf8975e65f50f3927',1,'ipc::session::Session_base::Graceful_finisher']]], - ['m_5fthis_5fsession_5fsrv_217',['m_this_session_srv',['../classipc_1_1session_1_1Session__server__impl.html#aa7aed6de161203a2e7414411fa1defa5',1,'ipc::session::Session_server_impl']]], - ['m_5ftimer_5fworker_218',['m_timer_worker',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aae2ee292cd7b9742b32e68dfd84d8361',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab8bae935aff314b88d6163d04f52b5eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a54c3fdde2cf99fda314ee3387f70a02e',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_timer_worker()']]], - ['m_5ftop_5fbuilder_5fframe_5fpostfix_5fsz_219',['m_top_builder_frame_postfix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ae30cd8f4721bccd20ef5f195c332a960',1,'ipc::transport::struc::shm::Builder::Config']]], - ['m_5ftop_5fbuilder_5fframe_5fprefix_5fsz_220',['m_top_builder_frame_prefix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ab850e04c8a411941c75b74e7c6eccb36',1,'ipc::transport::struc::shm::Builder::Config']]], - ['m_5ftop_5fengine_221',['m_top_engine',['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a3283aa7dc43b3851b94ff65f1f01d5e1',1,'ipc::transport::struc::shm::Builder::m_top_engine()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#a1edc9404d82d1fe78fd4a892d5dac22c',1,'ipc::transport::struc::shm::Reader::m_top_engine()']]], - ['m_5fuse_5fcount_222',['m_use_count',['../classipc_1_1util_1_1Use__counted__object.html#a9321c72f51d22da1ee041f29de5e9b43',1,'ipc::util::Use_counted_object']]], - ['m_5fuser_5fid_223',['m_user_id',['../structipc_1_1session_1_1App.html#a9e32297579603f2d96616976474d0246',1,'ipc::session::App']]], - ['m_5fuser_5frequest_224',['m_user_request',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a76d81cb59e1b91c7f379064dd285aa93',1,'ipc::transport::sync_io::Async_adapter_receiver::m_user_request()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a819d349f5cafcba88f3dff63968d74b0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_user_request()']]], - ['m_5fval_225',['m_val',['../classipc_1_1util_1_1Process__credentials.html#a5e9f0979d5b61f4d4557d1e338871b2f',1,'ipc::util::Process_credentials']]], - ['m_5fworker_226',['m_worker',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a58f99e84ff87dd50fc7741d933a23fd5',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_worker()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#aa83abf9a9c9b6bb1f77ac9c611f20620',1,'ipc::transport::Blob_stream_mq_sender_impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a4a7ab0a981614724b559b38634634d8a',1,'ipc::transport::Native_socket_stream::Impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a2d397e09f2cfa198313ff5c31334080b',1,'ipc::transport::Native_socket_stream_acceptor::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a0df3c0d0291cb4d3ea7fbd8214a12cb8',1,'ipc::transport::sync_io::Async_adapter_receiver::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a98cf53ba1f6abee1c3d3a4dd7533232d',1,'ipc::transport::sync_io::Async_adapter_sender::m_worker()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ad17e799f7c36c4c0cbc858637377f456',1,'ipc::util::sync_io::Timer_event_emitter::m_worker()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a2184077da7828589d20d7f92a31a6394',1,'ipc::transport::struc::Channel::m_worker()']]], - ['make_5fchannel_5fmqs_227',['make_channel_mqs',['../classipc_1_1session_1_1Server__session__impl.html#a84d54a57d3e06c064cde737d1f4be472',1,'ipc::session::Server_session_impl']]], - ['make_5ferror_5fcode_228',['make_error_code',['../namespaceipc_1_1transport_1_1error.html#aa825718d46992654588588b09a0f1be6',1,'ipc::transport::error::make_error_code()'],['../namespaceipc_1_1transport_1_1struc_1_1error.html#a6ff229c55381b37a1ad8eeb92574c5b4',1,'ipc::transport::struc::error::make_error_code()'],['../namespaceipc_1_1session_1_1error.html#a9056f277d3ebf2778d06a2bb1f337c28',1,'ipc::session::error::make_error_code()'],['../namespaceipc_1_1shm_1_1classic_1_1error.html#a1912c719fef62337844569554ac02050',1,'ipc::shm::classic::error::make_error_code()'],['../namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html#a497c3dfeca665afc16709df5f088f008',1,'ipc::session::shm::arena_lend::jemalloc::error::make_error_code()']]], - ['master_5fchannel_229',['master_channel',['../classipc_1_1session_1_1Server__session__impl.html#a14d68714c197ba58b4cb485262fb9d51',1,'ipc::session::Server_session_impl']]], - ['master_5fchannel_5fconst_230',['master_channel_const',['../classipc_1_1session_1_1Client__session__impl.html#a5f156b23ce19cd878c3e83330e63f56f',1,'ipc::session::Client_session_impl::master_channel_const()'],['../classipc_1_1session_1_1Server__session__impl.html#aaa570a2ceb242370eeccca85d806fbbf',1,'ipc::session::Server_session_impl::master_channel_const()']]], - ['master_5fchannel_5freq_231',['Master_channel_req',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html',1,'ipc::session::Client_session_impl']]], - ['master_5fchannel_5freq_5fptr_232',['Master_channel_req_ptr',['../classipc_1_1session_1_1Client__session__impl.html#abe6c733821534ec020b7cec02cfc3e66',1,'ipc::session::Client_session_impl']]], - ['master_5fset_233',['Master_set',['../structipc_1_1session_1_1Server__app.html#a1fc9e403e3b5c89a4cd328da829590a4',1,'ipc::session::Server_app::Master_set()'],['../structipc_1_1session_1_1App.html#af7527bc1ad0cde62cd4fde97bc1d7ecc',1,'ipc::session::App::Master_set()'],['../structipc_1_1session_1_1Client__app.html#add718cbf6aa1d2abb26fbadcc974a7bd',1,'ipc::session::Client_app::Master_set()']]], - ['master_5fstructured_5fchannel_234',['Master_structured_channel',['../classipc_1_1session_1_1Session__base.html#a26d038e14e3c0e461e76de88c4ce76c5',1,'ipc::session::Session_base::Master_structured_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a3bc90eb872c3f4d4ff65039a4a36b166',1,'ipc::session::Server_session_impl::Master_structured_channel()'],['../classipc_1_1session_1_1Client__session__impl.html#a4c62a381340b0f494c4f117960bfca2b',1,'ipc::session::Client_session_impl::Master_structured_channel()']]], - ['master_5fstructured_5fchannel_5fobserver_235',['Master_structured_channel_observer',['../classipc_1_1session_1_1Session__base.html#ae2a123b29dd044a638e94d1f294c8f28',1,'ipc::session::Session_base::Master_structured_channel_observer()'],['../classipc_1_1session_1_1Client__session__impl.html#a6a1cb9c344c312b4eff5c360d7114e2c',1,'ipc::session::Client_session_impl::Master_structured_channel_observer()']]], - ['master_5fstructured_5fchannel_5fptr_236',['Master_structured_channel_ptr',['../classipc_1_1session_1_1Session__base.html#af0ca2a01d7d0d92038aae56fc1cdd505',1,'ipc::session::Session_base::Master_structured_channel_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#ab6cfad1c0be9815dc5411cd20c131213',1,'ipc::session::Server_session_impl::Master_structured_channel_ptr()'],['../classipc_1_1session_1_1Client__session__impl.html#ad432ab4e95ddcfd0396d5ea821dec15c',1,'ipc::session::Client_session_impl::Master_structured_channel_ptr()']]], - ['max_5fmsg_5fsize_237',['max_msg_size',['../classipc_1_1transport_1_1Bipc__mq__handle.html#ad8ef88d8e0a59b770c9d15d008b52a4b',1,'ipc::transport::Bipc_mq_handle::max_msg_size()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#ae2efe92707c53c46bc70b84f96bda217',1,'ipc::transport::Persistent_mq_handle::max_msg_size()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a412e7c922909eeb5707bb0abe6e27a76',1,'ipc::transport::Posix_mq_handle::max_msg_size()']]], - ['max_5fn_5fmsgs_238',['max_n_msgs',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a9f3318676f5e687f791088484d1bbef8',1,'ipc::transport::Bipc_mq_handle::max_n_msgs()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a22575a5750d322ccf87a923a3d662756',1,'ipc::transport::Persistent_mq_handle::max_n_msgs()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a514dbdda12ec70ea1ff65abfa6237ce2',1,'ipc::transport::Posix_mq_handle::max_n_msgs()']]], - ['mdt_239',['Mdt',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aad2c43c92a286ab7d186d810631a1701',1,'ipc::transport::struc::Msg_in']]], - ['mdt_5fbuilder_240',['mdt_builder',['../classipc_1_1session_1_1Server__session__impl.html#a138956765a655240080491157f316167',1,'ipc::session::Server_session_impl']]], - ['mdt_5fbuilder_241',['Mdt_builder',['../classipc_1_1session_1_1Server__session__impl.html#a7134fc9c4d26ba1fbc8e5da266d970e5',1,'ipc::session::Server_session_impl::Mdt_builder()'],['../classipc_1_1session_1_1Session__base.html#a7d68bbb8c0c09983619d563bca30bd45',1,'ipc::session::Session_base::Mdt_builder()'],['../classipc_1_1session_1_1Session.html#ac3f52804db8ecf1d0dc0d0bbdf97e062',1,'ipc::session::Session::Mdt_builder()'],['../classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88',1,'ipc::session::Session_mv::Mdt_builder()'],['../classipc_1_1session_1_1Session__server.html#a86e894429b8568458aa20f3ba814434d',1,'ipc::session::Session_server::Mdt_builder()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a81f60d9c8af965468c0887a2af4e2823',1,'ipc::session::shm::classic::Session_server::Mdt_builder()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ae0a96fec25d9deea4000ddf72046f379',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mdt_builder()']]], - ['mdt_5fbuilder_242',['mdt_builder',['../classipc_1_1session_1_1Client__session__mv.html#aba3aa4758c635339289d66be45df343b',1,'ipc::session::Client_session_mv::mdt_builder()'],['../classipc_1_1session_1_1Client__session__impl.html#a7ecad909e1013271ff365437f2fdae85',1,'ipc::session::Client_session_impl::mdt_builder() const']]], - ['mdt_5fbuilder_243',['Mdt_builder',['../classipc_1_1session_1_1Client__session__impl.html#ad5a3539f5e10933ff4abc7cde1056798',1,'ipc::session::Client_session_impl']]], - ['mdt_5fbuilder_244',['mdt_builder',['../classipc_1_1session_1_1Session.html#a420df732069ded1feef423adf7a30915',1,'ipc::session::Session::mdt_builder()'],['../classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3',1,'ipc::session::Session_mv::mdt_builder()']]], - ['mdt_5fbuilder_5fptr_245',['Mdt_builder_ptr',['../classipc_1_1session_1_1Client__session__impl.html#a9d93e6080abf3b0827b97e084f5e8356',1,'ipc::session::Client_session_impl::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#ac4bc7e38574e0495af4887d2e6226b7a',1,'ipc::session::Server_session_impl::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session__base.html#a4a7a5b83f6ba8bd505685636eabc012b',1,'ipc::session::Session_base::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session.html#a2ee877327fded2c2b1978453831c2b1b',1,'ipc::session::Session::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431',1,'ipc::session::Session_mv::Mdt_builder_ptr()']]], - ['mdt_5fpayload_5fobj_246',['Mdt_payload_obj',['../classipc_1_1session_1_1Client__session__impl.html#ae457d7b16843699006feb43e1073296a',1,'ipc::session::Client_session_impl::Mdt_payload_obj()'],['../classipc_1_1session_1_1Server__session__impl.html#aa9cd0c1e6792a4ee096b55b13b4db803',1,'ipc::session::Server_session_impl::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session__base.html#a35234981ca87cc2f6b118b3e52452ea8',1,'ipc::session::Session_base::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session.html#af572e522f2e85258bdfd091fd6e9a58b',1,'ipc::session::Session::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd',1,'ipc::session::Session_mv::Mdt_payload_obj()']]], - ['mdt_5freader_247',['Mdt_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a5bf928c4c1e90f4a583b3aab61cd2e7d',1,'ipc::transport::struc::Msg_in_impl::Mdt_reader()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a99df8a99bc2ed106d6a03f807e6e5966',1,'ipc::transport::struc::Msg_in::Mdt_reader()']]], - ['mdt_5freader_5fptr_248',['Mdt_reader_ptr',['../classipc_1_1session_1_1Client__session__impl.html#ad0ad69f676fc1260a3c493781fbbb81d',1,'ipc::session::Client_session_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#a78e61f8681c7ec92fa19bae560763ab1',1,'ipc::session::Server_session_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__base.html#ace4dab42adec6354cc66081dd218ac71',1,'ipc::session::Session_base::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__server__impl.html#a86de1d5b7cae35d89827c3235e2b8d89',1,'ipc::session::Session_server_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session.html#ae197d051e06be6f132e193e9ba7ab6ae',1,'ipc::session::Session::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df',1,'ipc::session::Session_mv::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__server.html#aa19b9057ac2d873b5989b6213a9e6f82',1,'ipc::session::Session_server::Mdt_reader_ptr()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a47d8e7dccbe05a7834e4b9687b755a2b',1,'ipc::session::sync_io::Session_adapter::Mdt_reader_ptr()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aff4a736c67698d14a538276912e6101d',1,'ipc::session::shm::classic::Session_server::Mdt_reader_ptr()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa846158c320f2870c77043b6270bb503',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mdt_reader_ptr()']]], - ['mdt_5froot_249',['mdt_root',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a171e09f29cbc5edf84b4342a1a171761',1,'ipc::transport::struc::Msg_in_impl::mdt_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a529a341e65bfb13b5a4caad131a37b0f',1,'ipc::transport::struc::Msg_in::mdt_root()']]], - ['message_250',['message',['../classipc_1_1transport_1_1error_1_1Category.html#ad4c76e006ab30fd9b061a7c8606cce73',1,'ipc::transport::error::Category::message()'],['../classipc_1_1transport_1_1struc_1_1error_1_1Category.html#acdba7399415b1f167b004b8031b1c856',1,'ipc::transport::struc::error::Category::message()'],['../classipc_1_1session_1_1error_1_1Category.html#a132d8e9d6675441c5eefd9895faea8bb',1,'ipc::session::error::Category::message()'],['../classipc_1_1shm_1_1classic_1_1error_1_1Category.html#ac12dc1d8c5da23ee1044771216251f20',1,'ipc::shm::classic::error::Category::message()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html#a9640510f0ae6f14398e1709d70756638',1,'ipc::session::shm::arena_lend::jemalloc::error::Category::message()']]], - ['mq_251',['Mq',['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#ad9b78b2744b2c97f2e2e7039d724f8da',1,'ipc::transport::Blob_stream_mq_receiver::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#aa2cb5c8fc525ae45edf8ab1b257f328d',1,'ipc::transport::Blob_stream_mq_sender::Mq()'],['../classipc_1_1transport_1_1Mqs__channel.html#a1dd9cae78d93d16984072711d57ba696',1,'ipc::transport::Mqs_channel::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__base__impl.html#a8fac0ed5fff23aa42e0a601db6fee42d',1,'ipc::transport::Blob_stream_mq_base_impl::Mq()'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#ab241c77d146639471f6b53209fac16c9',1,'ipc::transport::Mqs_socket_stream_channel::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a0e32cf8f7e9d6040925bcaf9da36515b',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a465dcd2a80871028ba8a97402be1cf2a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#ace19cd586cadd0641f764d3c2ebc32d9',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a7d3ffb7af4c4afa7fadf6c73e15f255f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a437460b4d4c98c43ecba190d3859eab4',1,'ipc::transport::Blob_stream_mq_sender_impl::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a995099399808567d3ba23b2bf7c7920e',1,'ipc::transport::Blob_stream_mq_receiver_impl::Mq()']]], - ['mq_5fsentinel_5fname_252',['mq_sentinel_name',['../classipc_1_1transport_1_1Blob__stream__mq__base__impl.html#ad64ef04f561dcb09e473be433df81074',1,'ipc::transport::Blob_stream_mq_base_impl']]], - ['mqs_5fchannel_253',['Mqs_channel',['../classipc_1_1transport_1_1Mqs__channel.html',1,'ipc::transport::Mqs_channel< SIO, Persistent_mq_handle, Native_handle_sender, Native_handle_receiver >'],['../classipc_1_1transport_1_1Mqs__channel.html#a3d51b0a0be20d9c3ce93b239290ea188',1,'ipc::transport::Mqs_channel::Mqs_channel(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_out, Mq &&mq_in, Error_code *err_code=0)'],['../classipc_1_1transport_1_1Mqs__channel.html#af829b5841e1bc1c23f254bc344b147ab',1,'ipc::transport::Mqs_channel::Mqs_channel()']]], - ['mqs_5fchannel_3c_20sio_2c_20persistent_5fmq_5fhandle_2c_20std_3a_3aconditional_5ft_3c_20sio_2c_20sync_5fio_3a_3anative_5fsocket_5fstream_2c_20native_5fsocket_5fstream_20_3e_2c_20std_3a_3aconditional_5ft_3c_20sio_2c_20sync_5fio_3a_3anative_5fsocket_5fstream_2c_20native_5fsocket_5fstream_20_3e_20_3e_254',['Mqs_channel< SIO, Persistent_mq_handle, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream > >',['../classipc_1_1transport_1_1Mqs__channel.html',1,'ipc::transport']]], - ['mqs_5fsocket_5fstream_5fchannel_255',['Mqs_socket_stream_channel',['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html',1,'ipc::transport::Mqs_socket_stream_channel< SIO, Persistent_mq_handle >'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#a4bf79eb5166648f2b84fa47568c8ad3b',1,'ipc::transport::Mqs_socket_stream_channel::Mqs_socket_stream_channel(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_out, Mq &&mq_in, typename Base::Base::Native_handle_sender_obj &&sock_stm, Error_code *err_code=0)'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#afb4920318fdcb1070f13a6dc3be07452',1,'ipc::transport::Mqs_socket_stream_channel::Mqs_socket_stream_channel()']]], - ['msg_2ehpp_256',['msg.hpp',['../msg_8hpp.html',1,'']]], - ['msg_5fbody_257',['Msg_body',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a34e183c252390f369f121074772c14c4',1,'ipc::transport::struc::sync_io::Channel::Msg_body()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a27a273ed7e1aca34b721fea22c869a41',1,'ipc::transport::struc::Channel::Msg_body()']]], - ['msg_5fid_5fin_5ft_258',['msg_id_in_t',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ad77261f31055f4151c70225c3fa1da2e',1,'ipc::transport::struc::sync_io::Channel']]], - ['msg_5fid_5fout_5ft_259',['msg_id_out_t',['../classipc_1_1transport_1_1struc_1_1Channel.html#a4d4995b27b7a6944fbcceee7657f6413',1,'ipc::transport::struc::Channel::msg_id_out_t()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9b5d17887c9ad1e37081bf4ae4a70e65',1,'ipc::transport::struc::sync_io::Channel::msg_id_out_t()'],['../classipc_1_1transport_1_1struc_1_1Channel__base.html#adcf24fa51747ed83c4b6427fbf44fecf',1,'ipc::transport::struc::Channel_base::msg_id_out_t()']]], - ['msg_5fid_5ft_260',['msg_id_t',['../namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9',1,'ipc::transport::struc']]], - ['msg_5fimpl_2ehpp_261',['msg_impl.hpp',['../msg__impl_8hpp.html',1,'']]], - ['msg_5fin_262',['Msg_in',['../classipc_1_1transport_1_1struc_1_1Msg__in.html',1,'ipc::transport::struc::Msg_in< Message_body, Struct_reader_config >'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a05d1cd2fc6a81a39c50a24322fb5c165',1,'ipc::transport::struc::Channel::Msg_in()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ac3da0ac1306b63c9e38c47b8c31e3cd2',1,'ipc::transport::struc::sync_io::Channel::Msg_in()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#ae3e6be294fbff87979a407a9e971da8a',1,'ipc::transport::struc::Msg_in::Msg_in()']]], - ['msg_5fin_5fimpl_263',['Msg_in_impl',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html',1,'ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a0d77fe20b17a5ae93d98c4c2b8440745',1,'ipc::transport::struc::Msg_in_impl::Msg_in_impl()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acb6922fb543bd544a2244412e4835e82',1,'ipc::transport::struc::sync_io::Channel::Msg_in_impl()']]], - ['msg_5fin_5fpipe_264',['Msg_in_pipe',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html',1,'ipc::transport::struc::sync_io::Channel']]], - ['msg_5fin_5fptr_265',['Msg_in_ptr',['../classipc_1_1transport_1_1struc_1_1Channel.html#ae1f4b316eaeb7ed520a84d9e21e21063',1,'ipc::transport::struc::Channel::Msg_in_ptr()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acde2b3866547a30958035203d9d89928',1,'ipc::transport::struc::sync_io::Channel::Msg_in_ptr()']]], - ['msg_5fin_5fptr_5funiq_266',['Msg_in_ptr_uniq',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a84287334d14f54c97f7dbb0d5b04cca5',1,'ipc::transport::struc::sync_io::Channel']]], - ['msg_5fin_5fq_267',['Msg_in_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2eed5db328a8c45ab16a875617a172c7',1,'ipc::transport::struc::sync_io::Channel']]], - ['msg_5fmdt_5fout_268',['Msg_mdt_out',['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html',1,'ipc::transport::struc::Msg_mdt_out< Struct_builder_config >'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acbf3e5dbf6879e358f0596633e1428e0',1,'ipc::transport::struc::sync_io::Channel::Msg_mdt_out()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a09b3e80aab955fbe367b8ebdf0fab792',1,'ipc::transport::struc::Msg_mdt_out::Msg_mdt_out()']]], - ['msg_5fmdt_5fout_2ehpp_269',['msg_mdt_out.hpp',['../msg__mdt__out_8hpp.html',1,'']]], - ['msg_5fout_270',['Msg_out',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc::Msg_out< Message_body, Struct_builder_t >'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9738acbcfb431dc1fc0174b42787060b',1,'ipc::transport::struc::Msg_out::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a860cc99a701576879ebb5a1db58153cc',1,'ipc::transport::struc::Channel::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a83fb4462a8d4045bdb56b694bf80393c',1,'ipc::transport::struc::sync_io::Channel::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9d4ab66d2740f40a88f476d46dd04f1e',1,'ipc::transport::struc::Msg_out::Msg_out(const Builder_config &struct_builder_config)'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9e5271db0ea2b86ec4c68a91c60dd17a',1,'ipc::transport::struc::Msg_out::Msg_out(const Msg_out &)=delete'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a50c8fd96304e09aaf9bbacd9959c07d6',1,'ipc::transport::struc::Msg_out::Msg_out(Msg_out &&src)'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9289790ac6b85681c8697fc55ff8f3a7',1,'ipc::transport::struc::Msg_out::Msg_out()']]], - ['msg_5fout_3c_20message_5fbody_2c_20struct_5fbuilder_20_3e_271',['Msg_out< Message_body, Struct_builder >',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc']]], - ['msg_5fout_3c_20schema_3a_3adetail_3a_3astructuredmessage_2c_20struct_5fbuilder_5fconfig_3a_3abuilder_20_3e_272',['Msg_out< schema::detail::StructuredMessage, Struct_builder_config::Builder >',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc']]], - ['msg_5fout_5fimpl_273',['Msg_out_impl',['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html',1,'ipc::transport::struc::Msg_out_impl< Message_body, Struct_builder >'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a984b6afa0f437c72aca5a1ba97f33a7f',1,'ipc::transport::struc::sync_io::Channel::Msg_out_impl()']]], - ['msg_5fwhich_274',['Msg_which',['../classipc_1_1transport_1_1struc_1_1Channel.html#a9a0382aa663c177f2a38b576d06b251e',1,'ipc::transport::struc::Channel::Msg_which()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1572a1b1cb4a72ea57f7841a5e78759b',1,'ipc::transport::struc::sync_io::Channel::Msg_which()']]], - ['msg_5fwhich_5fin_275',['Msg_which_in',['../classipc_1_1transport_1_1struc_1_1Channel.html#ac2a3a80151886bec41f3fc3a8880e384',1,'ipc::transport::struc::Channel::Msg_which_in()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa40c3ec3f45cdfea9360f7f35b9ade3c',1,'ipc::transport::struc::sync_io::Channel::Msg_which_in()']]], - ['msg_5fwhich_5fout_276',['Msg_which_out',['../classipc_1_1transport_1_1struc_1_1Channel.html#a4cc597a9ff8f460f5a773005f0a05805',1,'ipc::transport::struc::Channel::Msg_which_out()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a7a731cdae5217ed9e867fb80c1fb0fd9',1,'ipc::transport::struc::sync_io::Channel::Msg_which_out()']]], - ['msgs_5fin_277',['Msgs_in',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a4ab778bce8d7e6e84788879fedc62745',1,'ipc::transport::struc::sync_io::Channel']]], - ['multi_2dsplit_20universes_278',['Multi-split Universes',['../universes.html',1,'']]], - ['mutex_279',['Mutex',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a6e1d79535dbedc076f11077735e866db',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mutex()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a7b5893d6c0f0b1b3e33bcd3f5d183d8e',1,'ipc::session::shm::classic::Session_server::Mutex()'],['../classipc_1_1session_1_1Session__server__impl.html#ae7f35b32be309d354044662f0e17a891',1,'ipc::session::Session_server_impl::Mutex()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#ade399eda73424def3da0dd67596d2cff',1,'ipc::transport::struc::Channel::Mutex()']]] + ['m_5fpeer_5fsocket_5fhosed_123',['m_peer_socket_hosed',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a2a389318796d7386b114649a61c7d4f9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fpeer_5fsocket_5fmutex_124',['m_peer_socket_mutex',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abc7d2b14208ed2b8c0add0c26f7fbf27',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fpeer_5fstate_5ferr_5fcode_5for_5fok_125',['m_peer_state_err_code_or_ok',['../classipc_1_1session_1_1Session__base.html#a0d7926326671d05679c53e5e3991603e',1,'ipc::session::Session_base']]], + ['m_5fpending_5ferr_5fcode_126',['m_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a415d72c8ed4bed42fc84bf46f716742a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_pending_err_code()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#affd27be454f2e394f44fc76a5a4c50de',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_pending_err_code()']]], + ['m_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_127',['m_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a48689f6fbe1a1d4df3285736326b18f4',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], + ['m_5fpending_5fpayloads_5fq_128',['m_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#aaecb4615ae4d9fbf82ab2c195ada47cf',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], + ['m_5fpending_5fresults_5fq_129',['m_pending_results_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#ac04049d9b4c38f2a46d7f26192b17b69',1,'ipc::transport::Native_socket_stream_acceptor']]], + ['m_5fpending_5fuser_5frequests_5fq_130',['m_pending_user_requests_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a5d2e731d023d9c6465e01fa84a6e5138',1,'ipc::transport::Native_socket_stream_acceptor::m_pending_user_requests_q()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a13a636ca275a188bd3727e2d7c247f0e',1,'ipc::transport::sync_io::Async_adapter_receiver::m_pending_user_requests_q()']]], + ['m_5fper_5fapp_5fsetup_5ffunc_131',['m_per_app_setup_func',['../classipc_1_1session_1_1Session__server__impl.html#adc97c8fd3c5860dc6164f0a384b9fe03',1,'ipc::session::Session_server_impl']]], + ['m_5fpermissions_5flevel_5ffor_5fclient_5fapps_132',['m_permissions_level_for_client_apps',['../structipc_1_1session_1_1Server__app.html#abdcd9e8b0287f914496d45a99848be44',1,'ipc::session::Server_app']]], + ['m_5fphase_133',['m_phase',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#afca9a3012b2f41d635381a5a13ddd7c1',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fphase_5flog_5fin_5fstarted_134',['m_phase_log_in_started',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa14373afb4601567d1640f7b0b3faa45',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fpool_135',['m_pool',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a3a16fc7903eca88464d50fdf2873e37f',1,'ipc::shm::classic::Pool_arena']]], + ['m_5fpool_5fname_136',['m_pool_name',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a71009bb725b4cd68bea4ac99fa81ee2e',1,'ipc::shm::classic::Pool_arena']]], + ['m_5fpool_5fsize_5flimit_5fmi_137',['m_pool_size_limit_mi',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#ae86848eb54eac26e276cee29a0eb030a',1,'ipc::session::shm::classic::Session_server']]], + ['m_5fpre_5finit_5ferr_5fcode_138',['m_pre_init_err_code',['../classipc_1_1session_1_1Server__session__impl.html#ad9f6932719c1565191da73bfa4a3923f',1,'ipc::session::Server_session_impl']]], + ['m_5fproto_5fneg_5fblob_139',['m_proto_neg_blob',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a56c1f9cdcfd2a145114ab080199eb704',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fproto_5fneg_5ferr_5fcode_5for_5fok_140',['m_proto_neg_err_code_or_ok',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a515bbf752a9021ba8e0cec34d30f24b9',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fproto_5fneg_5fhndl_141',['m_proto_neg_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a83b9a3a7ddee7b6bfe14724bfccfc6ba',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fproto_5fneg_5freader_5fin_142',['m_proto_neg_reader_in',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a58b72930ddbf7e45936f8c8f34105324',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fprotocol_5fnegotiator_143',['m_protocol_negotiator',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aeec08979b985498aa0738892c947a8a9',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a28485fe8e4fbeea78f05eadc69a31c20',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a393316703a666a9b022f2b879337b920',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aad25fed4c22117bf07c45240f790d306',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator()'],['../classipc_1_1session_1_1Client__session__impl.html#ab55fdca2097f5444f35efc97a8af326b',1,'ipc::session::Client_session_impl::m_protocol_negotiator()'],['../classipc_1_1session_1_1Server__session__impl.html#aeca3e83ea5e99271ba928550ea4fb2d4',1,'ipc::session::Server_session_impl::m_protocol_negotiator()']]], + ['m_5fprotocol_5fnegotiator_5faux_144',['m_protocol_negotiator_aux',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9d7fc428bc293e993fe96428c44bfb4c',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Client__session__impl.html#a3c53046a113fcf1ba4c857e8d4c2fbbd',1,'ipc::session::Client_session_impl::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Server__session__impl.html#a891c082930a837694606aff30c7026ed',1,'ipc::session::Server_session_impl::m_protocol_negotiator_aux()']]], + ['m_5fraw_5fname_145',['m_raw_name',['../classipc_1_1util_1_1Shared__name.html#a4ebeee7fd046ca6ad405af6183dfb790',1,'ipc::util::Shared_name']]], + ['m_5frcv_5fev_5fwait_5ffunc_146',['m_rcv_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a5e1051f460cddb73d3cbc48afbac18a9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fev_5fwait_5fhndl_5fidle_5ftimer_5ffired_5fpeer_147',['m_rcv_ev_wait_hndl_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3540ba657d9d7c95e755d1b348c88b8f',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fexpecting_5fmsg_5fmap_148',['m_rcv_expecting_msg_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a072fb8667ba55ff69230fd48d400ee88',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fexpecting_5fresponse_5fmap_149',['m_rcv_expecting_response_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#abf9a2118d887439717e17d0515be3e43',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fidle_5ftimeout_150',['m_rcv_idle_timeout',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ada7f2368dc0591f7a903946201c83636',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fidle_5ftimer_151',['m_rcv_idle_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab65c4574a9a084030a9a66a8340c94b2',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fidle_5ftimer_5ffired_5fpeer_152',['m_rcv_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#aa94400dd47704098beffe37b07b75472',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fmsg_5fnext_5fid_153',['m_rcv_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a26d39d4e1e2c304ef803b3721bde86f0',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fpending_5ferr_5fcode_154',['m_rcv_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab824da16816893b2ffe2e778a7169b62',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fpending_5fmsgs_155',['m_rcv_pending_msgs',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ae9f5a798718d98523342acf55400d628',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fpipes_156',['m_rcv_pipes',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9c04f15d4d17cd43aca70136119e1d28',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5freassembly_5fq_157',['m_rcv_reassembly_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1218e59c91d08758cd997d77913abd5a',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fsync_5fio_5fadapter_158',['m_rcv_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a9d006ccbd86681405447a5f2033ad2ca',1,'ipc::transport::Native_socket_stream::Impl']]], + ['m_5frcv_5ftarget_5fmeta_5flength_159',['m_rcv_target_meta_length',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a6676379057415274d2c6f2f096828cf9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fuser_5frequest_160',['m_rcv_user_request',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a9098de978da64572c419019597274d68',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5freader_5fconfig_161',['m_reader_config',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a7ebd1458417e3ffea3220424aacced9c',1,'ipc::transport::struc::Msg_in']]], + ['m_5fready_5freader_162',['m_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a80ab7afeab9753497d92a0af1f3f9610',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_reader()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a439be095b518a57efbbca079d6b05f59',1,'ipc::session::sync_io::Session_server_adapter::m_ready_reader()']]], + ['m_5fready_5freader_5fchan_163',['m_ready_reader_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a95ca5ad4d856f3921b9e0b3accf7b618',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5freader_5ferr_164',['m_ready_reader_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a6ea8f9f021af50050dbb88bd14978e24',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5fwriter_165',['m_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#ada90b100aa98cd6ca5853d88f2fff993',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_writer()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a19f346f8827932b4cfcfe525a7d039a0',1,'ipc::session::sync_io::Session_server_adapter::m_ready_writer()']]], + ['m_5fready_5fwriter_5fchan_166',['m_ready_writer_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#aef11d364d6df923acff043cd7b3bee1d',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5fwriter_5ferr_167',['m_ready_writer_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a22c47810c9273ce7f86b85f51c474b9f',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5freq_5fmsg_168',['m_req_msg',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a8cab22f0afe897330ad77a2bc2b536b7',1,'ipc::session::Client_session_impl::Master_channel_req::m_req_msg()'],['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#a522e6691e46f956648c64877b64d6219',1,'ipc::session::Server_session_impl::Open_channel_req::m_req_msg()']]], + ['m_5fresult_5fif_5fany_169',['m_result_if_any',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html#ac8c083b7c861d00e2f987a017fbe994e',1,'ipc::transport::struc::Channel::Sync_op_state']]], + ['m_5frsp_170',['m_rsp',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html#a2c7cde843910f748296c2c9ec406d99b',1,'ipc::transport::struc::Channel::Sync_op_state::Request_result']]], + ['m_5fsegment_5fsz_171',['m_segment_sz',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#af012d6917cdc16494a22b4b6f2c10edd',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_segment_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a9e759098107b22d8e40238eeb74c7f0b',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#afa719b263e06eb7359b948a36f251485',1,'ipc::transport::struc::Heap_fixed_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a89d5dac6078a1a2c184e2239810b5480',1,'ipc::transport::struc::shm::Capnp_message_builder::m_segment_sz()']]], + ['m_5fserialization_5fsegments_172',['m_serialization_segments',['../classipc_1_1transport_1_1struc_1_1Heap__reader.html#a86d1fba98bf24c390587893c61174111',1,'ipc::transport::struc::Heap_reader::m_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a98472f1e376123f6d98297f5c61ebc76',1,'ipc::transport::struc::shm::Capnp_message_builder::m_serialization_segments()']]], + ['m_5fserialization_5fsegments_5fplus_5fframe_5fspace_173',['m_serialization_segments_plus_frame_space',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#aad029fd4e08580a785824c48790c748f',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], + ['m_5fsession_174',['m_session',['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#a3636cf0176e444342f4e178fbec94fa0',1,'ipc::transport::struc::shm::Reader::Config::m_session()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#af9f19bfd2d275b3770a3c978ae451c31',1,'ipc::transport::struc::shm::Reader::m_session()']]], + ['m_5fsession_5fshm_175',['m_session_shm',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a3b7b7eb37270320a495a26303aaed2c7',1,'ipc::session::shm::classic::Session_impl::m_session_shm()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a830c19b190c29b9bb326b0790e11976c',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::m_session_shm()']]], + ['m_5fsession_5ftoken_176',['m_session_token',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aa4c99d20d237670ba77769e721891b4b',1,'ipc::transport::struc::Msg_in::m_session_token()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a49e257338f9b20fd70c42142eb2db4f0',1,'ipc::transport::struc::sync_io::Channel::m_session_token()']]], + ['m_5fshm_5farena_5fpool_5flistener_177',['m_shm_arena_pool_listener',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#ad1cf86692c17aa00fb175996d825f11f',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_shm_arena_pool_listener()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aea3beac7c650fb100748a1f768e14d5e',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_shm_arena_pool_listener()']]], + ['m_5fshm_5fchannel_178',['m_shm_channel',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a264175697b8e32e732bee46790ab3c67',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], + ['m_5fshm_5fpool_5fnames_179',['m_shm_pool_names',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#af4d3de8bd66de27bf740ba3eeb1d988f',1,'ipc::session::shm::classic::Session_server']]], + ['m_5fshm_5fsession_180',['m_shm_session',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a49b633551f139e19999c0d4b060dc65b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], + ['m_5fsignal_5fpipe_5freaders_181',['m_signal_pipe_readers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#afafdfa9e2c522cd3e12b4f1915f83b56',1,'ipc::util::sync_io::Timer_event_emitter']]], + ['m_5fsignal_5fpipe_5fwriters_182',['m_signal_pipe_writers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ac2e6652bed4a80239d57a7fad2bab47c',1,'ipc::util::sync_io::Timer_event_emitter']]], + ['m_5fsnd_5fauto_5fping_5fperiod_183',['m_snd_auto_ping_period',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a4cb5d8ce6fa402c2cbaf27ec9654277c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fauto_5fping_5ftimer_184',['m_snd_auto_ping_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a311a0641a1da83530311e16845105c2c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fauto_5fping_5ftimer_5ffired_5fpeer_185',['m_snd_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3116d5b66bf35bec158905bbde4f6854',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fend_5fsending_5fon_5fdone_5ffunc_5for_5fempty_186',['m_snd_end_sending_on_done_func_or_empty',['../classipc_1_1transport_1_1struc_1_1Channel.html#a5e905a57052ba370d8d2f45a361982d8',1,'ipc::transport::struc::Channel']]], + ['m_5fsnd_5fev_5fwait_5ffunc_187',['m_snd_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abd4d8d43776c3956c6896ca721e95dab',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fev_5fwait_5fhndl_5fauto_5fping_5ftimer_5ffired_5fpeer_188',['m_snd_ev_wait_hndl_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a459618a64d769ba8798a6380e9292181',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5ffinished_189',['m_snd_finished',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#acfefc83c990b1b6cd903f5ad323e5dfa',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fmsg_5fnext_5fid_190',['m_snd_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a5132d96a55a628a7830c19c630390582',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsnd_5fpending_5ferr_5fcode_191',['m_snd_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a0257a7903bff120aa1523f8de04bccf7',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_192',['m_snd_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a92372b2da3a4bdccda23b27b2865f01d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fpending_5fpayloads_5fq_193',['m_snd_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1af9eb83b9afee25ba153a2ca066858d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fsync_5fio_5fadapter_194',['m_snd_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad4689db8dfd0be14695e93d8760b23ed',1,'ipc::transport::Native_socket_stream::Impl']]], + ['m_5fsrv_5fapp_5fref_195',['m_srv_app_ref',['../classipc_1_1session_1_1Session__base.html#afd32d90b86d699263a0f02637dd7c6c6',1,'ipc::session::Session_base::m_srv_app_ref()'],['../classipc_1_1session_1_1Session__server__impl.html#a7be0cca184cdba62b9748e0ca37b8b17',1,'ipc::session::Session_server_impl::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a58684b85b4cfe6c4095bc56f2700ec27',1,'ipc::session::shm::classic::Session_server::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a39dc0e5a46a40b15c50d51b4929bac3c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_app_ref()']]], + ['m_5fsrv_5fnamespace_196',['m_srv_namespace',['../classipc_1_1session_1_1Session__base.html#a60a30526bad0c8db6ad05ede618a22bd',1,'ipc::session::Session_base::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a1034bc43eb088ede11111b97f79aff96',1,'ipc::session::shm::classic::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aaeb9c251968732f0f44dcde64abdb8bb',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_namespace()']]], + ['m_5fstarted_5fops_197',['m_started_ops',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9a63c3620852f2354fe145364a73c688',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstate_198',['m_state',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a64e47a38b3ed59e37295336114918142',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_state()'],['../classipc_1_1session_1_1Client__session__impl.html#a3a5f5102020adace1e898d977e929908',1,'ipc::session::Client_session_impl::m_state()'],['../classipc_1_1session_1_1Session__server__impl.html#ac49be718ad86c3919563da57502d11b3',1,'ipc::session::Session_server_impl::m_state()']]], + ['m_5fstruct_5fbuilder_5fconfig_199',['m_struct_builder_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a47816a05b0af2d8b5c26ecaf01b89b1f',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstruct_5flender_5fsession_200',['m_struct_lender_session',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa4cd0e7c721ee3af4d1faa2ada5ad646',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstruct_5freader_5fconfig_201',['m_struct_reader_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#af7ac60b2b7a7baf26a96cf4635d4c320',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsync_5fio_202',['m_sync_io',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a2983ca0b49dd550d29f24534ab4e9574',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#ad0d9321e04c451b8c087d4e672ecaa94',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a8e3d15efe152af3d5de7bed2a094b885',1,'ipc::transport::Native_socket_stream::Impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#af07534b8b9beb4e47b1af513d82d7460',1,'ipc::transport::sync_io::Async_adapter_receiver::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a9bc681f5ac954b2ce9e1c62545c6796f',1,'ipc::transport::sync_io::Async_adapter_sender::m_sync_io()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#aefee55a9e754a63ce52766d6c65df92c',1,'ipc::transport::struc::Channel::m_sync_io()']]], + ['m_5fsync_5fio_5fadapter_203',['m_sync_io_adapter',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a940f3f6b3f770cd51ea3052f3136a94e',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io_adapter()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a44fb72c110d737656c6cd7ecee2c6472',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io_adapter()']]], + ['m_5fsync_5fio_5fhandlers_204',['m_sync_io_handlers',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2c0013237f845e5589cf0063886c7431',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsync_5fop_5fstate_205',['m_sync_op_state',['../classipc_1_1transport_1_1struc_1_1Channel.html#ab40d8133d53135bcc41a12cc27fc8e13',1,'ipc::transport::struc::Channel']]], + ['m_5fsync_5fop_5fstate_5fid_206',['m_sync_op_state_id',['../classipc_1_1transport_1_1struc_1_1Channel.html#abb0ed2e666191dd85e543072077bf38b',1,'ipc::transport::struc::Channel']]], + ['m_5ftarget_5fblob_207',['m_target_blob',['../structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html#aabc02495e840cdd6fe0e5bfa31b33509',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::User_request::m_target_blob()'],['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#af73c6fcead6a866df1524e01b5654222',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe::m_target_blob()']]], + ['m_5ftarget_5fchannel_5fopen_5fq_208',['m_target_channel_open_q',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad26ef2d688edc711821951d00101ccae',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fchannel_5fopen_5fq_5fmutex_209',['m_target_channel_open_q_mutex',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a7212b0336f96d32d6ab36ef43e16135a',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fcontrol_5fblob_210',['m_target_control_blob',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af308d3f1ff50138070c8422552f069a5',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], + ['m_5ftarget_5ferr_5fcode_211',['m_target_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#acbb3682fbd1502d4fa3952133d956547',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_target_err_code()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a57e1e2ca43f06bd1aa9658c855b1666b',1,'ipc::session::sync_io::Session_server_adapter::m_target_err_code()']]], + ['m_5ftarget_5ferr_5fcode_5ferr_212',['m_target_err_code_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a698532c47d2962e7e60dc804ac5c4e53',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fhndl_213',['m_target_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#ad27cbaa9b01823f31fb2ae47835974df',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5ftarget_5fhndl_5fptr_214',['m_target_hndl_ptr',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a2d0ba069841a0d43bb5c173f9b4ea0b5',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_hndl_ptr()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#ae8094bf28837a5ff2f5794222114d3b7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_hndl_ptr()']]], + ['m_5ftarget_5fmeta_5fblob_215',['m_target_meta_blob',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a8071b7e47453d21bd86665c15af7949d',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_meta_blob()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#a589c41dcf6cf1622c8df6a02e1f7497b',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_meta_blob()']]], + ['m_5ftarget_5fpeer_216',['m_target_peer',['../structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html#a8c8eae7aa61cb5e00f2af65aa08daa26',1,'ipc::transport::Native_socket_stream_acceptor::User_request']]], + ['m_5fthis_5fsession_217',['m_this_session',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#acb037930b23240ecf8975e65f50f3927',1,'ipc::session::Session_base::Graceful_finisher']]], + ['m_5fthis_5fsession_5fsrv_218',['m_this_session_srv',['../classipc_1_1session_1_1Session__server__impl.html#aa7aed6de161203a2e7414411fa1defa5',1,'ipc::session::Session_server_impl']]], + ['m_5ftimer_5fworker_219',['m_timer_worker',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aae2ee292cd7b9742b32e68dfd84d8361',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab8bae935aff314b88d6163d04f52b5eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a54c3fdde2cf99fda314ee3387f70a02e',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_timer_worker()']]], + ['m_5ftop_5fbuilder_5fframe_5fpostfix_5fsz_220',['m_top_builder_frame_postfix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ae30cd8f4721bccd20ef5f195c332a960',1,'ipc::transport::struc::shm::Builder::Config']]], + ['m_5ftop_5fbuilder_5fframe_5fprefix_5fsz_221',['m_top_builder_frame_prefix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ab850e04c8a411941c75b74e7c6eccb36',1,'ipc::transport::struc::shm::Builder::Config']]], + ['m_5ftop_5fengine_222',['m_top_engine',['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a3283aa7dc43b3851b94ff65f1f01d5e1',1,'ipc::transport::struc::shm::Builder::m_top_engine()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#a1edc9404d82d1fe78fd4a892d5dac22c',1,'ipc::transport::struc::shm::Reader::m_top_engine()']]], + ['m_5fuse_5fcount_223',['m_use_count',['../classipc_1_1util_1_1Use__counted__object.html#a9321c72f51d22da1ee041f29de5e9b43',1,'ipc::util::Use_counted_object']]], + ['m_5fuser_5fid_224',['m_user_id',['../structipc_1_1session_1_1App.html#a9e32297579603f2d96616976474d0246',1,'ipc::session::App']]], + ['m_5fuser_5frequest_225',['m_user_request',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a76d81cb59e1b91c7f379064dd285aa93',1,'ipc::transport::sync_io::Async_adapter_receiver::m_user_request()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a819d349f5cafcba88f3dff63968d74b0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_user_request()']]], + ['m_5fval_226',['m_val',['../classipc_1_1util_1_1Process__credentials.html#a5e9f0979d5b61f4d4557d1e338871b2f',1,'ipc::util::Process_credentials']]], + ['m_5fworker_227',['m_worker',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a58f99e84ff87dd50fc7741d933a23fd5',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_worker()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#aa83abf9a9c9b6bb1f77ac9c611f20620',1,'ipc::transport::Blob_stream_mq_sender_impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a4a7ab0a981614724b559b38634634d8a',1,'ipc::transport::Native_socket_stream::Impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a2d397e09f2cfa198313ff5c31334080b',1,'ipc::transport::Native_socket_stream_acceptor::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a0df3c0d0291cb4d3ea7fbd8214a12cb8',1,'ipc::transport::sync_io::Async_adapter_receiver::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a98cf53ba1f6abee1c3d3a4dd7533232d',1,'ipc::transport::sync_io::Async_adapter_sender::m_worker()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ad17e799f7c36c4c0cbc858637377f456',1,'ipc::util::sync_io::Timer_event_emitter::m_worker()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a2184077da7828589d20d7f92a31a6394',1,'ipc::transport::struc::Channel::m_worker()']]], + ['make_5fchannel_5fmqs_228',['make_channel_mqs',['../classipc_1_1session_1_1Server__session__impl.html#a84d54a57d3e06c064cde737d1f4be472',1,'ipc::session::Server_session_impl']]], + ['make_5ferror_5fcode_229',['make_error_code',['../namespaceipc_1_1transport_1_1error.html#aa825718d46992654588588b09a0f1be6',1,'ipc::transport::error::make_error_code()'],['../namespaceipc_1_1transport_1_1struc_1_1error.html#a6ff229c55381b37a1ad8eeb92574c5b4',1,'ipc::transport::struc::error::make_error_code()'],['../namespaceipc_1_1session_1_1error.html#a9056f277d3ebf2778d06a2bb1f337c28',1,'ipc::session::error::make_error_code()'],['../namespaceipc_1_1shm_1_1classic_1_1error.html#a1912c719fef62337844569554ac02050',1,'ipc::shm::classic::error::make_error_code()'],['../namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html#a497c3dfeca665afc16709df5f088f008',1,'ipc::session::shm::arena_lend::jemalloc::error::make_error_code()']]], + ['master_5fchannel_230',['master_channel',['../classipc_1_1session_1_1Server__session__impl.html#a14d68714c197ba58b4cb485262fb9d51',1,'ipc::session::Server_session_impl']]], + ['master_5fchannel_5fconst_231',['master_channel_const',['../classipc_1_1session_1_1Client__session__impl.html#a5f156b23ce19cd878c3e83330e63f56f',1,'ipc::session::Client_session_impl::master_channel_const()'],['../classipc_1_1session_1_1Server__session__impl.html#aaa570a2ceb242370eeccca85d806fbbf',1,'ipc::session::Server_session_impl::master_channel_const()']]], + ['master_5fchannel_5freq_232',['Master_channel_req',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html',1,'ipc::session::Client_session_impl']]], + ['master_5fchannel_5freq_5fptr_233',['Master_channel_req_ptr',['../classipc_1_1session_1_1Client__session__impl.html#abe6c733821534ec020b7cec02cfc3e66',1,'ipc::session::Client_session_impl']]], + ['master_5fset_234',['Master_set',['../structipc_1_1session_1_1Server__app.html#a1fc9e403e3b5c89a4cd328da829590a4',1,'ipc::session::Server_app::Master_set()'],['../structipc_1_1session_1_1App.html#af7527bc1ad0cde62cd4fde97bc1d7ecc',1,'ipc::session::App::Master_set()'],['../structipc_1_1session_1_1Client__app.html#add718cbf6aa1d2abb26fbadcc974a7bd',1,'ipc::session::Client_app::Master_set()']]], + ['master_5fstructured_5fchannel_235',['Master_structured_channel',['../classipc_1_1session_1_1Session__base.html#a26d038e14e3c0e461e76de88c4ce76c5',1,'ipc::session::Session_base::Master_structured_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a3bc90eb872c3f4d4ff65039a4a36b166',1,'ipc::session::Server_session_impl::Master_structured_channel()'],['../classipc_1_1session_1_1Client__session__impl.html#a4c62a381340b0f494c4f117960bfca2b',1,'ipc::session::Client_session_impl::Master_structured_channel()']]], + ['master_5fstructured_5fchannel_5fobserver_236',['Master_structured_channel_observer',['../classipc_1_1session_1_1Session__base.html#ae2a123b29dd044a638e94d1f294c8f28',1,'ipc::session::Session_base::Master_structured_channel_observer()'],['../classipc_1_1session_1_1Client__session__impl.html#a6a1cb9c344c312b4eff5c360d7114e2c',1,'ipc::session::Client_session_impl::Master_structured_channel_observer()']]], + ['master_5fstructured_5fchannel_5fptr_237',['Master_structured_channel_ptr',['../classipc_1_1session_1_1Session__base.html#af0ca2a01d7d0d92038aae56fc1cdd505',1,'ipc::session::Session_base::Master_structured_channel_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#ab6cfad1c0be9815dc5411cd20c131213',1,'ipc::session::Server_session_impl::Master_structured_channel_ptr()'],['../classipc_1_1session_1_1Client__session__impl.html#ad432ab4e95ddcfd0396d5ea821dec15c',1,'ipc::session::Client_session_impl::Master_structured_channel_ptr()']]], + ['max_5fmsg_5fsize_238',['max_msg_size',['../classipc_1_1transport_1_1Bipc__mq__handle.html#ad8ef88d8e0a59b770c9d15d008b52a4b',1,'ipc::transport::Bipc_mq_handle::max_msg_size()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#ae2efe92707c53c46bc70b84f96bda217',1,'ipc::transport::Persistent_mq_handle::max_msg_size()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a412e7c922909eeb5707bb0abe6e27a76',1,'ipc::transport::Posix_mq_handle::max_msg_size()']]], + ['max_5fn_5fmsgs_239',['max_n_msgs',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a9f3318676f5e687f791088484d1bbef8',1,'ipc::transport::Bipc_mq_handle::max_n_msgs()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a22575a5750d322ccf87a923a3d662756',1,'ipc::transport::Persistent_mq_handle::max_n_msgs()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a514dbdda12ec70ea1ff65abfa6237ce2',1,'ipc::transport::Posix_mq_handle::max_n_msgs()']]], + ['mdt_240',['Mdt',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aad2c43c92a286ab7d186d810631a1701',1,'ipc::transport::struc::Msg_in']]], + ['mdt_5fbuilder_241',['mdt_builder',['../classipc_1_1session_1_1Server__session__impl.html#a138956765a655240080491157f316167',1,'ipc::session::Server_session_impl']]], + ['mdt_5fbuilder_242',['Mdt_builder',['../classipc_1_1session_1_1Server__session__impl.html#a7134fc9c4d26ba1fbc8e5da266d970e5',1,'ipc::session::Server_session_impl::Mdt_builder()'],['../classipc_1_1session_1_1Session__base.html#a7d68bbb8c0c09983619d563bca30bd45',1,'ipc::session::Session_base::Mdt_builder()'],['../classipc_1_1session_1_1Session.html#ac3f52804db8ecf1d0dc0d0bbdf97e062',1,'ipc::session::Session::Mdt_builder()'],['../classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88',1,'ipc::session::Session_mv::Mdt_builder()'],['../classipc_1_1session_1_1Session__server.html#a86e894429b8568458aa20f3ba814434d',1,'ipc::session::Session_server::Mdt_builder()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a81f60d9c8af965468c0887a2af4e2823',1,'ipc::session::shm::classic::Session_server::Mdt_builder()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ae0a96fec25d9deea4000ddf72046f379',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mdt_builder()']]], + ['mdt_5fbuilder_243',['mdt_builder',['../classipc_1_1session_1_1Client__session__mv.html#aba3aa4758c635339289d66be45df343b',1,'ipc::session::Client_session_mv::mdt_builder()'],['../classipc_1_1session_1_1Client__session__impl.html#a7ecad909e1013271ff365437f2fdae85',1,'ipc::session::Client_session_impl::mdt_builder() const']]], + ['mdt_5fbuilder_244',['Mdt_builder',['../classipc_1_1session_1_1Client__session__impl.html#ad5a3539f5e10933ff4abc7cde1056798',1,'ipc::session::Client_session_impl']]], + ['mdt_5fbuilder_245',['mdt_builder',['../classipc_1_1session_1_1Session.html#a420df732069ded1feef423adf7a30915',1,'ipc::session::Session::mdt_builder()'],['../classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3',1,'ipc::session::Session_mv::mdt_builder()']]], + ['mdt_5fbuilder_5fptr_246',['Mdt_builder_ptr',['../classipc_1_1session_1_1Client__session__impl.html#a9d93e6080abf3b0827b97e084f5e8356',1,'ipc::session::Client_session_impl::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#ac4bc7e38574e0495af4887d2e6226b7a',1,'ipc::session::Server_session_impl::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session__base.html#a4a7a5b83f6ba8bd505685636eabc012b',1,'ipc::session::Session_base::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session.html#a2ee877327fded2c2b1978453831c2b1b',1,'ipc::session::Session::Mdt_builder_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431',1,'ipc::session::Session_mv::Mdt_builder_ptr()']]], + ['mdt_5fpayload_5fobj_247',['Mdt_payload_obj',['../classipc_1_1session_1_1Client__session__impl.html#ae457d7b16843699006feb43e1073296a',1,'ipc::session::Client_session_impl::Mdt_payload_obj()'],['../classipc_1_1session_1_1Server__session__impl.html#aa9cd0c1e6792a4ee096b55b13b4db803',1,'ipc::session::Server_session_impl::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session__base.html#a35234981ca87cc2f6b118b3e52452ea8',1,'ipc::session::Session_base::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session.html#af572e522f2e85258bdfd091fd6e9a58b',1,'ipc::session::Session::Mdt_payload_obj()'],['../classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd',1,'ipc::session::Session_mv::Mdt_payload_obj()']]], + ['mdt_5freader_248',['Mdt_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a5bf928c4c1e90f4a583b3aab61cd2e7d',1,'ipc::transport::struc::Msg_in_impl::Mdt_reader()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a99df8a99bc2ed106d6a03f807e6e5966',1,'ipc::transport::struc::Msg_in::Mdt_reader()']]], + ['mdt_5freader_5fptr_249',['Mdt_reader_ptr',['../classipc_1_1session_1_1Client__session__impl.html#ad0ad69f676fc1260a3c493781fbbb81d',1,'ipc::session::Client_session_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Server__session__impl.html#a78e61f8681c7ec92fa19bae560763ab1',1,'ipc::session::Server_session_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__base.html#ace4dab42adec6354cc66081dd218ac71',1,'ipc::session::Session_base::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__server__impl.html#a86de1d5b7cae35d89827c3235e2b8d89',1,'ipc::session::Session_server_impl::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session.html#ae197d051e06be6f132e193e9ba7ab6ae',1,'ipc::session::Session::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df',1,'ipc::session::Session_mv::Mdt_reader_ptr()'],['../classipc_1_1session_1_1Session__server.html#aa19b9057ac2d873b5989b6213a9e6f82',1,'ipc::session::Session_server::Mdt_reader_ptr()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a47d8e7dccbe05a7834e4b9687b755a2b',1,'ipc::session::sync_io::Session_adapter::Mdt_reader_ptr()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#aff4a736c67698d14a538276912e6101d',1,'ipc::session::shm::classic::Session_server::Mdt_reader_ptr()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aa846158c320f2870c77043b6270bb503',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mdt_reader_ptr()']]], + ['mdt_5froot_250',['mdt_root',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a171e09f29cbc5edf84b4342a1a171761',1,'ipc::transport::struc::Msg_in_impl::mdt_root()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a529a341e65bfb13b5a4caad131a37b0f',1,'ipc::transport::struc::Msg_in::mdt_root()']]], + ['message_251',['message',['../classipc_1_1transport_1_1error_1_1Category.html#ad4c76e006ab30fd9b061a7c8606cce73',1,'ipc::transport::error::Category::message()'],['../classipc_1_1transport_1_1struc_1_1error_1_1Category.html#acdba7399415b1f167b004b8031b1c856',1,'ipc::transport::struc::error::Category::message()'],['../classipc_1_1session_1_1error_1_1Category.html#a132d8e9d6675441c5eefd9895faea8bb',1,'ipc::session::error::Category::message()'],['../classipc_1_1shm_1_1classic_1_1error_1_1Category.html#ac12dc1d8c5da23ee1044771216251f20',1,'ipc::shm::classic::error::Category::message()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html#a9640510f0ae6f14398e1709d70756638',1,'ipc::session::shm::arena_lend::jemalloc::error::Category::message()']]], + ['mq_252',['Mq',['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#ad9b78b2744b2c97f2e2e7039d724f8da',1,'ipc::transport::Blob_stream_mq_receiver::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#aa2cb5c8fc525ae45edf8ab1b257f328d',1,'ipc::transport::Blob_stream_mq_sender::Mq()'],['../classipc_1_1transport_1_1Mqs__channel.html#a1dd9cae78d93d16984072711d57ba696',1,'ipc::transport::Mqs_channel::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__base__impl.html#a8fac0ed5fff23aa42e0a601db6fee42d',1,'ipc::transport::Blob_stream_mq_base_impl::Mq()'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#ab241c77d146639471f6b53209fac16c9',1,'ipc::transport::Mqs_socket_stream_channel::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a0e32cf8f7e9d6040925bcaf9da36515b',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a465dcd2a80871028ba8a97402be1cf2a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#ace19cd586cadd0641f764d3c2ebc32d9',1,'ipc::transport::sync_io::Blob_stream_mq_sender::Mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a7d3ffb7af4c4afa7fadf6c73e15f255f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a437460b4d4c98c43ecba190d3859eab4',1,'ipc::transport::Blob_stream_mq_sender_impl::Mq()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a995099399808567d3ba23b2bf7c7920e',1,'ipc::transport::Blob_stream_mq_receiver_impl::Mq()']]], + ['mq_5fsentinel_5fname_253',['mq_sentinel_name',['../classipc_1_1transport_1_1Blob__stream__mq__base__impl.html#ad64ef04f561dcb09e473be433df81074',1,'ipc::transport::Blob_stream_mq_base_impl']]], + ['mqs_5fchannel_254',['Mqs_channel',['../classipc_1_1transport_1_1Mqs__channel.html',1,'ipc::transport::Mqs_channel< SIO, Persistent_mq_handle, Native_handle_sender, Native_handle_receiver >'],['../classipc_1_1transport_1_1Mqs__channel.html#a3d51b0a0be20d9c3ce93b239290ea188',1,'ipc::transport::Mqs_channel::Mqs_channel(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_out, Mq &&mq_in, Error_code *err_code=0)'],['../classipc_1_1transport_1_1Mqs__channel.html#af829b5841e1bc1c23f254bc344b147ab',1,'ipc::transport::Mqs_channel::Mqs_channel()']]], + ['mqs_5fchannel_3c_20sio_2c_20persistent_5fmq_5fhandle_2c_20std_3a_3aconditional_5ft_3c_20sio_2c_20sync_5fio_3a_3anative_5fsocket_5fstream_2c_20native_5fsocket_5fstream_20_3e_2c_20std_3a_3aconditional_5ft_3c_20sio_2c_20sync_5fio_3a_3anative_5fsocket_5fstream_2c_20native_5fsocket_5fstream_20_3e_20_3e_255',['Mqs_channel< SIO, Persistent_mq_handle, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream >, std::conditional_t< SIO, sync_io::Native_socket_stream, Native_socket_stream > >',['../classipc_1_1transport_1_1Mqs__channel.html',1,'ipc::transport']]], + ['mqs_5fsocket_5fstream_5fchannel_256',['Mqs_socket_stream_channel',['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html',1,'ipc::transport::Mqs_socket_stream_channel< SIO, Persistent_mq_handle >'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#a4bf79eb5166648f2b84fa47568c8ad3b',1,'ipc::transport::Mqs_socket_stream_channel::Mqs_socket_stream_channel(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_out, Mq &&mq_in, typename Base::Base::Native_handle_sender_obj &&sock_stm, Error_code *err_code=0)'],['../classipc_1_1transport_1_1Mqs__socket__stream__channel.html#afb4920318fdcb1070f13a6dc3be07452',1,'ipc::transport::Mqs_socket_stream_channel::Mqs_socket_stream_channel()']]], + ['msg_2ehpp_257',['msg.hpp',['../msg_8hpp.html',1,'']]], + ['msg_5fbody_258',['Msg_body',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a34e183c252390f369f121074772c14c4',1,'ipc::transport::struc::sync_io::Channel::Msg_body()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a27a273ed7e1aca34b721fea22c869a41',1,'ipc::transport::struc::Channel::Msg_body()']]], + ['msg_5fid_5fin_5ft_259',['msg_id_in_t',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ad77261f31055f4151c70225c3fa1da2e',1,'ipc::transport::struc::sync_io::Channel']]], + ['msg_5fid_5fout_5ft_260',['msg_id_out_t',['../classipc_1_1transport_1_1struc_1_1Channel.html#a4d4995b27b7a6944fbcceee7657f6413',1,'ipc::transport::struc::Channel::msg_id_out_t()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9b5d17887c9ad1e37081bf4ae4a70e65',1,'ipc::transport::struc::sync_io::Channel::msg_id_out_t()'],['../classipc_1_1transport_1_1struc_1_1Channel__base.html#adcf24fa51747ed83c4b6427fbf44fecf',1,'ipc::transport::struc::Channel_base::msg_id_out_t()']]], + ['msg_5fid_5ft_261',['msg_id_t',['../namespaceipc_1_1transport_1_1struc.html#af7f35fc7588d97a838274fa25700ead9',1,'ipc::transport::struc']]], + ['msg_5fimpl_2ehpp_262',['msg_impl.hpp',['../msg__impl_8hpp.html',1,'']]], + ['msg_5fin_263',['Msg_in',['../classipc_1_1transport_1_1struc_1_1Msg__in.html',1,'ipc::transport::struc::Msg_in< Message_body, Struct_reader_config >'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a05d1cd2fc6a81a39c50a24322fb5c165',1,'ipc::transport::struc::Channel::Msg_in()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ac3da0ac1306b63c9e38c47b8c31e3cd2',1,'ipc::transport::struc::sync_io::Channel::Msg_in()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#ae3e6be294fbff87979a407a9e971da8a',1,'ipc::transport::struc::Msg_in::Msg_in()']]], + ['msg_5fin_5fimpl_264',['Msg_in_impl',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html',1,'ipc::transport::struc::Msg_in_impl< Message_body, Struct_reader_config >'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a0d77fe20b17a5ae93d98c4c2b8440745',1,'ipc::transport::struc::Msg_in_impl::Msg_in_impl()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acb6922fb543bd544a2244412e4835e82',1,'ipc::transport::struc::sync_io::Channel::Msg_in_impl()']]], + ['msg_5fin_5fpipe_265',['Msg_in_pipe',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html',1,'ipc::transport::struc::sync_io::Channel']]], + ['msg_5fin_5fptr_266',['Msg_in_ptr',['../classipc_1_1transport_1_1struc_1_1Channel.html#ae1f4b316eaeb7ed520a84d9e21e21063',1,'ipc::transport::struc::Channel::Msg_in_ptr()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acde2b3866547a30958035203d9d89928',1,'ipc::transport::struc::sync_io::Channel::Msg_in_ptr()']]], + ['msg_5fin_5fptr_5funiq_267',['Msg_in_ptr_uniq',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a84287334d14f54c97f7dbb0d5b04cca5',1,'ipc::transport::struc::sync_io::Channel']]], + ['msg_5fin_5fq_268',['Msg_in_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2eed5db328a8c45ab16a875617a172c7',1,'ipc::transport::struc::sync_io::Channel']]], + ['msg_5fmdt_5fout_269',['Msg_mdt_out',['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html',1,'ipc::transport::struc::Msg_mdt_out< Struct_builder_config >'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#acbf3e5dbf6879e358f0596633e1428e0',1,'ipc::transport::struc::sync_io::Channel::Msg_mdt_out()'],['../classipc_1_1transport_1_1struc_1_1Msg__mdt__out.html#a09b3e80aab955fbe367b8ebdf0fab792',1,'ipc::transport::struc::Msg_mdt_out::Msg_mdt_out()']]], + ['msg_5fmdt_5fout_2ehpp_270',['msg_mdt_out.hpp',['../msg__mdt__out_8hpp.html',1,'']]], + ['msg_5fout_271',['Msg_out',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc::Msg_out< Message_body, Struct_builder_t >'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9738acbcfb431dc1fc0174b42787060b',1,'ipc::transport::struc::Msg_out::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a860cc99a701576879ebb5a1db58153cc',1,'ipc::transport::struc::Channel::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a83fb4462a8d4045bdb56b694bf80393c',1,'ipc::transport::struc::sync_io::Channel::Msg_out()'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9d4ab66d2740f40a88f476d46dd04f1e',1,'ipc::transport::struc::Msg_out::Msg_out(const Builder_config &struct_builder_config)'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9e5271db0ea2b86ec4c68a91c60dd17a',1,'ipc::transport::struc::Msg_out::Msg_out(const Msg_out &)=delete'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a50c8fd96304e09aaf9bbacd9959c07d6',1,'ipc::transport::struc::Msg_out::Msg_out(Msg_out &&src)'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9289790ac6b85681c8697fc55ff8f3a7',1,'ipc::transport::struc::Msg_out::Msg_out()']]], + ['msg_5fout_3c_20message_5fbody_2c_20struct_5fbuilder_20_3e_272',['Msg_out< Message_body, Struct_builder >',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc']]], + ['msg_5fout_3c_20schema_3a_3adetail_3a_3astructuredmessage_2c_20struct_5fbuilder_5fconfig_3a_3abuilder_20_3e_273',['Msg_out< schema::detail::StructuredMessage, Struct_builder_config::Builder >',['../classipc_1_1transport_1_1struc_1_1Msg__out.html',1,'ipc::transport::struc']]], + ['msg_5fout_5fimpl_274',['Msg_out_impl',['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html',1,'ipc::transport::struc::Msg_out_impl< Message_body, Struct_builder >'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a984b6afa0f437c72aca5a1ba97f33a7f',1,'ipc::transport::struc::sync_io::Channel::Msg_out_impl()']]], + ['msg_5fwhich_275',['Msg_which',['../classipc_1_1transport_1_1struc_1_1Channel.html#a9a0382aa663c177f2a38b576d06b251e',1,'ipc::transport::struc::Channel::Msg_which()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1572a1b1cb4a72ea57f7841a5e78759b',1,'ipc::transport::struc::sync_io::Channel::Msg_which()']]], + ['msg_5fwhich_5fin_276',['Msg_which_in',['../classipc_1_1transport_1_1struc_1_1Channel.html#ac2a3a80151886bec41f3fc3a8880e384',1,'ipc::transport::struc::Channel::Msg_which_in()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa40c3ec3f45cdfea9360f7f35b9ade3c',1,'ipc::transport::struc::sync_io::Channel::Msg_which_in()']]], + ['msg_5fwhich_5fout_277',['Msg_which_out',['../classipc_1_1transport_1_1struc_1_1Channel.html#a4cc597a9ff8f460f5a773005f0a05805',1,'ipc::transport::struc::Channel::Msg_which_out()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a7a731cdae5217ed9e867fb80c1fb0fd9',1,'ipc::transport::struc::sync_io::Channel::Msg_which_out()']]], + ['msgs_5fin_278',['Msgs_in',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a4ab778bce8d7e6e84788879fedc62745',1,'ipc::transport::struc::sync_io::Channel']]], + ['multi_2dsplit_20universes_279',['Multi-split Universes',['../universes.html',1,'']]], + ['mutex_280',['Mutex',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a6e1d79535dbedc076f11077735e866db',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::Mutex()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a7b5893d6c0f0b1b3e33bcd3f5d183d8e',1,'ipc::session::shm::classic::Session_server::Mutex()'],['../classipc_1_1session_1_1Session__server__impl.html#ae7f35b32be309d354044662f0e17a891',1,'ipc::session::Session_server_impl::Mutex()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#ade399eda73424def3da0dd67596d2cff',1,'ipc::transport::struc::Channel::Mutex()']]] ]; diff --git a/doc/ipc_doc/generated/html_full/search/all_d.js b/doc/ipc_doc/generated/html_full/search/all_d.js index 19c4b2011..f688dbbaa 100644 --- a/doc/ipc_doc/generated/html_full/search/all_d.js +++ b/doc/ipc_doc/generated/html_full/search/all_d.js @@ -3,9 +3,9 @@ var searchData= ['n_5fsegments_0',['n_segments',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#a8d4767193250d909cdf5b298f92f43e9',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], ['n_5fserialization_5fsegments_1',['n_serialization_segments',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#adb630aeb1bb9e9335631f9e9e6dc25de',1,'ipc::transport::struc::Msg_out::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#a0f8b3c876c577aa0550d13faa60e30d2',1,'ipc::transport::struc::Heap_fixed_builder::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html#a98fdfc10c77d95b8d9817403168a6282',1,'ipc::transport::struc::Msg_out_impl::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Struct__builder.html#ae1516b0d68c48f2e13baf6aca366ac6c',1,'ipc::transport::struc::Struct_builder::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a8f01bec0e66080850379df98a2ecf99e',1,'ipc::transport::struc::shm::Builder::n_serialization_segments()']]], ['name_2',['name',['../classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html#a74f99c14f0266ef157ea8463a10aec00',1,'ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials::name()'],['../classipc_1_1transport_1_1error_1_1Category.html#a8588414535051329b98f0193aa65c894',1,'ipc::transport::error::Category::name()'],['../classipc_1_1transport_1_1struc_1_1error_1_1Category.html#ab02888d080779006aad5418741fb35b5',1,'ipc::transport::struc::error::Category::name()'],['../classipc_1_1session_1_1error_1_1Category.html#abc076c91c6b61108d6c25eb59740e774',1,'ipc::session::error::Category::name()'],['../classipc_1_1shm_1_1classic_1_1error_1_1Category.html#afce140ca2b7d27a3c6b0534b553f90de',1,'ipc::shm::classic::error::Category::name()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html#a733d66b21a24775468624b79acd838a2',1,'ipc::session::shm::arena_lend::jemalloc::error::Category::name()']]], - ['native_5fhandle_3',['Native_handle',['../structipc_1_1util_1_1Native__handle.html',1,'ipc::util::Native_handle'],['../structipc_1_1util_1_1Native__handle.html#a45ae7a5b093b5419a524cf30b07921c4',1,'ipc::util::Native_handle::Native_handle(const Native_handle &src)'],['../structipc_1_1util_1_1Native__handle.html#a54a6ce76ea4ce5aa68da13d7a677ca9f',1,'ipc::util::Native_handle::Native_handle(handle_t native_handle=S_NULL_HANDLE)'],['../structipc_1_1util_1_1Native__handle.html#a7176d013b1f8e0e09ba45d6fe7a81bb5',1,'ipc::util::Native_handle::Native_handle(Native_handle &&src)']]], - ['native_5fhandle_4',['native_handle',['../classipc_1_1transport_1_1Persistent__mq__handle.html#a25e96c4f060cc3c4b611c4e2de60abaf',1,'ipc::transport::Persistent_mq_handle::native_handle()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a62bc5410c9928099dff46ba021acb879',1,'ipc::transport::Posix_mq_handle::native_handle()'],['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#ad6663616504b4543a6227eb21279ce39',1,'ipc::util::sync_io::Asio_waitable_native_handle::native_handle()']]], - ['native_5fhandle_5',['Native_handle',['../namespaceipc_1_1transport.html#a7ee4551983d9df16ec16a3139bac50e8',1,'ipc::transport']]], + ['native_5fhandle_3',['Native_handle',['../structipc_1_1util_1_1Native__handle.html',1,'ipc::util']]], + ['native_5fhandle_4',['native_handle',['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#ad6663616504b4543a6227eb21279ce39',1,'ipc::util::sync_io::Asio_waitable_native_handle::native_handle()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a25e96c4f060cc3c4b611c4e2de60abaf',1,'ipc::transport::Persistent_mq_handle::native_handle()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a62bc5410c9928099dff46ba021acb879',1,'ipc::transport::Posix_mq_handle::native_handle()']]], + ['native_5fhandle_5',['Native_handle',['../structipc_1_1util_1_1Native__handle.html#a54a6ce76ea4ce5aa68da13d7a677ca9f',1,'ipc::util::Native_handle::Native_handle(handle_t native_handle=S_NULL_HANDLE)'],['../structipc_1_1util_1_1Native__handle.html#a7176d013b1f8e0e09ba45d6fe7a81bb5',1,'ipc::util::Native_handle::Native_handle(Native_handle &&src)'],['../structipc_1_1util_1_1Native__handle.html#a45ae7a5b093b5419a524cf30b07921c4',1,'ipc::util::Native_handle::Native_handle(const Native_handle &src)'],['../namespaceipc_1_1transport.html#a7ee4551983d9df16ec16a3139bac50e8',1,'ipc::transport::Native_handle()']]], ['native_5fhandle_2ecpp_6',['native_handle.cpp',['../native__handle_8cpp.html',1,'']]], ['native_5fhandle_2ehpp_7',['native_handle.hpp',['../native__handle_8hpp.html',1,'']]], ['native_5fhandle_5for_5fnull_8',['native_handle_or_null',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba',1,'ipc::transport::struc::Msg_out::native_handle_or_null()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aba0b83c9d8a7e8f782202406ca387e2c',1,'ipc::transport::struc::Msg_in::native_handle_or_null()']]], diff --git a/doc/ipc_doc/generated/html_full/search/all_e.js b/doc/ipc_doc/generated/html_full/search/all_e.js index f9f4f65c0..e977f8d85 100644 --- a/doc/ipc_doc/generated/html_full/search/all_e.js +++ b/doc/ipc_doc/generated/html_full/search/all_e.js @@ -48,8 +48,8 @@ var searchData= ['operator_3e_3e_45',['operator>>',['../namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html#ae4648058e0704f5c1c1dbac3c1364b09',1,'ipc::session::shm::arena_lend::jemalloc::error::operator>>()'],['../namespaceipc_1_1shm_1_1classic_1_1error.html#affc3eb235917a58a91f92c94660f09e6',1,'ipc::shm::classic::error::operator>>()'],['../namespaceipc_1_1session_1_1error.html#a6041e74db4e17a75d8eed2541dc026f6',1,'ipc::session::error::operator>>()'],['../namespaceipc_1_1transport_1_1struc_1_1error.html#aed7cb279b20df34d1829ee729859e575',1,'ipc::transport::struc::error::operator>>()'],['../namespaceipc_1_1util.html#adfd8805e0d37556102cad7b191fee9a3',1,'ipc::util::operator>>()'],['../namespaceipc_1_1transport_1_1error.html#a64595c41a5810937c39733230628c499',1,'ipc::transport::error::operator>>()'],['../classipc_1_1util_1_1Shared__name.html#adfd8805e0d37556102cad7b191fee9a3',1,'ipc::util::Shared_name::operator>>()']]], ['opt_5fpeer_5fprocess_5fcredentials_46',['Opt_peer_process_credentials',['../classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html',1,'ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials'],['../classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html#a09c70548774b3e063500a04d4f72d803',1,'ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials::Opt_peer_process_credentials()'],['../classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html#a2ef81666e906cc497f273c7a1ef908bf',1,'ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials::Opt_peer_process_credentials(const Opt_peer_process_credentials &src)']]], ['originating_5fmsg_5fid_5for_5fnone_47',['originating_msg_id_or_none',['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#a0cca042534b3ebee0a90e2c6d7c1c7ca',1,'ipc::transport::struc::Msg_in_impl::originating_msg_id_or_none()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#ac14e45f1df2ade79bfe525a97d65469c',1,'ipc::transport::struc::Msg_in::originating_msg_id_or_none()']]], - ['orphanage_48',['Orphanage',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#acd04d61cf19ad87610598fddbb5d8052',1,'ipc::transport::struc::Msg_out']]], - ['orphanage_49',['orphanage',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9303c71f8f459ede25ebe0c8f5492393',1,'ipc::transport::struc::Msg_out']]], + ['orphanage_48',['orphanage',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a9303c71f8f459ede25ebe0c8f5492393',1,'ipc::transport::struc::Msg_out']]], + ['orphanage_49',['Orphanage',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#acd04d61cf19ad87610598fddbb5d8052',1,'ipc::transport::struc::Msg_out']]], ['own_5fgroup_5fid_50',['own_group_id',['../classipc_1_1util_1_1Process__credentials.html#a9c4074f11192a1193afb019d04753cd2',1,'ipc::util::Process_credentials']]], ['own_5fprocess_5fcredentials_51',['own_process_credentials',['../classipc_1_1util_1_1Process__credentials.html#a573d6de2f257144562fd55e0772991f1',1,'ipc::util::Process_credentials']]], ['own_5fprocess_5fid_52',['own_process_id',['../classipc_1_1util_1_1Process__credentials.html#a18c901aeeed11c91afcc6379260f02a5',1,'ipc::util::Process_credentials']]], diff --git a/doc/ipc_doc/generated/html_full/search/functions_8.js b/doc/ipc_doc/generated/html_full/search/functions_8.js index dee86a7c7..3aad6add0 100644 --- a/doc/ipc_doc/generated/html_full/search/functions_8.js +++ b/doc/ipc_doc/generated/html_full/search/functions_8.js @@ -2,9 +2,9 @@ var searchData= [ ['id_5for_5fnone_0',['id_or_none',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#ad42fc6c023dae0f6bf66ffb3a3437fa4',1,'ipc::transport::struc::Msg_in::id_or_none()'],['../classipc_1_1transport_1_1struc_1_1Msg__in__impl.html#abd54a8eca0685638068734630e53c697',1,'ipc::transport::struc::Msg_in_impl::id_or_none()']]], ['idle_5ftimer_5frun_1',['idle_timer_run',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a2067b525e54efd90bdc584cf77f7ae4b',1,'ipc::transport::sync_io::Async_adapter_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#ac645b3e69ee3bfda64c0e9fda62f656a',1,'ipc::transport::sync_io::Native_socket_stream::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html#a57ec0f2a9c1b8bfbaaf88975433a1354',1,'ipc::transport::sync_io::Native_handle_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abedd0db5a5ae04e47085728ae548d07c',1,'ipc::transport::sync_io::Native_socket_stream::Impl::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a878fa03873bcdea5aa9d938a4791325f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html#a6888f84e88c00d28daa579a9b47a2d77',1,'ipc::transport::sync_io::Blob_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a9ebd5852a2cad6d01e299507e4729b62',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Native__socket__stream.html#a1b4ce3ddee39f21e752ec9114ac17bbd',1,'ipc::transport::Native_socket_stream::idle_timer_run()'],['../classipc_1_1transport_1_1Native__handle__receiver.html#a174ee15818a8bda361bdc40f094faac9',1,'ipc::transport::Native_handle_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a3103ec6899bfb6f945d970d8c4114338',1,'ipc::transport::Native_socket_stream::Impl::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a20c29f8ed0b480497ad47c9247235c58',1,'ipc::transport::Blob_stream_mq_receiver_impl::idle_timer_run()'],['../classipc_1_1transport_1_1Channel.html#abf25364b49b9fdd3ba4b1541b3a50356',1,'ipc::transport::Channel::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__receiver.html#a5be288e0479a91e352fdea6d54460b22',1,'ipc::transport::Blob_receiver::idle_timer_run()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a444ed00ac6f4375a1bb65d0cd036b493',1,'ipc::transport::Blob_stream_mq_receiver::idle_timer_run()']]], - ['impl_2',['impl',['../classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25',1,'ipc::session::Session_mv']]], - ['impl_3',['Impl',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae43a7982c98b4eb6501e7f74f3f6fa04',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, std::nullptr_t tag)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a90f29990e2e88052232c218c076414c7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae9194e2eefe81185d1bf067b1f934657',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae6713aa742cee52ae9ca16156d1f8599',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_moved, std::nullptr_t tag)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae50a22a4dd601f009134d2aaa2841eca',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_in_peer_state_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#af9aa3d981a2295bd9cfa9e5d3f567cb9',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad7c2d6c843935c5413d3dd8fbc39d272',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)']]], - ['impl_4',['impl',['../classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63',1,'ipc::session::Session_mv::impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a8e3703d5c8bac62f828a372691249c85',1,'ipc::transport::sync_io::Native_socket_stream::impl()'],['../classipc_1_1transport_1_1Native__socket__stream.html#a0d0416ffe729877dad845e88c3609974',1,'ipc::transport::Native_socket_stream::impl()']]], + ['impl_2',['Impl',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae50a22a4dd601f009134d2aaa2841eca',1,'ipc::transport::Native_socket_stream::Impl']]], + ['impl_3',['impl',['../classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63',1,'ipc::session::Session_mv::impl() const'],['../classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25',1,'ipc::session::Session_mv::impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a8e3703d5c8bac62f828a372691249c85',1,'ipc::transport::sync_io::Native_socket_stream::impl()'],['../classipc_1_1transport_1_1Native__socket__stream.html#a0d0416ffe729877dad845e88c3609974',1,'ipc::transport::Native_socket_stream::impl()']]], + ['impl_4',['Impl',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae43a7982c98b4eb6501e7f74f3f6fa04',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, std::nullptr_t tag)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a90f29990e2e88052232c218c076414c7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ae9194e2eefe81185d1bf067b1f934657',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ae6713aa742cee52ae9ca16156d1f8599',1,'ipc::transport::Native_socket_stream::Impl::Impl(sync_io::Native_socket_stream &&sync_io_core_moved, std::nullptr_t tag)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#af9aa3d981a2295bd9cfa9e5d3f567cb9',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Native_handle &&native_peer_socket_moved)'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad7c2d6c843935c5413d3dd8fbc39d272',1,'ipc::transport::Native_socket_stream::Impl::Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)']]], ['increment_5fuse_5',['increment_use',['../classipc_1_1util_1_1Use__counted__object.html#a2d616e432356ba5198b4827a30157d28',1,'ipc::util::Use_counted_object']]], ['init_5fapp_5fshm_5fas_5fneeded_6',['init_app_shm_as_needed',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a406e3860e68d2e863e64215aae43812e',1,'ipc::session::shm::classic::Session_server::init_app_shm_as_needed()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#ae5b53f9881efc8eccb5f93dc7d820c70',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::init_app_shm_as_needed()']]], ['init_5fblob_5fpipe_7',['init_blob_pipe',['../classipc_1_1transport_1_1Channel.html#aa8209a5adde4e5c2b3b1d8779fab0433',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd_and_rcv)'],['../classipc_1_1transport_1_1Channel.html#abc969fa7785f5acda19a0c08bfeeb7e9',1,'ipc::transport::Channel::init_blob_pipe(Blob_sender_obj &&snd, Blob_receiver_obj &&rcv)']]], diff --git a/doc/ipc_doc/generated/html_full/search/functions_b.js b/doc/ipc_doc/generated/html_full/search/functions_b.js index 032acb9ba..d5e94d59f 100644 --- a/doc/ipc_doc/generated/html_full/search/functions_b.js +++ b/doc/ipc_doc/generated/html_full/search/functions_b.js @@ -3,8 +3,8 @@ var searchData= ['n_5fsegments_0',['n_segments',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#a8d4767193250d909cdf5b298f92f43e9',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], ['n_5fserialization_5fsegments_1',['n_serialization_segments',['../classipc_1_1transport_1_1struc_1_1Msg__out__impl.html#a98fdfc10c77d95b8d9817403168a6282',1,'ipc::transport::struc::Msg_out_impl::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#a0f8b3c876c577aa0550d13faa60e30d2',1,'ipc::transport::struc::Heap_fixed_builder::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Msg__out.html#adb630aeb1bb9e9335631f9e9e6dc25de',1,'ipc::transport::struc::Msg_out::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Struct__builder.html#ae1516b0d68c48f2e13baf6aca366ac6c',1,'ipc::transport::struc::Struct_builder::n_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a8f01bec0e66080850379df98a2ecf99e',1,'ipc::transport::struc::shm::Builder::n_serialization_segments()']]], ['name_2',['name',['../classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html#a74f99c14f0266ef157ea8463a10aec00',1,'ipc::transport::asio_local_stream_socket::Opt_peer_process_credentials::name()'],['../classipc_1_1transport_1_1error_1_1Category.html#a8588414535051329b98f0193aa65c894',1,'ipc::transport::error::Category::name()'],['../classipc_1_1transport_1_1struc_1_1error_1_1Category.html#ab02888d080779006aad5418741fb35b5',1,'ipc::transport::struc::error::Category::name()'],['../classipc_1_1session_1_1error_1_1Category.html#abc076c91c6b61108d6c25eb59740e774',1,'ipc::session::error::Category::name()'],['../classipc_1_1shm_1_1classic_1_1error_1_1Category.html#afce140ca2b7d27a3c6b0534b553f90de',1,'ipc::shm::classic::error::Category::name()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Category.html#a733d66b21a24775468624b79acd838a2',1,'ipc::session::shm::arena_lend::jemalloc::error::Category::name()']]], - ['native_5fhandle_3',['native_handle',['../classipc_1_1transport_1_1Persistent__mq__handle.html#a25e96c4f060cc3c4b611c4e2de60abaf',1,'ipc::transport::Persistent_mq_handle::native_handle()'],['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#ad6663616504b4543a6227eb21279ce39',1,'ipc::util::sync_io::Asio_waitable_native_handle::native_handle()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a62bc5410c9928099dff46ba021acb879',1,'ipc::transport::Posix_mq_handle::native_handle()']]], - ['native_5fhandle_4',['Native_handle',['../structipc_1_1util_1_1Native__handle.html#a45ae7a5b093b5419a524cf30b07921c4',1,'ipc::util::Native_handle::Native_handle(const Native_handle &src)'],['../structipc_1_1util_1_1Native__handle.html#a7176d013b1f8e0e09ba45d6fe7a81bb5',1,'ipc::util::Native_handle::Native_handle(Native_handle &&src)'],['../structipc_1_1util_1_1Native__handle.html#a54a6ce76ea4ce5aa68da13d7a677ca9f',1,'ipc::util::Native_handle::Native_handle(handle_t native_handle=S_NULL_HANDLE)']]], + ['native_5fhandle_3',['Native_handle',['../structipc_1_1util_1_1Native__handle.html#a54a6ce76ea4ce5aa68da13d7a677ca9f',1,'ipc::util::Native_handle::Native_handle(handle_t native_handle=S_NULL_HANDLE)'],['../structipc_1_1util_1_1Native__handle.html#a45ae7a5b093b5419a524cf30b07921c4',1,'ipc::util::Native_handle::Native_handle(const Native_handle &src)'],['../structipc_1_1util_1_1Native__handle.html#a7176d013b1f8e0e09ba45d6fe7a81bb5',1,'ipc::util::Native_handle::Native_handle(Native_handle &&src)']]], + ['native_5fhandle_4',['native_handle',['../classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html#ad6663616504b4543a6227eb21279ce39',1,'ipc::util::sync_io::Asio_waitable_native_handle::native_handle()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#a62bc5410c9928099dff46ba021acb879',1,'ipc::transport::Posix_mq_handle::native_handle()'],['../classipc_1_1transport_1_1Persistent__mq__handle.html#a25e96c4f060cc3c4b611c4e2de60abaf',1,'ipc::transport::Persistent_mq_handle::native_handle()']]], ['native_5fhandle_5for_5fnull_5',['native_handle_or_null',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#ae033461f1404be60262033bafcfaccba',1,'ipc::transport::struc::Msg_out::native_handle_or_null()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aba0b83c9d8a7e8f782202406ca387e2c',1,'ipc::transport::struc::Msg_in::native_handle_or_null()']]], ['native_5fhandle_5freceiver_6',['Native_handle_receiver',['../classipc_1_1transport_1_1Native__handle__receiver.html#a748df49e5098e922c5974643d7a1bbde',1,'ipc::transport::Native_handle_receiver::Native_handle_receiver()'],['../classipc_1_1transport_1_1Native__handle__receiver.html#accd891967ffb57341a26ed0764012713',1,'ipc::transport::Native_handle_receiver::Native_handle_receiver(sync_io::Native_handle_receiver &&sync_io_core_in_peer_state_moved)'],['../classipc_1_1transport_1_1Native__handle__receiver.html#a01de65ed1a7c747e5569e14221b6f9bf',1,'ipc::transport::Native_handle_receiver::Native_handle_receiver(Native_handle_receiver &&src)'],['../classipc_1_1transport_1_1Native__handle__receiver.html#afa535558f8e9157d9e95e143376bb6e3',1,'ipc::transport::Native_handle_receiver::Native_handle_receiver(const Native_handle_receiver &)=delete'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html#a4d1ef7666fc35e98ced97abdc131a345',1,'ipc::transport::sync_io::Native_handle_receiver::Native_handle_receiver()'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html#a9e32e2a96c2dad89f9ccab34c96e545c',1,'ipc::transport::sync_io::Native_handle_receiver::Native_handle_receiver(Native_handle_receiver &&src)'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html#af97ff850390e2d912a47bd9b2ef1f3d2',1,'ipc::transport::sync_io::Native_handle_receiver::Native_handle_receiver(const Native_handle_receiver &)=delete']]], ['native_5fhandle_5fsender_7',['Native_handle_sender',['../classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html#af3efe9a668e251175e5e199e99f9257d',1,'ipc::transport::sync_io::Native_handle_sender::Native_handle_sender(const Native_handle_sender &)=delete'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html#aa99ee4ded3b81cbaea9cb7aeac52a896',1,'ipc::transport::sync_io::Native_handle_sender::Native_handle_sender(Native_handle_sender &&src)'],['../classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html#a935bfba8ac18f395eb920224395cbc8f',1,'ipc::transport::sync_io::Native_handle_sender::Native_handle_sender()'],['../classipc_1_1transport_1_1Native__handle__sender.html#a4348f5448609ef83c53a161e472f85d5',1,'ipc::transport::Native_handle_sender::Native_handle_sender(Native_handle_sender &&src)'],['../classipc_1_1transport_1_1Native__handle__sender.html#a616a05a623410acde1fc225cbc22f03f',1,'ipc::transport::Native_handle_sender::Native_handle_sender(sync_io::Native_handle_sender &&sync_io_core_in_peer_state_moved)'],['../classipc_1_1transport_1_1Native__handle__sender.html#abafdb9a1294fe2160c61d48f1cd327ff',1,'ipc::transport::Native_handle_sender::Native_handle_sender()'],['../classipc_1_1transport_1_1Native__handle__sender.html#a531e4ea9d23cbcb1c456b51b5fa2dca1',1,'ipc::transport::Native_handle_sender::Native_handle_sender(const Native_handle_sender &)=delete']]], diff --git a/doc/ipc_doc/generated/html_full/search/variables_3.js b/doc/ipc_doc/generated/html_full/search/variables_3.js index 7522051a4..b6c1a34ee 100644 --- a/doc/ipc_doc/generated/html_full/search/variables_3.js +++ b/doc/ipc_doc/generated/html_full/search/variables_3.js @@ -42,7 +42,7 @@ var searchData= ['m_5fepoll_5fhndl_5frcv_39',['m_epoll_hndl_rcv',['../classipc_1_1transport_1_1Posix__mq__handle.html#a859113a2c5248287efc55115654ec0ac',1,'ipc::transport::Posix_mq_handle']]], ['m_5fepoll_5fhndl_5fsnd_40',['m_epoll_hndl_snd',['../classipc_1_1transport_1_1Posix__mq__handle.html#a339b2a92eb51f445752b798e17560bd4',1,'ipc::transport::Posix_mq_handle']]], ['m_5fev_5fhndl_5ftask_5fengine_5funused_41',['m_ev_hndl_task_engine_unused',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aa3b1062b158606ea1760a3952b978e73',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_ev_hndl_task_engine_unused()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#abdda4c698320a44bdf479340cbed6934',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_ev_hndl_task_engine_unused()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a0900c54fc01d0d67b94208b47fff7469',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_ev_hndl_task_engine_unused()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a92204271b30221bbb46bea5a6dc5b20a',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ev_hndl_task_engine_unused()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#af305212e9de780ac16f4bfed4a666f7f',1,'ipc::session::sync_io::Session_adapter::m_ev_hndl_task_engine_unused()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a7166adae8af99857bb966829fcc0ba99',1,'ipc::session::sync_io::Session_server_adapter::m_ev_hndl_task_engine_unused()']]], - ['m_5fev_5fwait_5ffunc_42',['m_ev_wait_func',['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a0190d535983fbf6abf8d82a915771e89',1,'ipc::session::sync_io::Session_server_adapter::m_ev_wait_func()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad234c5fbbbd01b0c8b3f3edfa02f1cb0',1,'ipc::session::sync_io::Session_adapter::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a42946f27cfa62a6bb36a96d0cbb91b1e',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a1c8ac9998df02ead0180c6bc00bc58dd',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a9dca3046bc4d15657c08ac1c06f3b36d',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_ev_wait_func()']]], + ['m_5fev_5fwait_5ffunc_42',['m_ev_wait_func',['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a0190d535983fbf6abf8d82a915771e89',1,'ipc::session::sync_io::Session_server_adapter::m_ev_wait_func()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad234c5fbbbd01b0c8b3f3edfa02f1cb0',1,'ipc::session::sync_io::Session_adapter::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a9dca3046bc4d15657c08ac1c06f3b36d',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a1c8ac9998df02ead0180c6bc00bc58dd',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_ev_wait_func()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a42946f27cfa62a6bb36a96d0cbb91b1e',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ev_wait_func()']]], ['m_5fev_5fwait_5fhndl_43',['m_ev_wait_hndl',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#ad9546dcd26e1f0566f9662a88a1a6dbe',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ev_wait_hndl()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a303eace5e24c56d8c17e9b0f79f4446b',1,'ipc::session::sync_io::Session_server_adapter::m_ev_wait_hndl()']]], ['m_5fev_5fwait_5fhndl_5fauto_5fping_5ftimer_5ffired_5fpeer_44',['m_ev_wait_hndl_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a50bf9bbbf413b27e6189aa4d393b9dd7',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], ['m_5fev_5fwait_5fhndl_5fchan_45',['m_ev_wait_hndl_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a8e4d1659efd084274bcea1bbcee88533',1,'ipc::session::sync_io::Session_adapter']]], @@ -55,7 +55,7 @@ var searchData= ['m_5fexec_5fpath_52',['m_exec_path',['../structipc_1_1session_1_1App.html#ae82a8635858664720c8546e468f8090b',1,'ipc::session::App']]], ['m_5ffinished_53',['m_finished',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ac9712c677320d7e9d4efa83798fa8aac',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], ['m_5fframe_5fpostfix_5fsz_54',['m_frame_postfix_sz',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#aa52369c664ada39cedb0a70f08880931',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_frame_postfix_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#ac0f5855ff005915ead9b7b109423408c',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_frame_postfix_sz()']]], - ['m_5fframe_5fprefix_5fsz_55',['m_frame_prefix_sz',['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#aeb6fcd8308642adbcb6edcd564375c88',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_frame_prefix_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#ac4e465bb2099093f06cd7e969d2e3de6',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_frame_prefix_sz()']]], + ['m_5fframe_5fprefix_5fsz_55',['m_frame_prefix_sz',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#ac4e465bb2099093f06cd7e969d2e3de6',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_frame_prefix_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#aeb6fcd8308642adbcb6edcd564375c88',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_frame_prefix_sz()']]], ['m_5fgraceful_5ffinisher_56',['m_graceful_finisher',['../classipc_1_1session_1_1Client__session__impl.html#abba4e0890f2d40b0f0cd76ecface739f',1,'ipc::session::Client_session_impl::m_graceful_finisher()'],['../classipc_1_1session_1_1Server__session__impl.html#ac473cff436bde8b069a3f0d55d9c3b51',1,'ipc::session::Server_session_impl::m_graceful_finisher()']]], ['m_5fgroup_5fid_57',['m_group_id',['../structipc_1_1session_1_1App.html#a78bb1e984835f429fd44869a83f4b093',1,'ipc::session::App']]], ['m_5fhndl_5for_5fnull_58',['m_hndl_or_null',['../classipc_1_1transport_1_1struc_1_1Msg__out.html#a31538b5675e0deb607f74d97e9205cf6',1,'ipc::transport::struc::Msg_out::m_hndl_or_null()'],['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a62c9c5fe295e00fc7672a7d256ec28f1',1,'ipc::transport::struc::Msg_in::m_hndl_or_null()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload.html#a1896eff734a019cec47970cc081482e8',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Snd_low_lvl_payload::m_hndl_or_null()']]], @@ -65,7 +65,7 @@ var searchData= ['m_5fidle_5ftimeout_62',['m_idle_timeout',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a370d5984484667dae6fd227e7ef0d4ff',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], ['m_5fidle_5ftimer_63',['m_idle_timer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a7f3ac613026a5c7704641ba5b3971fe5',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], ['m_5fidle_5ftimer_5ffired_5fpeer_64',['m_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a64d71115e8212c896eb7baa82f005c82',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], - ['m_5fimpl_65',['m_impl',['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#af81738986da26bdd1bb3eef3ccd29296',1,'ipc::transport::Blob_stream_mq_sender::m_impl()'],['../classipc_1_1session_1_1Session__mv.html#ae1b726126c99bb55036f8c0c2ad6640f',1,'ipc::session::Session_mv::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a9db322dea8a43f4ceb04a2085d63afb0',1,'ipc::transport::sync_io::Native_socket_stream::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#acab2826dc8ebedf8f5f1a78cb6007795',1,'ipc::transport::sync_io::Blob_stream_mq_sender::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a96eaa9fcffbe99f7872d700149cce45c',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::m_impl()'],['../classipc_1_1transport_1_1Native__socket__stream.html#abb4c0c38ff868a91ee3597e0bd237d34',1,'ipc::transport::Native_socket_stream::m_impl()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a181eb6e9705b8787bb238174da1b6e51',1,'ipc::transport::Blob_stream_mq_receiver::m_impl()']]], + ['m_5fimpl_65',['m_impl',['../classipc_1_1transport_1_1Native__socket__stream.html#abb4c0c38ff868a91ee3597e0bd237d34',1,'ipc::transport::Native_socket_stream::m_impl()'],['../classipc_1_1session_1_1Session__mv.html#ae1b726126c99bb55036f8c0c2ad6640f',1,'ipc::session::Session_mv::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html#a9db322dea8a43f4ceb04a2085d63afb0',1,'ipc::transport::sync_io::Native_socket_stream::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html#acab2826dc8ebedf8f5f1a78cb6007795',1,'ipc::transport::sync_io::Blob_stream_mq_sender::m_impl()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html#a96eaa9fcffbe99f7872d700149cce45c',1,'ipc::transport::sync_io::Blob_stream_mq_receiver::m_impl()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender.html#af81738986da26bdd1bb3eef3ccd29296',1,'ipc::transport::Blob_stream_mq_sender::m_impl()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver.html#a181eb6e9705b8787bb238174da1b6e51',1,'ipc::transport::Blob_stream_mq_receiver::m_impl()']]], ['m_5fincomplete_5fmsg_66',['m_incomplete_msg',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#aa02a4835e4bd31cd5f6ea9bbd37eeff4',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], ['m_5fincomplete_5fsession_5fgraveyard_67',['m_incomplete_session_graveyard',['../structipc_1_1session_1_1Session__server__impl_1_1State.html#afea14f96bce70093ebf65d0f9b612b29',1,'ipc::session::Session_server_impl::State']]], ['m_5fincomplete_5fsessions_68',['m_incomplete_sessions',['../structipc_1_1session_1_1Session__server__impl_1_1State.html#ab6097ff11f1f8cca396ece86482861f4',1,'ipc::session::Session_server_impl::State']]], @@ -79,16 +79,16 @@ var searchData= ['m_5flast_5factively_5fopened_5fchannel_5fid_76',['m_last_actively_opened_channel_id',['../classipc_1_1session_1_1Client__session__impl.html#ade1b57a26147ececddbd0234c0b63be9',1,'ipc::session::Client_session_impl::m_last_actively_opened_channel_id()'],['../classipc_1_1session_1_1Server__session__impl.html#a6677dde04bab0c72881848a9b72a8227',1,'ipc::session::Server_session_impl::m_last_actively_opened_channel_id()']]], ['m_5flast_5fchannel_5fmq_5fid_77',['m_last_channel_mq_id',['../classipc_1_1session_1_1Server__session__impl.html#a54af1ca2d4e5485a2709f77d3f13635d',1,'ipc::session::Server_session_impl']]], ['m_5flast_5fcli_5fnamespace_78',['m_last_cli_namespace',['../structipc_1_1session_1_1Session__server__impl_1_1State.html#a76d6d531e2bb8e82992a35959357b16d',1,'ipc::session::Session_server_impl::State']]], - ['m_5flast_5fpassively_5fopened_5fchannel_5fid_79',['m_last_passively_opened_channel_id',['../classipc_1_1session_1_1Client__session__impl.html#a89d1ce46faa61df455b6f186eb892711',1,'ipc::session::Client_session_impl::m_last_passively_opened_channel_id()'],['../classipc_1_1session_1_1Server__session__impl.html#a869571c6ad3555df2396d561768b3f79',1,'ipc::session::Server_session_impl::m_last_passively_opened_channel_id()']]], + ['m_5flast_5fpassively_5fopened_5fchannel_5fid_79',['m_last_passively_opened_channel_id',['../classipc_1_1session_1_1Server__session__impl.html#a869571c6ad3555df2396d561768b3f79',1,'ipc::session::Server_session_impl::m_last_passively_opened_channel_id()'],['../classipc_1_1session_1_1Client__session__impl.html#a89d1ce46faa61df455b6f186eb892711',1,'ipc::session::Client_session_impl::m_last_passively_opened_channel_id()']]], ['m_5flead_5fmsg_5fmode_80',['m_lead_msg_mode',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a3d239c5a1e29bd6db1ee7c4764616549',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], ['m_5flocal_5fmax_5fproto_5fver_81',['m_local_max_proto_ver',['../classipc_1_1transport_1_1Protocol__negotiator.html#a7365678b968b2afb5428ca15a017e120',1,'ipc::transport::Protocol_negotiator']]], ['m_5flocal_5fmax_5fproto_5fver_5fsent_82',['m_local_max_proto_ver_sent',['../classipc_1_1transport_1_1Protocol__negotiator.html#acd3f04dd8fd5181379d58fa9a25bf447',1,'ipc::transport::Protocol_negotiator']]], ['m_5flocal_5fmin_5fproto_5fver_83',['m_local_min_proto_ver',['../classipc_1_1transport_1_1Protocol__negotiator.html#ac78f181ecd2ce58e18c6c90d3c03d230',1,'ipc::transport::Protocol_negotiator']]], ['m_5flog_5fin_5fon_5fdone_5ffunc_84',['m_log_in_on_done_func',['../classipc_1_1session_1_1Server__session__impl.html#a59236329cf8e0f75c9ef628def1b97a7',1,'ipc::session::Server_session_impl']]], - ['m_5flog_5fpfx_85',['m_log_pfx',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#aa6e0c8421b44bc49fff0c7cab706d18d',1,'ipc::transport::sync_io::Async_adapter_sender::m_log_pfx()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a5dd1bf37b817a3ebbb968d34f0d240b1',1,'ipc::transport::sync_io::Async_adapter_receiver::m_log_pfx()']]], + ['m_5flog_5fpfx_85',['m_log_pfx',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a5dd1bf37b817a3ebbb968d34f0d240b1',1,'ipc::transport::sync_io::Async_adapter_receiver::m_log_pfx()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#aa6e0c8421b44bc49fff0c7cab706d18d',1,'ipc::transport::sync_io::Async_adapter_sender::m_log_pfx()']]], ['m_5flogger_5ffor_5fblobs_86',['m_logger_for_blobs',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#ae15044026ef19363177d474c6ac890bc',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], - ['m_5flogger_5fptr_87',['m_logger_ptr',['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a8e16bef50eeda7c1af3b7caaa862fe73',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html#a7c2548263f04d8c37b846b534a874917',1,'ipc::transport::struc::Heap_reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html#ab818ec0d61c6c797f27222acc5fc0038',1,'ipc::transport::struc::Struct_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html#aee7630fa3413e39c1cec5f544ca0d8fe',1,'ipc::transport::struc::Struct_reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#a4c287783d239663193a681aad8690dd4',1,'ipc::transport::struc::shm::Builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#ad6bac9489c95df6c13a36d467ac1f6aa',1,'ipc::transport::struc::shm::Reader::Config::m_logger_ptr()']]], - ['m_5fmaster_5fchannel_88',['m_master_channel',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a8dd106d9ac3223737dac58d0b056367b',1,'ipc::session::Session_base::Graceful_finisher::m_master_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a81eb6769bc75d900bb3c442047249503',1,'ipc::session::Server_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Client__session__impl.html#a3acf3432c3806476fc20e951d0790949',1,'ipc::session::Client_session_impl::m_master_channel()']]], + ['m_5flogger_5fptr_87',['m_logger_ptr',['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a8e16bef50eeda7c1af3b7caaa862fe73',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#ad6bac9489c95df6c13a36d467ac1f6aa',1,'ipc::transport::struc::shm::Reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#a4c287783d239663193a681aad8690dd4',1,'ipc::transport::struc::shm::Builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html#ab818ec0d61c6c797f27222acc5fc0038',1,'ipc::transport::struc::Struct_builder::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html#aee7630fa3413e39c1cec5f544ca0d8fe',1,'ipc::transport::struc::Struct_reader::Config::m_logger_ptr()'],['../structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html#a7c2548263f04d8c37b846b534a874917',1,'ipc::transport::struc::Heap_reader::Config::m_logger_ptr()']]], + ['m_5fmaster_5fchannel_88',['m_master_channel',['../classipc_1_1session_1_1Client__session__impl.html#a3acf3432c3806476fc20e951d0790949',1,'ipc::session::Client_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Server__session__impl.html#a81eb6769bc75d900bb3c442047249503',1,'ipc::session::Server_session_impl::m_master_channel()'],['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#a8dd106d9ac3223737dac58d0b056367b',1,'ipc::session::Session_base::Graceful_finisher::m_master_channel()']]], ['m_5fmaster_5fsock_5facceptor_89',['m_master_sock_acceptor',['../structipc_1_1session_1_1Session__server__impl_1_1State.html#a7d717bece2122ff619496717b5da7b68',1,'ipc::session::Session_server_impl::State']]], ['m_5fmaster_5fsock_5fstm_90',['m_master_sock_stm',['../classipc_1_1session_1_1Server__session__impl.html#a9be157fe8791e7be2dd43bd06480d3eb',1,'ipc::session::Server_session_impl']]], ['m_5fmdt_5fbuilder_91',['m_mdt_builder',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a91c936c8824be5dfc7112a5b02fc730d',1,'ipc::session::Client_session_impl::Master_channel_req::m_mdt_builder()'],['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#aa1a85c280c8144f3dfd4ba069de2eb0a',1,'ipc::session::Server_session_impl::Open_channel_req::m_mdt_builder()']]], @@ -96,7 +96,7 @@ var searchData= ['m_5fmdt_5freader_93',['m_mdt_reader',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a6fd10709650b97357f05bf9cf402c10e',1,'ipc::transport::struc::Msg_in']]], ['m_5fmdt_5freader_5fptr_94',['m_mdt_reader_ptr',['../structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html#a5868da8b3a718d43af3d3b7a5c611cd8',1,'ipc::session::sync_io::Session_adapter::Channel_open_result']]], ['m_5fmdt_5froot_95',['m_mdt_root',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a198052c9afc3f0f2727dd38214169b2b',1,'ipc::transport::struc::Msg_in']]], - ['m_5fmq_96',['m_mq',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a32a49dff090ce4b658707e7d9b9036c9',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ae71fa0a5594915910b0b8dd88743f62e',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq()'],['../classipc_1_1transport_1_1Bipc__mq__handle.html#a152b99bc327c774553e9b90a5f0bc4d3',1,'ipc::transport::Bipc_mq_handle::m_mq()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#ae9465f6fe5c2d36bcbe747fe1bf8d995',1,'ipc::transport::Posix_mq_handle::m_mq()']]], + ['m_5fmq_96',['m_mq',['../classipc_1_1transport_1_1Bipc__mq__handle.html#a152b99bc327c774553e9b90a5f0bc4d3',1,'ipc::transport::Bipc_mq_handle::m_mq()'],['../classipc_1_1transport_1_1Posix__mq__handle.html#ae9465f6fe5c2d36bcbe747fe1bf8d995',1,'ipc::transport::Posix_mq_handle::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ae71fa0a5594915910b0b8dd88743f62e',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a32a49dff090ce4b658707e7d9b9036c9',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq()']]], ['m_5fmq_5fmax_5fmsg_5fsz_97',['m_mq_max_msg_sz',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a25ec1b85b46e3b9ad9a4fe59bc158f45',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_max_msg_sz()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a3a69e00d989a53f1151c64b58560551f',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_max_msg_sz()']]], ['m_5fmq_5fready_5freader_98',['m_mq_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af742578435fde1d0c536196698ddbc75',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_ready_reader()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a63f5f55ad38aecc5195a93bccaf23014',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_ready_reader()']]], ['m_5fmq_5fready_5fwriter_99',['m_mq_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac181b33a0b5cdb0e89753b62d86af50f',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_mq_ready_writer()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a72c3901ca66a8d94aa22c83118aedbdd',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_mq_ready_writer()']]], @@ -108,12 +108,12 @@ var searchData= ['m_5fnb_5ftask_5fengine_105',['m_nb_task_engine',['../classipc_1_1transport_1_1Posix__mq__handle.html#aeda588bb49f6089bb3c2f7043191006c',1,'ipc::transport::Posix_mq_handle::m_nb_task_engine()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a9f1120b92ea20944b2de416d870644ce',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_nb_task_engine()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a0614000879d4595c84f803ecadae708a',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_nb_task_engine()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1caa342f726a273deb64317cbec8b5ea',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_nb_task_engine()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#acba365c9bf40f0eff62e50ce18b90464',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_nb_task_engine()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#af0b0e94d115b13c6a5b5bfde46702320',1,'ipc::session::sync_io::Session_adapter::m_nb_task_engine()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a609bbd2c3ac35737d48c644f4b85e294',1,'ipc::session::sync_io::Session_server_adapter::m_nb_task_engine()']]], ['m_5fnegotiated_5fproto_5fver_106',['m_negotiated_proto_ver',['../classipc_1_1transport_1_1Protocol__negotiator.html#ac30508df0ea2af8a990f9cd60a694fd1',1,'ipc::transport::Protocol_negotiator']]], ['m_5fnext_5fpeer_5fsocket_107',['m_next_peer_socket',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a7928656e82682f101af9a2fd6d4019cc',1,'ipc::transport::Native_socket_stream_acceptor']]], - ['m_5fnickname_108',['m_nickname',['../classipc_1_1transport_1_1Channel.html#a705d58cfa65f6162b4a7c4f8500e1985',1,'ipc::transport::Channel::m_nickname()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#a63c1e77a76775134b5a6d4725d58be81',1,'ipc::util::sync_io::Timer_event_emitter::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1374593e1cecd44ccb07d939f3673a35',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac892341e6a1fcc6ef8739bce8403fb6d',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab9c3904b9cd89438c1f2de5ec974f814',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_nickname()'],['../classipc_1_1transport_1_1Protocol__negotiator.html#a35ddd3050b39af2881ffc1e97c84f69c',1,'ipc::transport::Protocol_negotiator::m_nickname()']]], + ['m_5fnickname_108',['m_nickname',['../classipc_1_1transport_1_1Protocol__negotiator.html#a35ddd3050b39af2881ffc1e97c84f69c',1,'ipc::transport::Protocol_negotiator::m_nickname()'],['../classipc_1_1transport_1_1Channel.html#a705d58cfa65f6162b4a7c4f8500e1985',1,'ipc::transport::Channel::m_nickname()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#a63c1e77a76775134b5a6d4725d58be81',1,'ipc::util::sync_io::Timer_event_emitter::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1374593e1cecd44ccb07d939f3673a35',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#ac892341e6a1fcc6ef8739bce8403fb6d',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_nickname()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab9c3904b9cd89438c1f2de5ec974f814',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_nickname()']]], ['m_5fobj_109',['m_obj',['../structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html#ac787f6c20943bc76027cf25c7548d797',1,'ipc::shm::classic::Pool_arena::Handle_in_shm']]], ['m_5fon_5fchannel_5ffunc_5for_5fempty_110',['m_on_channel_func_or_empty',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#af2a771da81e49f5e38774e087c448c75',1,'ipc::session::sync_io::Session_adapter']]], ['m_5fon_5fdone_5ffunc_111',['m_on_done_func',['../structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html#a87a4c2b2f1f4441c95e1ab65c6668259',1,'ipc::transport::Native_socket_stream_acceptor::User_request::m_on_done_func()'],['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#ae115cdc89f6f07b72908be17bbde3208',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_on_done_func()'],['../structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html#a8da903f9c107dd546991e8b9843190e6',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::User_request::m_on_done_func()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#aefe91c059a20b86e2391bb1b46a38b23',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_on_done_func()']]], ['m_5fon_5fdone_5ffunc_5for_5fempty_112',['m_on_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#afd7b88291beb56fa3d7fe2230f49249b',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_on_done_func_or_empty()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#ab3bd7b5cf743f93aa7a63b2c0f599c33',1,'ipc::session::sync_io::Session_server_adapter::m_on_done_func_or_empty()']]], - ['m_5fon_5ferr_5ffunc_113',['m_on_err_func',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ad1fcc872d76e6a59321f5d67b2e0a70b',1,'ipc::transport::struc::sync_io::Channel::m_on_err_func()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a00009e3a7b3a9643af82469ec9647679',1,'ipc::session::sync_io::Session_adapter::m_on_err_func()'],['../classipc_1_1session_1_1Session__base.html#a7d25e45d33beb8af9ae03b05d676b0e4',1,'ipc::session::Session_base::m_on_err_func()']]], + ['m_5fon_5ferr_5ffunc_113',['m_on_err_func',['../classipc_1_1session_1_1Session__base.html#a7d25e45d33beb8af9ae03b05d676b0e4',1,'ipc::session::Session_base::m_on_err_func()'],['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a00009e3a7b3a9643af82469ec9647679',1,'ipc::session::sync_io::Session_adapter::m_on_err_func()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ad1fcc872d76e6a59321f5d67b2e0a70b',1,'ipc::transport::struc::sync_io::Channel::m_on_err_func()']]], ['m_5fon_5fmsg_5ffunc_114',['m_on_msg_func',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response.html#a410ae0ef77010cfb5f90de9a90b25e92',1,'ipc::transport::struc::sync_io::Channel::Expecting_response']]], ['m_5fon_5fpassive_5fopen_5fchannel_5ffunc_5for_5fempty_115',['m_on_passive_open_channel_func_or_empty',['../classipc_1_1session_1_1Session__base.html#ad28de3ad7ea872adb52e3a826602d333',1,'ipc::session::Session_base']]], ['m_5fon_5fremote_5funexpected_5fresponse_5ffunc_5for_5fempty_116',['m_on_remote_unexpected_response_func_or_empty',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a491a1a9eff4e277f3e5cd32c0178adbf',1,'ipc::transport::struc::sync_io::Channel']]], @@ -123,108 +123,109 @@ var searchData= ['m_5fopened_5fchannel_120',['m_opened_channel',['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#af46d9d419a695676703311def193044d',1,'ipc::session::Server_session_impl::Open_channel_req']]], ['m_5fopposing_5fsession_5fdone_121',['m_opposing_session_done',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#ab1548d77913d3e99e4f30e1dd46f8d86',1,'ipc::session::Session_base::Graceful_finisher']]], ['m_5fpeer_5fsocket_122',['m_peer_socket',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a42aab631e9c70bfaa53764309adfe37c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fpeer_5fsocket_5fmutex_123',['m_peer_socket_mutex',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abc7d2b14208ed2b8c0add0c26f7fbf27',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fpeer_5fstate_5ferr_5fcode_5for_5fok_124',['m_peer_state_err_code_or_ok',['../classipc_1_1session_1_1Session__base.html#a0d7926326671d05679c53e5e3991603e',1,'ipc::session::Session_base']]], - ['m_5fpending_5ferr_5fcode_125',['m_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a415d72c8ed4bed42fc84bf46f716742a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_pending_err_code()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#affd27be454f2e394f44fc76a5a4c50de',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_pending_err_code()']]], - ['m_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_126',['m_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a48689f6fbe1a1d4df3285736326b18f4',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], - ['m_5fpending_5fpayloads_5fq_127',['m_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#aaecb4615ae4d9fbf82ab2c195ada47cf',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], - ['m_5fpending_5fresults_5fq_128',['m_pending_results_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#ac04049d9b4c38f2a46d7f26192b17b69',1,'ipc::transport::Native_socket_stream_acceptor']]], - ['m_5fpending_5fuser_5frequests_5fq_129',['m_pending_user_requests_q',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a13a636ca275a188bd3727e2d7c247f0e',1,'ipc::transport::sync_io::Async_adapter_receiver::m_pending_user_requests_q()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a5d2e731d023d9c6465e01fa84a6e5138',1,'ipc::transport::Native_socket_stream_acceptor::m_pending_user_requests_q()']]], - ['m_5fper_5fapp_5fsetup_5ffunc_130',['m_per_app_setup_func',['../classipc_1_1session_1_1Session__server__impl.html#adc97c8fd3c5860dc6164f0a384b9fe03',1,'ipc::session::Session_server_impl']]], - ['m_5fpermissions_5flevel_5ffor_5fclient_5fapps_131',['m_permissions_level_for_client_apps',['../structipc_1_1session_1_1Server__app.html#abdcd9e8b0287f914496d45a99848be44',1,'ipc::session::Server_app']]], - ['m_5fphase_132',['m_phase',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#afca9a3012b2f41d635381a5a13ddd7c1',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fphase_5flog_5fin_5fstarted_133',['m_phase_log_in_started',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa14373afb4601567d1640f7b0b3faa45',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fpool_134',['m_pool',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a3a16fc7903eca88464d50fdf2873e37f',1,'ipc::shm::classic::Pool_arena']]], - ['m_5fpool_5fname_135',['m_pool_name',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a71009bb725b4cd68bea4ac99fa81ee2e',1,'ipc::shm::classic::Pool_arena']]], - ['m_5fpool_5fsize_5flimit_5fmi_136',['m_pool_size_limit_mi',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#ae86848eb54eac26e276cee29a0eb030a',1,'ipc::session::shm::classic::Session_server']]], - ['m_5fpre_5finit_5ferr_5fcode_137',['m_pre_init_err_code',['../classipc_1_1session_1_1Server__session__impl.html#ad9f6932719c1565191da73bfa4a3923f',1,'ipc::session::Server_session_impl']]], - ['m_5fproto_5fneg_5fblob_138',['m_proto_neg_blob',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a56c1f9cdcfd2a145114ab080199eb704',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fproto_5fneg_5ferr_5fcode_5for_5fok_139',['m_proto_neg_err_code_or_ok',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a515bbf752a9021ba8e0cec34d30f24b9',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fproto_5fneg_5fhndl_140',['m_proto_neg_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a83b9a3a7ddee7b6bfe14724bfccfc6ba',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fproto_5fneg_5freader_5fin_141',['m_proto_neg_reader_in',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a58b72930ddbf7e45936f8c8f34105324',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5fprotocol_5fnegotiator_142',['m_protocol_negotiator',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aeec08979b985498aa0738892c947a8a9',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a28485fe8e4fbeea78f05eadc69a31c20',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a393316703a666a9b022f2b879337b920',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aad25fed4c22117bf07c45240f790d306',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator()'],['../classipc_1_1session_1_1Client__session__impl.html#ab55fdca2097f5444f35efc97a8af326b',1,'ipc::session::Client_session_impl::m_protocol_negotiator()'],['../classipc_1_1session_1_1Server__session__impl.html#aeca3e83ea5e99271ba928550ea4fb2d4',1,'ipc::session::Server_session_impl::m_protocol_negotiator()']]], - ['m_5fprotocol_5fnegotiator_5faux_143',['m_protocol_negotiator_aux',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9d7fc428bc293e993fe96428c44bfb4c',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Client__session__impl.html#a3c53046a113fcf1ba4c857e8d4c2fbbd',1,'ipc::session::Client_session_impl::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Server__session__impl.html#a891c082930a837694606aff30c7026ed',1,'ipc::session::Server_session_impl::m_protocol_negotiator_aux()']]], - ['m_5fraw_5fname_144',['m_raw_name',['../classipc_1_1util_1_1Shared__name.html#a4ebeee7fd046ca6ad405af6183dfb790',1,'ipc::util::Shared_name']]], - ['m_5frcv_5fev_5fwait_5ffunc_145',['m_rcv_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a5e1051f460cddb73d3cbc48afbac18a9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fev_5fwait_5fhndl_5fidle_5ftimer_5ffired_5fpeer_146',['m_rcv_ev_wait_hndl_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3540ba657d9d7c95e755d1b348c88b8f',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fexpecting_5fmsg_5fmap_147',['m_rcv_expecting_msg_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a072fb8667ba55ff69230fd48d400ee88',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fexpecting_5fresponse_5fmap_148',['m_rcv_expecting_response_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#abf9a2118d887439717e17d0515be3e43',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fidle_5ftimeout_149',['m_rcv_idle_timeout',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ada7f2368dc0591f7a903946201c83636',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fidle_5ftimer_150',['m_rcv_idle_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab65c4574a9a084030a9a66a8340c94b2',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fidle_5ftimer_5ffired_5fpeer_151',['m_rcv_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#aa94400dd47704098beffe37b07b75472',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fmsg_5fnext_5fid_152',['m_rcv_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a26d39d4e1e2c304ef803b3721bde86f0',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fpending_5ferr_5fcode_153',['m_rcv_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab824da16816893b2ffe2e778a7169b62',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fpending_5fmsgs_154',['m_rcv_pending_msgs',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ae9f5a798718d98523342acf55400d628',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fpipes_155',['m_rcv_pipes',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9c04f15d4d17cd43aca70136119e1d28',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5freassembly_5fq_156',['m_rcv_reassembly_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1218e59c91d08758cd997d77913abd5a',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5frcv_5fsync_5fio_5fadapter_157',['m_rcv_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a9d006ccbd86681405447a5f2033ad2ca',1,'ipc::transport::Native_socket_stream::Impl']]], - ['m_5frcv_5ftarget_5fmeta_5flength_158',['m_rcv_target_meta_length',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a6676379057415274d2c6f2f096828cf9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5frcv_5fuser_5frequest_159',['m_rcv_user_request',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a9098de978da64572c419019597274d68',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5freader_5fconfig_160',['m_reader_config',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a7ebd1458417e3ffea3220424aacced9c',1,'ipc::transport::struc::Msg_in']]], - ['m_5fready_5freader_161',['m_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a80ab7afeab9753497d92a0af1f3f9610',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_reader()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a439be095b518a57efbbca079d6b05f59',1,'ipc::session::sync_io::Session_server_adapter::m_ready_reader()']]], - ['m_5fready_5freader_5fchan_162',['m_ready_reader_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a95ca5ad4d856f3921b9e0b3accf7b618',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5freader_5ferr_163',['m_ready_reader_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a6ea8f9f021af50050dbb88bd14978e24',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5fwriter_164',['m_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#ada90b100aa98cd6ca5853d88f2fff993',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_writer()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a19f346f8827932b4cfcfe525a7d039a0',1,'ipc::session::sync_io::Session_server_adapter::m_ready_writer()']]], - ['m_5fready_5fwriter_5fchan_165',['m_ready_writer_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#aef11d364d6df923acff043cd7b3bee1d',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5fready_5fwriter_5ferr_166',['m_ready_writer_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a22c47810c9273ce7f86b85f51c474b9f',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5freq_5fmsg_167',['m_req_msg',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a8cab22f0afe897330ad77a2bc2b536b7',1,'ipc::session::Client_session_impl::Master_channel_req::m_req_msg()'],['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#a522e6691e46f956648c64877b64d6219',1,'ipc::session::Server_session_impl::Open_channel_req::m_req_msg()']]], - ['m_5fresult_5fif_5fany_168',['m_result_if_any',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html#ac8c083b7c861d00e2f987a017fbe994e',1,'ipc::transport::struc::Channel::Sync_op_state']]], - ['m_5frsp_169',['m_rsp',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html#a2c7cde843910f748296c2c9ec406d99b',1,'ipc::transport::struc::Channel::Sync_op_state::Request_result']]], - ['m_5fsegment_5fsz_170',['m_segment_sz',['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a89d5dac6078a1a2c184e2239810b5480',1,'ipc::transport::struc::shm::Capnp_message_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#afa719b263e06eb7359b948a36f251485',1,'ipc::transport::struc::Heap_fixed_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#af012d6917cdc16494a22b4b6f2c10edd',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_segment_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a9e759098107b22d8e40238eeb74c7f0b',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_segment_sz()']]], - ['m_5fserialization_5fsegments_171',['m_serialization_segments',['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a98472f1e376123f6d98297f5c61ebc76',1,'ipc::transport::struc::shm::Capnp_message_builder::m_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Heap__reader.html#a86d1fba98bf24c390587893c61174111',1,'ipc::transport::struc::Heap_reader::m_serialization_segments()']]], - ['m_5fserialization_5fsegments_5fplus_5fframe_5fspace_172',['m_serialization_segments_plus_frame_space',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#aad029fd4e08580a785824c48790c748f',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], - ['m_5fsession_173',['m_session',['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#a3636cf0176e444342f4e178fbec94fa0',1,'ipc::transport::struc::shm::Reader::Config::m_session()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#af9f19bfd2d275b3770a3c978ae451c31',1,'ipc::transport::struc::shm::Reader::m_session()']]], - ['m_5fsession_5fshm_174',['m_session_shm',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a3b7b7eb37270320a495a26303aaed2c7',1,'ipc::session::shm::classic::Session_impl::m_session_shm()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a830c19b190c29b9bb326b0790e11976c',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::m_session_shm()']]], - ['m_5fsession_5ftoken_175',['m_session_token',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aa4c99d20d237670ba77769e721891b4b',1,'ipc::transport::struc::Msg_in::m_session_token()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a49e257338f9b20fd70c42142eb2db4f0',1,'ipc::transport::struc::sync_io::Channel::m_session_token()']]], - ['m_5fshm_5farena_5fpool_5flistener_176',['m_shm_arena_pool_listener',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#ad1cf86692c17aa00fb175996d825f11f',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_shm_arena_pool_listener()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aea3beac7c650fb100748a1f768e14d5e',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_shm_arena_pool_listener()']]], - ['m_5fshm_5fchannel_177',['m_shm_channel',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a264175697b8e32e732bee46790ab3c67',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], - ['m_5fshm_5fpool_5fnames_178',['m_shm_pool_names',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#af4d3de8bd66de27bf740ba3eeb1d988f',1,'ipc::session::shm::classic::Session_server']]], - ['m_5fshm_5fsession_179',['m_shm_session',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a49b633551f139e19999c0d4b060dc65b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], - ['m_5fsignal_5fpipe_5freaders_180',['m_signal_pipe_readers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#afafdfa9e2c522cd3e12b4f1915f83b56',1,'ipc::util::sync_io::Timer_event_emitter']]], - ['m_5fsignal_5fpipe_5fwriters_181',['m_signal_pipe_writers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ac2e6652bed4a80239d57a7fad2bab47c',1,'ipc::util::sync_io::Timer_event_emitter']]], - ['m_5fsnd_5fauto_5fping_5fperiod_182',['m_snd_auto_ping_period',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a4cb5d8ce6fa402c2cbaf27ec9654277c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fauto_5fping_5ftimer_183',['m_snd_auto_ping_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a311a0641a1da83530311e16845105c2c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fauto_5fping_5ftimer_5ffired_5fpeer_184',['m_snd_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3116d5b66bf35bec158905bbde4f6854',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fend_5fsending_5fon_5fdone_5ffunc_5for_5fempty_185',['m_snd_end_sending_on_done_func_or_empty',['../classipc_1_1transport_1_1struc_1_1Channel.html#a5e905a57052ba370d8d2f45a361982d8',1,'ipc::transport::struc::Channel']]], - ['m_5fsnd_5fev_5fwait_5ffunc_186',['m_snd_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abd4d8d43776c3956c6896ca721e95dab',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fev_5fwait_5fhndl_5fauto_5fping_5ftimer_5ffired_5fpeer_187',['m_snd_ev_wait_hndl_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a459618a64d769ba8798a6380e9292181',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5ffinished_188',['m_snd_finished',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#acfefc83c990b1b6cd903f5ad323e5dfa',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fmsg_5fnext_5fid_189',['m_snd_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a5132d96a55a628a7830c19c630390582',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsnd_5fpending_5ferr_5fcode_190',['m_snd_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a0257a7903bff120aa1523f8de04bccf7',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_191',['m_snd_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a92372b2da3a4bdccda23b27b2865f01d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fpending_5fpayloads_5fq_192',['m_snd_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1af9eb83b9afee25ba153a2ca066858d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], - ['m_5fsnd_5fsync_5fio_5fadapter_193',['m_snd_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad4689db8dfd0be14695e93d8760b23ed',1,'ipc::transport::Native_socket_stream::Impl']]], - ['m_5fsrv_5fapp_5fref_194',['m_srv_app_ref',['../classipc_1_1session_1_1Session__base.html#afd32d90b86d699263a0f02637dd7c6c6',1,'ipc::session::Session_base::m_srv_app_ref()'],['../classipc_1_1session_1_1Session__server__impl.html#a7be0cca184cdba62b9748e0ca37b8b17',1,'ipc::session::Session_server_impl::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a58684b85b4cfe6c4095bc56f2700ec27',1,'ipc::session::shm::classic::Session_server::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a39dc0e5a46a40b15c50d51b4929bac3c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_app_ref()']]], - ['m_5fsrv_5fnamespace_195',['m_srv_namespace',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a1034bc43eb088ede11111b97f79aff96',1,'ipc::session::shm::classic::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aaeb9c251968732f0f44dcde64abdb8bb',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1Session__base.html#a60a30526bad0c8db6ad05ede618a22bd',1,'ipc::session::Session_base::m_srv_namespace()']]], - ['m_5fstarted_5fops_196',['m_started_ops',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9a63c3620852f2354fe145364a73c688',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstate_197',['m_state',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a64e47a38b3ed59e37295336114918142',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_state()'],['../classipc_1_1session_1_1Client__session__impl.html#a3a5f5102020adace1e898d977e929908',1,'ipc::session::Client_session_impl::m_state()'],['../classipc_1_1session_1_1Session__server__impl.html#ac49be718ad86c3919563da57502d11b3',1,'ipc::session::Session_server_impl::m_state()']]], - ['m_5fstruct_5fbuilder_5fconfig_198',['m_struct_builder_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a47816a05b0af2d8b5c26ecaf01b89b1f',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstruct_5flender_5fsession_199',['m_struct_lender_session',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa4cd0e7c721ee3af4d1faa2ada5ad646',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fstruct_5freader_5fconfig_200',['m_struct_reader_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#af7ac60b2b7a7baf26a96cf4635d4c320',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsync_5fio_201',['m_sync_io',['../classipc_1_1transport_1_1struc_1_1Channel.html#aefee55a9e754a63ce52766d6c65df92c',1,'ipc::transport::struc::Channel::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#ad0d9321e04c451b8c087d4e672ecaa94',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a9bc681f5ac954b2ce9e1c62545c6796f',1,'ipc::transport::sync_io::Async_adapter_sender::m_sync_io()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a8e3d15efe152af3d5de7bed2a094b885',1,'ipc::transport::Native_socket_stream::Impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#af07534b8b9beb4e47b1af513d82d7460',1,'ipc::transport::sync_io::Async_adapter_receiver::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a2983ca0b49dd550d29f24534ab4e9574',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io()']]], - ['m_5fsync_5fio_5fadapter_202',['m_sync_io_adapter',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a940f3f6b3f770cd51ea3052f3136a94e',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io_adapter()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a44fb72c110d737656c6cd7ecee2c6472',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io_adapter()']]], - ['m_5fsync_5fio_5fhandlers_203',['m_sync_io_handlers',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2c0013237f845e5589cf0063886c7431',1,'ipc::transport::struc::sync_io::Channel']]], - ['m_5fsync_5fop_5fstate_204',['m_sync_op_state',['../classipc_1_1transport_1_1struc_1_1Channel.html#ab40d8133d53135bcc41a12cc27fc8e13',1,'ipc::transport::struc::Channel']]], - ['m_5fsync_5fop_5fstate_5fid_205',['m_sync_op_state_id',['../classipc_1_1transport_1_1struc_1_1Channel.html#abb0ed2e666191dd85e543072077bf38b',1,'ipc::transport::struc::Channel']]], - ['m_5ftarget_5fblob_206',['m_target_blob',['../structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html#aabc02495e840cdd6fe0e5bfa31b33509',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::User_request::m_target_blob()'],['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#af73c6fcead6a866df1524e01b5654222',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe::m_target_blob()']]], - ['m_5ftarget_5fchannel_5fopen_5fq_207',['m_target_channel_open_q',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad26ef2d688edc711821951d00101ccae',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fchannel_5fopen_5fq_5fmutex_208',['m_target_channel_open_q_mutex',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a7212b0336f96d32d6ab36ef43e16135a',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fcontrol_5fblob_209',['m_target_control_blob',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af308d3f1ff50138070c8422552f069a5',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], - ['m_5ftarget_5ferr_5fcode_210',['m_target_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#acbb3682fbd1502d4fa3952133d956547',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_target_err_code()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a57e1e2ca43f06bd1aa9658c855b1666b',1,'ipc::session::sync_io::Session_server_adapter::m_target_err_code()']]], - ['m_5ftarget_5ferr_5fcode_5ferr_211',['m_target_err_code_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a698532c47d2962e7e60dc804ac5c4e53',1,'ipc::session::sync_io::Session_adapter']]], - ['m_5ftarget_5fhndl_212',['m_target_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#ad27cbaa9b01823f31fb2ae47835974df',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], - ['m_5ftarget_5fhndl_5fptr_213',['m_target_hndl_ptr',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a2d0ba069841a0d43bb5c173f9b4ea0b5',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_hndl_ptr()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#ae8094bf28837a5ff2f5794222114d3b7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_hndl_ptr()']]], - ['m_5ftarget_5fmeta_5fblob_214',['m_target_meta_blob',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a8071b7e47453d21bd86665c15af7949d',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_meta_blob()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#a589c41dcf6cf1622c8df6a02e1f7497b',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_meta_blob()']]], - ['m_5ftarget_5fpeer_215',['m_target_peer',['../structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html#a8c8eae7aa61cb5e00f2af65aa08daa26',1,'ipc::transport::Native_socket_stream_acceptor::User_request']]], - ['m_5fthis_5fsession_216',['m_this_session',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#acb037930b23240ecf8975e65f50f3927',1,'ipc::session::Session_base::Graceful_finisher']]], - ['m_5fthis_5fsession_5fsrv_217',['m_this_session_srv',['../classipc_1_1session_1_1Session__server__impl.html#aa7aed6de161203a2e7414411fa1defa5',1,'ipc::session::Session_server_impl']]], - ['m_5ftimer_5fworker_218',['m_timer_worker',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aae2ee292cd7b9742b32e68dfd84d8361',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab8bae935aff314b88d6163d04f52b5eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a54c3fdde2cf99fda314ee3387f70a02e',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_timer_worker()']]], - ['m_5ftop_5fbuilder_5fframe_5fpostfix_5fsz_219',['m_top_builder_frame_postfix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ae30cd8f4721bccd20ef5f195c332a960',1,'ipc::transport::struc::shm::Builder::Config']]], - ['m_5ftop_5fbuilder_5fframe_5fprefix_5fsz_220',['m_top_builder_frame_prefix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ab850e04c8a411941c75b74e7c6eccb36',1,'ipc::transport::struc::shm::Builder::Config']]], - ['m_5ftop_5fengine_221',['m_top_engine',['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a3283aa7dc43b3851b94ff65f1f01d5e1',1,'ipc::transport::struc::shm::Builder::m_top_engine()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#a1edc9404d82d1fe78fd4a892d5dac22c',1,'ipc::transport::struc::shm::Reader::m_top_engine()']]], - ['m_5fuse_5fcount_222',['m_use_count',['../classipc_1_1util_1_1Use__counted__object.html#a9321c72f51d22da1ee041f29de5e9b43',1,'ipc::util::Use_counted_object']]], - ['m_5fuser_5fid_223',['m_user_id',['../structipc_1_1session_1_1App.html#a9e32297579603f2d96616976474d0246',1,'ipc::session::App']]], - ['m_5fuser_5frequest_224',['m_user_request',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a76d81cb59e1b91c7f379064dd285aa93',1,'ipc::transport::sync_io::Async_adapter_receiver::m_user_request()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a819d349f5cafcba88f3dff63968d74b0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_user_request()']]], - ['m_5fval_225',['m_val',['../classipc_1_1util_1_1Process__credentials.html#a5e9f0979d5b61f4d4557d1e338871b2f',1,'ipc::util::Process_credentials']]], - ['m_5fworker_226',['m_worker',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a58f99e84ff87dd50fc7741d933a23fd5',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_worker()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#aa83abf9a9c9b6bb1f77ac9c611f20620',1,'ipc::transport::Blob_stream_mq_sender_impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a4a7ab0a981614724b559b38634634d8a',1,'ipc::transport::Native_socket_stream::Impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a2d397e09f2cfa198313ff5c31334080b',1,'ipc::transport::Native_socket_stream_acceptor::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a0df3c0d0291cb4d3ea7fbd8214a12cb8',1,'ipc::transport::sync_io::Async_adapter_receiver::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a98cf53ba1f6abee1c3d3a4dd7533232d',1,'ipc::transport::sync_io::Async_adapter_sender::m_worker()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ad17e799f7c36c4c0cbc858637377f456',1,'ipc::util::sync_io::Timer_event_emitter::m_worker()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a2184077da7828589d20d7f92a31a6394',1,'ipc::transport::struc::Channel::m_worker()']]] + ['m_5fpeer_5fsocket_5fhosed_123',['m_peer_socket_hosed',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a2a389318796d7386b114649a61c7d4f9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fpeer_5fsocket_5fmutex_124',['m_peer_socket_mutex',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abc7d2b14208ed2b8c0add0c26f7fbf27',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fpeer_5fstate_5ferr_5fcode_5for_5fok_125',['m_peer_state_err_code_or_ok',['../classipc_1_1session_1_1Session__base.html#a0d7926326671d05679c53e5e3991603e',1,'ipc::session::Session_base']]], + ['m_5fpending_5ferr_5fcode_126',['m_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a415d72c8ed4bed42fc84bf46f716742a',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_pending_err_code()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#affd27be454f2e394f44fc76a5a4c50de',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_pending_err_code()']]], + ['m_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_127',['m_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a48689f6fbe1a1d4df3285736326b18f4',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], + ['m_5fpending_5fpayloads_5fq_128',['m_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#aaecb4615ae4d9fbf82ab2c195ada47cf',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl']]], + ['m_5fpending_5fresults_5fq_129',['m_pending_results_q',['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#ac04049d9b4c38f2a46d7f26192b17b69',1,'ipc::transport::Native_socket_stream_acceptor']]], + ['m_5fpending_5fuser_5frequests_5fq_130',['m_pending_user_requests_q',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a13a636ca275a188bd3727e2d7c247f0e',1,'ipc::transport::sync_io::Async_adapter_receiver::m_pending_user_requests_q()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a5d2e731d023d9c6465e01fa84a6e5138',1,'ipc::transport::Native_socket_stream_acceptor::m_pending_user_requests_q()']]], + ['m_5fper_5fapp_5fsetup_5ffunc_131',['m_per_app_setup_func',['../classipc_1_1session_1_1Session__server__impl.html#adc97c8fd3c5860dc6164f0a384b9fe03',1,'ipc::session::Session_server_impl']]], + ['m_5fpermissions_5flevel_5ffor_5fclient_5fapps_132',['m_permissions_level_for_client_apps',['../structipc_1_1session_1_1Server__app.html#abdcd9e8b0287f914496d45a99848be44',1,'ipc::session::Server_app']]], + ['m_5fphase_133',['m_phase',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#afca9a3012b2f41d635381a5a13ddd7c1',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fphase_5flog_5fin_5fstarted_134',['m_phase_log_in_started',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa14373afb4601567d1640f7b0b3faa45',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fpool_135',['m_pool',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a3a16fc7903eca88464d50fdf2873e37f',1,'ipc::shm::classic::Pool_arena']]], + ['m_5fpool_5fname_136',['m_pool_name',['../classipc_1_1shm_1_1classic_1_1Pool__arena.html#a71009bb725b4cd68bea4ac99fa81ee2e',1,'ipc::shm::classic::Pool_arena']]], + ['m_5fpool_5fsize_5flimit_5fmi_137',['m_pool_size_limit_mi',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#ae86848eb54eac26e276cee29a0eb030a',1,'ipc::session::shm::classic::Session_server']]], + ['m_5fpre_5finit_5ferr_5fcode_138',['m_pre_init_err_code',['../classipc_1_1session_1_1Server__session__impl.html#ad9f6932719c1565191da73bfa4a3923f',1,'ipc::session::Server_session_impl']]], + ['m_5fproto_5fneg_5fblob_139',['m_proto_neg_blob',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a56c1f9cdcfd2a145114ab080199eb704',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fproto_5fneg_5ferr_5fcode_5for_5fok_140',['m_proto_neg_err_code_or_ok',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a515bbf752a9021ba8e0cec34d30f24b9',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fproto_5fneg_5fhndl_141',['m_proto_neg_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a83b9a3a7ddee7b6bfe14724bfccfc6ba',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fproto_5fneg_5freader_5fin_142',['m_proto_neg_reader_in',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#a58b72930ddbf7e45936f8c8f34105324',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5fprotocol_5fnegotiator_143',['m_protocol_negotiator',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aeec08979b985498aa0738892c947a8a9',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#a28485fe8e4fbeea78f05eadc69a31c20',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a393316703a666a9b022f2b879337b920',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_protocol_negotiator()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aad25fed4c22117bf07c45240f790d306',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator()'],['../classipc_1_1session_1_1Client__session__impl.html#ab55fdca2097f5444f35efc97a8af326b',1,'ipc::session::Client_session_impl::m_protocol_negotiator()'],['../classipc_1_1session_1_1Server__session__impl.html#aeca3e83ea5e99271ba928550ea4fb2d4',1,'ipc::session::Server_session_impl::m_protocol_negotiator()']]], + ['m_5fprotocol_5fnegotiator_5faux_144',['m_protocol_negotiator_aux',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9d7fc428bc293e993fe96428c44bfb4c',1,'ipc::transport::struc::sync_io::Channel::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Client__session__impl.html#a3c53046a113fcf1ba4c857e8d4c2fbbd',1,'ipc::session::Client_session_impl::m_protocol_negotiator_aux()'],['../classipc_1_1session_1_1Server__session__impl.html#a891c082930a837694606aff30c7026ed',1,'ipc::session::Server_session_impl::m_protocol_negotiator_aux()']]], + ['m_5fraw_5fname_145',['m_raw_name',['../classipc_1_1util_1_1Shared__name.html#a4ebeee7fd046ca6ad405af6183dfb790',1,'ipc::util::Shared_name']]], + ['m_5frcv_5fev_5fwait_5ffunc_146',['m_rcv_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a5e1051f460cddb73d3cbc48afbac18a9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fev_5fwait_5fhndl_5fidle_5ftimer_5ffired_5fpeer_147',['m_rcv_ev_wait_hndl_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3540ba657d9d7c95e755d1b348c88b8f',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fexpecting_5fmsg_5fmap_148',['m_rcv_expecting_msg_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a072fb8667ba55ff69230fd48d400ee88',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fexpecting_5fresponse_5fmap_149',['m_rcv_expecting_response_map',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#abf9a2118d887439717e17d0515be3e43',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fidle_5ftimeout_150',['m_rcv_idle_timeout',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ada7f2368dc0591f7a903946201c83636',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fidle_5ftimer_151',['m_rcv_idle_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab65c4574a9a084030a9a66a8340c94b2',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fidle_5ftimer_5ffired_5fpeer_152',['m_rcv_idle_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#aa94400dd47704098beffe37b07b75472',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fmsg_5fnext_5fid_153',['m_rcv_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a26d39d4e1e2c304ef803b3721bde86f0',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fpending_5ferr_5fcode_154',['m_rcv_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#ab824da16816893b2ffe2e778a7169b62',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fpending_5fmsgs_155',['m_rcv_pending_msgs',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#ae9f5a798718d98523342acf55400d628',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fpipes_156',['m_rcv_pipes',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9c04f15d4d17cd43aca70136119e1d28',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5freassembly_5fq_157',['m_rcv_reassembly_q',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a1218e59c91d08758cd997d77913abd5a',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5frcv_5fsync_5fio_5fadapter_158',['m_rcv_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a9d006ccbd86681405447a5f2033ad2ca',1,'ipc::transport::Native_socket_stream::Impl']]], + ['m_5frcv_5ftarget_5fmeta_5flength_159',['m_rcv_target_meta_length',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a6676379057415274d2c6f2f096828cf9',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5frcv_5fuser_5frequest_160',['m_rcv_user_request',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a9098de978da64572c419019597274d68',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5freader_5fconfig_161',['m_reader_config',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#a7ebd1458417e3ffea3220424aacced9c',1,'ipc::transport::struc::Msg_in']]], + ['m_5fready_5freader_162',['m_ready_reader',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#a80ab7afeab9753497d92a0af1f3f9610',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_reader()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a439be095b518a57efbbca079d6b05f59',1,'ipc::session::sync_io::Session_server_adapter::m_ready_reader()']]], + ['m_5fready_5freader_5fchan_163',['m_ready_reader_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a95ca5ad4d856f3921b9e0b3accf7b618',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5freader_5ferr_164',['m_ready_reader_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a6ea8f9f021af50050dbb88bd14978e24',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5fwriter_165',['m_ready_writer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#ada90b100aa98cd6ca5853d88f2fff993',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_ready_writer()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a19f346f8827932b4cfcfe525a7d039a0',1,'ipc::session::sync_io::Session_server_adapter::m_ready_writer()']]], + ['m_5fready_5fwriter_5fchan_166',['m_ready_writer_chan',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#aef11d364d6df923acff043cd7b3bee1d',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5fready_5fwriter_5ferr_167',['m_ready_writer_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a22c47810c9273ce7f86b85f51c474b9f',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5freq_5fmsg_168',['m_req_msg',['../structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html#a8cab22f0afe897330ad77a2bc2b536b7',1,'ipc::session::Client_session_impl::Master_channel_req::m_req_msg()'],['../structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html#a522e6691e46f956648c64877b64d6219',1,'ipc::session::Server_session_impl::Open_channel_req::m_req_msg()']]], + ['m_5fresult_5fif_5fany_169',['m_result_if_any',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html#ac8c083b7c861d00e2f987a017fbe994e',1,'ipc::transport::struc::Channel::Sync_op_state']]], + ['m_5frsp_170',['m_rsp',['../structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html#a2c7cde843910f748296c2c9ec406d99b',1,'ipc::transport::struc::Channel::Sync_op_state::Request_result']]], + ['m_5fsegment_5fsz_171',['m_segment_sz',['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a89d5dac6078a1a2c184e2239810b5480',1,'ipc::transport::struc::shm::Capnp_message_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html#afa719b263e06eb7359b948a36f251485',1,'ipc::transport::struc::Heap_fixed_builder::m_segment_sz()'],['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#af012d6917cdc16494a22b4b6f2c10edd',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder::m_segment_sz()'],['../structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html#a9e759098107b22d8e40238eeb74c7f0b',1,'ipc::transport::struc::Heap_fixed_builder::Config::m_segment_sz()']]], + ['m_5fserialization_5fsegments_172',['m_serialization_segments',['../classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html#a98472f1e376123f6d98297f5c61ebc76',1,'ipc::transport::struc::shm::Capnp_message_builder::m_serialization_segments()'],['../classipc_1_1transport_1_1struc_1_1Heap__reader.html#a86d1fba98bf24c390587893c61174111',1,'ipc::transport::struc::Heap_reader::m_serialization_segments()']]], + ['m_5fserialization_5fsegments_5fplus_5fframe_5fspace_173',['m_serialization_segments_plus_frame_space',['../classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html#aad029fd4e08580a785824c48790c748f',1,'ipc::transport::struc::Heap_fixed_builder_capnp_message_builder']]], + ['m_5fsession_174',['m_session',['../structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html#a3636cf0176e444342f4e178fbec94fa0',1,'ipc::transport::struc::shm::Reader::Config::m_session()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#af9f19bfd2d275b3770a3c978ae451c31',1,'ipc::transport::struc::shm::Reader::m_session()']]], + ['m_5fsession_5fshm_175',['m_session_shm',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__impl.html#a3b7b7eb37270320a495a26303aaed2c7',1,'ipc::session::shm::classic::Session_impl::m_session_shm()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a830c19b190c29b9bb326b0790e11976c',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl::m_session_shm()']]], + ['m_5fsession_5ftoken_176',['m_session_token',['../classipc_1_1transport_1_1struc_1_1Msg__in.html#aa4c99d20d237670ba77769e721891b4b',1,'ipc::transport::struc::Msg_in::m_session_token()'],['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a49e257338f9b20fd70c42142eb2db4f0',1,'ipc::transport::struc::sync_io::Channel::m_session_token()']]], + ['m_5fshm_5farena_5fpool_5flistener_177',['m_shm_arena_pool_listener',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Client__session__impl.html#ad1cf86692c17aa00fb175996d825f11f',1,'ipc::session::shm::arena_lend::jemalloc::Client_session_impl::m_shm_arena_pool_listener()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aea3beac7c650fb100748a1f768e14d5e',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_shm_arena_pool_listener()']]], + ['m_5fshm_5fchannel_178',['m_shm_channel',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a264175697b8e32e732bee46790ab3c67',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], + ['m_5fshm_5fpool_5fnames_179',['m_shm_pool_names',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#af4d3de8bd66de27bf740ba3eeb1d988f',1,'ipc::session::shm::classic::Session_server']]], + ['m_5fshm_5fsession_180',['m_shm_session',['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__impl.html#a49b633551f139e19999c0d4b060dc65b',1,'ipc::session::shm::arena_lend::jemalloc::Session_impl']]], + ['m_5fsignal_5fpipe_5freaders_181',['m_signal_pipe_readers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#afafdfa9e2c522cd3e12b4f1915f83b56',1,'ipc::util::sync_io::Timer_event_emitter']]], + ['m_5fsignal_5fpipe_5fwriters_182',['m_signal_pipe_writers',['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ac2e6652bed4a80239d57a7fad2bab47c',1,'ipc::util::sync_io::Timer_event_emitter']]], + ['m_5fsnd_5fauto_5fping_5fperiod_183',['m_snd_auto_ping_period',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a4cb5d8ce6fa402c2cbaf27ec9654277c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fauto_5fping_5ftimer_184',['m_snd_auto_ping_timer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a311a0641a1da83530311e16845105c2c',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fauto_5fping_5ftimer_5ffired_5fpeer_185',['m_snd_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a3116d5b66bf35bec158905bbde4f6854',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fend_5fsending_5fon_5fdone_5ffunc_5for_5fempty_186',['m_snd_end_sending_on_done_func_or_empty',['../classipc_1_1transport_1_1struc_1_1Channel.html#a5e905a57052ba370d8d2f45a361982d8',1,'ipc::transport::struc::Channel']]], + ['m_5fsnd_5fev_5fwait_5ffunc_187',['m_snd_ev_wait_func',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#abd4d8d43776c3956c6896ca721e95dab',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fev_5fwait_5fhndl_5fauto_5fping_5ftimer_5ffired_5fpeer_188',['m_snd_ev_wait_hndl_auto_ping_timer_fired_peer',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a459618a64d769ba8798a6380e9292181',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5ffinished_189',['m_snd_finished',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#acfefc83c990b1b6cd903f5ad323e5dfa',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fmsg_5fnext_5fid_190',['m_snd_msg_next_id',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a5132d96a55a628a7830c19c630390582',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsnd_5fpending_5ferr_5fcode_191',['m_snd_pending_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a0257a7903bff120aa1523f8de04bccf7',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fpending_5fon_5flast_5fsend_5fdone_5ffunc_5for_5fempty_192',['m_snd_pending_on_last_send_done_func_or_empty',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a92372b2da3a4bdccda23b27b2865f01d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fpending_5fpayloads_5fq_193',['m_snd_pending_payloads_q',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a1af9eb83b9afee25ba153a2ca066858d',1,'ipc::transport::sync_io::Native_socket_stream::Impl']]], + ['m_5fsnd_5fsync_5fio_5fadapter_194',['m_snd_sync_io_adapter',['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#ad4689db8dfd0be14695e93d8760b23ed',1,'ipc::transport::Native_socket_stream::Impl']]], + ['m_5fsrv_5fapp_5fref_195',['m_srv_app_ref',['../classipc_1_1session_1_1Session__base.html#afd32d90b86d699263a0f02637dd7c6c6',1,'ipc::session::Session_base::m_srv_app_ref()'],['../classipc_1_1session_1_1Session__server__impl.html#a7be0cca184cdba62b9748e0ca37b8b17',1,'ipc::session::Session_server_impl::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a58684b85b4cfe6c4095bc56f2700ec27',1,'ipc::session::shm::classic::Session_server::m_srv_app_ref()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#a39dc0e5a46a40b15c50d51b4929bac3c',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_app_ref()']]], + ['m_5fsrv_5fnamespace_196',['m_srv_namespace',['../classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#a1034bc43eb088ede11111b97f79aff96',1,'ipc::session::shm::classic::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html#aaeb9c251968732f0f44dcde64abdb8bb',1,'ipc::session::shm::arena_lend::jemalloc::Session_server::m_srv_namespace()'],['../classipc_1_1session_1_1Session__base.html#a60a30526bad0c8db6ad05ede618a22bd',1,'ipc::session::Session_base::m_srv_namespace()']]], + ['m_5fstarted_5fops_197',['m_started_ops',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a9a63c3620852f2354fe145364a73c688',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstate_198',['m_state',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a64e47a38b3ed59e37295336114918142',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_state()'],['../classipc_1_1session_1_1Client__session__impl.html#a3a5f5102020adace1e898d977e929908',1,'ipc::session::Client_session_impl::m_state()'],['../classipc_1_1session_1_1Session__server__impl.html#ac49be718ad86c3919563da57502d11b3',1,'ipc::session::Session_server_impl::m_state()']]], + ['m_5fstruct_5fbuilder_5fconfig_199',['m_struct_builder_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a47816a05b0af2d8b5c26ecaf01b89b1f',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstruct_5flender_5fsession_200',['m_struct_lender_session',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#aa4cd0e7c721ee3af4d1faa2ada5ad646',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fstruct_5freader_5fconfig_201',['m_struct_reader_config',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#af7ac60b2b7a7baf26a96cf4635d4c320',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsync_5fio_202',['m_sync_io',['../classipc_1_1transport_1_1struc_1_1Channel.html#aefee55a9e754a63ce52766d6c65df92c',1,'ipc::transport::struc::Channel::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#ad0d9321e04c451b8c087d4e672ecaa94',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a9bc681f5ac954b2ce9e1c62545c6796f',1,'ipc::transport::sync_io::Async_adapter_sender::m_sync_io()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a8e3d15efe152af3d5de7bed2a094b885',1,'ipc::transport::Native_socket_stream::Impl::m_sync_io()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#af07534b8b9beb4e47b1af513d82d7460',1,'ipc::transport::sync_io::Async_adapter_receiver::m_sync_io()'],['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a2983ca0b49dd550d29f24534ab4e9574',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io()']]], + ['m_5fsync_5fio_5fadapter_203',['m_sync_io_adapter',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a940f3f6b3f770cd51ea3052f3136a94e',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_sync_io_adapter()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#a44fb72c110d737656c6cd7ecee2c6472',1,'ipc::transport::Blob_stream_mq_sender_impl::m_sync_io_adapter()']]], + ['m_5fsync_5fio_5fhandlers_204',['m_sync_io_handlers',['../classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html#a2c0013237f845e5589cf0063886c7431',1,'ipc::transport::struc::sync_io::Channel']]], + ['m_5fsync_5fop_5fstate_205',['m_sync_op_state',['../classipc_1_1transport_1_1struc_1_1Channel.html#ab40d8133d53135bcc41a12cc27fc8e13',1,'ipc::transport::struc::Channel']]], + ['m_5fsync_5fop_5fstate_5fid_206',['m_sync_op_state_id',['../classipc_1_1transport_1_1struc_1_1Channel.html#abb0ed2e666191dd85e543072077bf38b',1,'ipc::transport::struc::Channel']]], + ['m_5ftarget_5fblob_207',['m_target_blob',['../structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html#aabc02495e840cdd6fe0e5bfa31b33509',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::User_request::m_target_blob()'],['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#af73c6fcead6a866df1524e01b5654222',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe::m_target_blob()']]], + ['m_5ftarget_5fchannel_5fopen_5fq_208',['m_target_channel_open_q',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#ad26ef2d688edc711821951d00101ccae',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fchannel_5fopen_5fq_5fmutex_209',['m_target_channel_open_q_mutex',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a7212b0336f96d32d6ab36ef43e16135a',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fcontrol_5fblob_210',['m_target_control_blob',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#af308d3f1ff50138070c8422552f069a5',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl']]], + ['m_5ftarget_5ferr_5fcode_211',['m_target_err_code',['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html#acbb3682fbd1502d4fa3952133d956547',1,'ipc::transport::sync_io::Native_socket_stream_acceptor::m_target_err_code()'],['../classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html#a57e1e2ca43f06bd1aa9658c855b1666b',1,'ipc::session::sync_io::Session_server_adapter::m_target_err_code()']]], + ['m_5ftarget_5ferr_5fcode_5ferr_212',['m_target_err_code_err',['../classipc_1_1session_1_1sync__io_1_1Session__adapter.html#a698532c47d2962e7e60dc804ac5c4e53',1,'ipc::session::sync_io::Session_adapter']]], + ['m_5ftarget_5fhndl_213',['m_target_hndl',['../structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html#ad27cbaa9b01823f31fb2ae47835974df',1,'ipc::transport::struc::sync_io::Channel::Msg_in_pipe']]], + ['m_5ftarget_5fhndl_5fptr_214',['m_target_hndl_ptr',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a2d0ba069841a0d43bb5c173f9b4ea0b5',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_hndl_ptr()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#ae8094bf28837a5ff2f5794222114d3b7',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_hndl_ptr()']]], + ['m_5ftarget_5fmeta_5fblob_215',['m_target_meta_blob',['../structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html#a8071b7e47453d21bd86665c15af7949d',1,'ipc::transport::sync_io::Async_adapter_receiver::User_request::m_target_meta_blob()'],['../structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html#a589c41dcf6cf1622c8df6a02e1f7497b',1,'ipc::transport::sync_io::Native_socket_stream::Impl::Rcv_user_request::m_target_meta_blob()']]], + ['m_5ftarget_5fpeer_216',['m_target_peer',['../structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html#a8c8eae7aa61cb5e00f2af65aa08daa26',1,'ipc::transport::Native_socket_stream_acceptor::User_request']]], + ['m_5fthis_5fsession_217',['m_this_session',['../classipc_1_1session_1_1Session__base_1_1Graceful__finisher.html#acb037930b23240ecf8975e65f50f3927',1,'ipc::session::Session_base::Graceful_finisher']]], + ['m_5fthis_5fsession_5fsrv_218',['m_this_session_srv',['../classipc_1_1session_1_1Session__server__impl.html#aa7aed6de161203a2e7414411fa1defa5',1,'ipc::session::Session_server_impl']]], + ['m_5ftimer_5fworker_219',['m_timer_worker',['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#aae2ee292cd7b9742b32e68dfd84d8361',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl.html#ab8bae935aff314b88d6163d04f52b5eb',1,'ipc::transport::sync_io::Blob_stream_mq_sender_impl::m_timer_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl.html#a54c3fdde2cf99fda314ee3387f70a02e',1,'ipc::transport::sync_io::Native_socket_stream::Impl::m_timer_worker()']]], + ['m_5ftop_5fbuilder_5fframe_5fpostfix_5fsz_220',['m_top_builder_frame_postfix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ae30cd8f4721bccd20ef5f195c332a960',1,'ipc::transport::struc::shm::Builder::Config']]], + ['m_5ftop_5fbuilder_5fframe_5fprefix_5fsz_221',['m_top_builder_frame_prefix_sz',['../structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html#ab850e04c8a411941c75b74e7c6eccb36',1,'ipc::transport::struc::shm::Builder::Config']]], + ['m_5ftop_5fengine_222',['m_top_engine',['../classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html#a3283aa7dc43b3851b94ff65f1f01d5e1',1,'ipc::transport::struc::shm::Builder::m_top_engine()'],['../classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html#a1edc9404d82d1fe78fd4a892d5dac22c',1,'ipc::transport::struc::shm::Reader::m_top_engine()']]], + ['m_5fuse_5fcount_223',['m_use_count',['../classipc_1_1util_1_1Use__counted__object.html#a9321c72f51d22da1ee041f29de5e9b43',1,'ipc::util::Use_counted_object']]], + ['m_5fuser_5fid_224',['m_user_id',['../structipc_1_1session_1_1App.html#a9e32297579603f2d96616976474d0246',1,'ipc::session::App']]], + ['m_5fuser_5frequest_225',['m_user_request',['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a76d81cb59e1b91c7f379064dd285aa93',1,'ipc::transport::sync_io::Async_adapter_receiver::m_user_request()'],['../classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl.html#a819d349f5cafcba88f3dff63968d74b0',1,'ipc::transport::sync_io::Blob_stream_mq_receiver_impl::m_user_request()']]], + ['m_5fval_226',['m_val',['../classipc_1_1util_1_1Process__credentials.html#a5e9f0979d5b61f4d4557d1e338871b2f',1,'ipc::util::Process_credentials']]], + ['m_5fworker_227',['m_worker',['../classipc_1_1transport_1_1Blob__stream__mq__receiver__impl.html#a58f99e84ff87dd50fc7741d933a23fd5',1,'ipc::transport::Blob_stream_mq_receiver_impl::m_worker()'],['../classipc_1_1transport_1_1Blob__stream__mq__sender__impl.html#aa83abf9a9c9b6bb1f77ac9c611f20620',1,'ipc::transport::Blob_stream_mq_sender_impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream_1_1Impl.html#a4a7ab0a981614724b559b38634634d8a',1,'ipc::transport::Native_socket_stream::Impl::m_worker()'],['../classipc_1_1transport_1_1Native__socket__stream__acceptor.html#a2d397e09f2cfa198313ff5c31334080b',1,'ipc::transport::Native_socket_stream_acceptor::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver.html#a0df3c0d0291cb4d3ea7fbd8214a12cb8',1,'ipc::transport::sync_io::Async_adapter_receiver::m_worker()'],['../classipc_1_1transport_1_1sync__io_1_1Async__adapter__sender.html#a98cf53ba1f6abee1c3d3a4dd7533232d',1,'ipc::transport::sync_io::Async_adapter_sender::m_worker()'],['../classipc_1_1util_1_1sync__io_1_1Timer__event__emitter.html#ad17e799f7c36c4c0cbc858637377f456',1,'ipc::util::sync_io::Timer_event_emitter::m_worker()'],['../classipc_1_1transport_1_1struc_1_1Channel.html#a2184077da7828589d20d7f92a31a6394',1,'ipc::transport::struc::Channel::m_worker()']]] ]; diff --git a/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp.html b/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp.html index a1d4bffc8..bf8fafd1f 100644 --- a/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp_source.html b/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp_source.html index 5ca7ee99d..6a9920a05 100644 --- a/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/server__session__adapter_8hpp_source.html @@ -310,7 +310,7 @@ diff --git a/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp.html b/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp.html index 8f379a567..fe45919e4 100644 --- a/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp.html @@ -142,7 +142,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp_source.html b/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp_source.html index 690f4e4a2..ad7c19122 100644 --- a/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/server__session__dtl_8hpp_source.html @@ -243,7 +243,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html index df8b2801f..07d610081 100644 --- a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html index 1a1adb415..b20f2ea80 100644 --- a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html @@ -178,7 +178,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp.html index 280884700..2874e75c0 100644 --- a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp.html @@ -117,7 +117,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp_source.html index 0cdad2005..e9ee405ab 100644 --- a/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2detail_2shm_2classic_2classic__fwd_8hpp_source.html @@ -173,7 +173,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html index 70d21a105..ab12c9b3f 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html index 896ba5075..9d0f353a6 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html @@ -125,7 +125,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html index 5d8126338..44eac2b52 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html @@ -122,7 +122,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html index 5003a3a85..6a4ce3a08 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html @@ -256,7 +256,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp.html index d79e12bee..7debacd44 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp_source.html index 4d6a2545e..74e3042af 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic_8hpp_source.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp.html index dabb612e1..6dd7fec52 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp_source.html index 0f85ca7ae..83363f253 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2classic_2classic__fwd_8hpp_source.html @@ -235,7 +235,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp.html index 52a43a0a6..e9a1c1cbc 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp_source.html index 3377ef465..aa2e6f04c 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2shm_8hpp_source.html @@ -133,7 +133,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp.html index 2f72cb9d7..39ca502a7 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp_source.html index 2ce0558e8..50b299454 100644 --- a/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session_2shm_2shm__fwd_8hpp_source.html @@ -234,7 +234,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__adapter_8hpp.html b/doc/ipc_doc/generated/html_full/session__adapter_8hpp.html index 9a30dd3a6..52d16fb45 100644 --- a/doc/ipc_doc/generated/html_full/session__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__adapter_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__adapter_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__adapter_8hpp_source.html index 3c71dad0b..ee9d95677 100644 --- a/doc/ipc_doc/generated/html_full/session__adapter_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__adapter_8hpp_source.html @@ -851,7 +851,7 @@
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::session.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      void pipe_produce(flow::log::Logger *logger_ptr, Pipe_writer *pipe)
                                                                                                                                                                                      Writes a byte to the given pipe writer.
                                                                                                                                                                                      Definition: util.cpp:67
                                                                                                                                                                                      void pipe_consume(flow::log::Logger *logger_ptr, Pipe_reader *pipe)
                                                                                                                                                                                      Reads a byte via the given pipe reader.
                                                                                                                                                                                      Definition: util.cpp:96
                                                                                                                                                                                      @@ -871,7 +871,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__base_8hpp.html b/doc/ipc_doc/generated/html_full/session__base_8hpp.html index 0edce3780..c9df6545b 100644 --- a/doc/ipc_doc/generated/html_full/session__base_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__base_8hpp.html @@ -153,7 +153,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/session__base_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__base_8hpp_source.html index 6a05c433a..228f4cd2d 100644 --- a/doc/ipc_doc/generated/html_full/session__base_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__base_8hpp_source.html @@ -1332,7 +1332,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/session__fwd_8hpp.html index a89c11661..c4e08180b 100644 --- a/doc/ipc_doc/generated/html_full/session__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__fwd_8hpp.html @@ -160,7 +160,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__fwd_8hpp_source.html index 494f5c4c8..3f6ca559a 100644 --- a/doc/ipc_doc/generated/html_full/session__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__fwd_8hpp_source.html @@ -628,7 +628,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp.html b/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp.html index dd9999f31..ae09fd1dd 100644 --- a/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp_source.html index d24b02d8a..217b7b162 100644 --- a/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__server__adapter_8hpp_source.html @@ -567,7 +567,7 @@
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::session.
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Server_session_adapter< Session > &val)
                                                                                                                                                                                      Prints string representation of the given Server_session_adapter to the given ostream.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      void pipe_produce(flow::log::Logger *logger_ptr, Pipe_writer *pipe)
                                                                                                                                                                                      Writes a byte to the given pipe writer.
                                                                                                                                                                                      Definition: util.cpp:67
                                                                                                                                                                                      void pipe_consume(flow::log::Logger *logger_ptr, Pipe_reader *pipe)
                                                                                                                                                                                      Reads a byte via the given pipe reader.
                                                                                                                                                                                      Definition: util.cpp:96
                                                                                                                                                                                      @@ -579,7 +579,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__server__impl_8hpp.html b/doc/ipc_doc/generated/html_full/session__server__impl_8hpp.html index daffcc945..105d7bf2f 100644 --- a/doc/ipc_doc/generated/html_full/session__server__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__server__impl_8hpp.html @@ -163,7 +163,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/session__server__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__server__impl_8hpp_source.html index 56147671c..a01872803 100644 --- a/doc/ipc_doc/generated/html_full/session__server__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__server__impl_8hpp_source.html @@ -1149,7 +1149,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__shared__name_8hpp.html b/doc/ipc_doc/generated/html_full/session__shared__name_8hpp.html index 351c5983f..d4dc5965e 100644 --- a/doc/ipc_doc/generated/html_full/session__shared__name_8hpp.html +++ b/doc/ipc_doc/generated/html_full/session__shared__name_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session__shared__name_8hpp_source.html b/doc/ipc_doc/generated/html_full/session__shared__name_8hpp_source.html index ecdea0fac..d69d758c8 100644 --- a/doc/ipc_doc/generated/html_full/session__shared__name_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/session__shared__name_8hpp_source.html @@ -276,7 +276,7 @@ diff --git a/doc/ipc_doc/generated/html_full/session_app_org.html b/doc/ipc_doc/generated/html_full/session_app_org.html index 475898b5e..31766eb93 100644 --- a/doc/ipc_doc/generated/html_full/session_app_org.html +++ b/doc/ipc_doc/generated/html_full/session_app_org.html @@ -536,7 +536,7 @@

                                                                                                                                                                                      What did we miss?

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/session_setup.html b/doc/ipc_doc/generated/html_full/session_setup.html index 7e68742a0..99f0e38fa 100644 --- a/doc/ipc_doc/generated/html_full/session_setup.html +++ b/doc/ipc_doc/generated/html_full/session_setup.html @@ -280,7 +280,7 @@

                                                                                                                                                                                      Client_session setup

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/setup.html b/doc/ipc_doc/generated/html_full/setup.html index cc0f3c3ab..720d77cde 100644 --- a/doc/ipc_doc/generated/html_full/setup.html +++ b/doc/ipc_doc/generated/html_full/setup.html @@ -122,7 +122,7 @@

                                                                                                                                                                                      Logging verbosity setting

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/shared__name_8cpp.html b/doc/ipc_doc/generated/html_full/shared__name_8cpp.html index 5bbe4583f..cb81ff833 100644 --- a/doc/ipc_doc/generated/html_full/shared__name_8cpp.html +++ b/doc/ipc_doc/generated/html_full/shared__name_8cpp.html @@ -148,7 +148,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shared__name_8cpp_source.html b/doc/ipc_doc/generated/html_full/shared__name_8cpp_source.html index d48dbc598..379e996bb 100644 --- a/doc/ipc_doc/generated/html_full/shared__name_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/shared__name_8cpp_source.html @@ -538,7 +538,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shared__name_8hpp.html b/doc/ipc_doc/generated/html_full/shared__name_8hpp.html index abf5ac211..f4e1ea736 100644 --- a/doc/ipc_doc/generated/html_full/shared__name_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shared__name_8hpp.html @@ -124,7 +124,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shared__name_8hpp_source.html b/doc/ipc_doc/generated/html_full/shared__name_8hpp_source.html index 4a2aab8c2..49f61c48d 100644 --- a/doc/ipc_doc/generated/html_full/shared__name_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shared__name_8hpp_source.html @@ -902,7 +902,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp.html index c1106bf79..9ada4cb84 100644 --- a/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp.html @@ -167,7 +167,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp_source.html index e0b063c45..ac7ecd880 100644 --- a/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shared__name__fwd_8hpp_source.html @@ -455,7 +455,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp.html index d311499be..5cb82d9b0 100644 --- a/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp_source.html b/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp_source.html index 6dd3fe19f..711d0645f 100644 --- a/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shm_2classic_2classic_8hpp_source.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp.html index 27d05ccda..c63b18053 100644 --- a/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp.html @@ -113,7 +113,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp_source.html index caac54d2f..9580a3f56 100644 --- a/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shm_2classic_2classic__fwd_8hpp_source.html @@ -147,7 +147,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2shm_8hpp.html b/doc/ipc_doc/generated/html_full/shm_2shm_8hpp.html index 0e0ac12f8..8c6734232 100644 --- a/doc/ipc_doc/generated/html_full/shm_2shm_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shm_2shm_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2shm_8hpp_source.html b/doc/ipc_doc/generated/html_full/shm_2shm_8hpp_source.html index 66d13c4cc..ce53c8536 100644 --- a/doc/ipc_doc/generated/html_full/shm_2shm_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shm_2shm_8hpp_source.html @@ -136,7 +136,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp.html index d080ad711..8b135536d 100644 --- a/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp_source.html index 5f998dbcd..d2c31fcd8 100644 --- a/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/shm_2shm__fwd_8hpp_source.html @@ -222,7 +222,7 @@ diff --git a/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp.html b/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp.html index c46643db9..e225d4557 100644 --- a/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp.html @@ -160,7 +160,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp_source.html index ba2e9aa9d..252cc7f24 100644 --- a/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/src_2ipc_2session_2detail_2shm_2classic_2session__impl_8hpp_source.html @@ -534,7 +534,7 @@ diff --git a/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp.html b/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp.html index ae2ea1a20..9e7d8a572 100644 --- a/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp.html +++ b/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp_source.html b/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp_source.html index 31e192f4c..6be3c2b1b 100644 --- a/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/stateless__allocator_8hpp_source.html @@ -352,7 +352,7 @@ diff --git a/doc/ipc_doc/generated/html_full/stl__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/stl__fwd_8hpp.html index 3b75760db..345ee47aa 100644 --- a/doc/ipc_doc/generated/html_full/stl__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/stl__fwd_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/stl__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/stl__fwd_8hpp_source.html index 18b9f1732..4f9cbc3b6 100644 --- a/doc/ipc_doc/generated/html_full/stl__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/stl__fwd_8hpp_source.html @@ -302,7 +302,7 @@ diff --git a/doc/ipc_doc/generated/html_full/struc__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/struc__fwd_8hpp.html index 37dfa2e11..598a72808 100644 --- a/doc/ipc_doc/generated/html_full/struc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/struc__fwd_8hpp.html @@ -145,7 +145,7 @@ diff --git a/doc/ipc_doc/generated/html_full/struc__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/struc__fwd_8hpp_source.html index af5ce5514..25ea35a65 100644 --- a/doc/ipc_doc/generated/html_full/struc__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/struc__fwd_8hpp_source.html @@ -390,7 +390,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html index 2a69d06f2..65fb46389 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html index 14b58b0bc..a5e8c2c6d 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html @@ -129,7 +129,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html index 6620d0b20..bbbb8d1d4 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html index 36f84849d..75c3ab081 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html @@ -129,7 +129,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html index 328a073f5..1e4e85ee7 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html index bc58da840..8f72eaae2 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html @@ -129,7 +129,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html index 7b0f0f33f..8244dc6e0 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html index b014f53aa..f980e750e 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html @@ -129,7 +129,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html index 1a68bd821..a63d11d17 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html index 6b269cfb9..7dfd0551a 100644 --- a/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_full/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html @@ -129,7 +129,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App-members.html index 5ac2ec3f5..b88b25d98 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App-members.html @@ -82,7 +82,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App.html index 1bba04ca0..3bd9cd828 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1App.html @@ -350,7 +350,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app-members.html index 6b826c3ec..27ef31e70 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app-members.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app.html index 9934524e5..5529dec01 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__app.html @@ -233,7 +233,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req-members.html index 9e357f214..2ce58045e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html index d993df2c2..ed0719f78 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Client__session__impl_1_1Master__channel__req.html @@ -157,7 +157,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app-members.html index b786e360f..a8f3794d8 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app-members.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app.html index aaa9b26a4..eebbd677a 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__app.html @@ -323,7 +323,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req-members.html index 74f6294c3..9efc5ad5a 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html index bef194928..c857d4d6c 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Server__session__impl_1_1Open__channel__req.html @@ -170,7 +170,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State-members.html index 2f4ab005f..1429bcfe1 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State.html index c2a285d1f..be9fd90dd 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1Session__server__impl_1_1State.html @@ -228,7 +228,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html index 4f9b9c08b..28289611a 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html index aa8aa4bfa..27b90935a 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html @@ -118,7 +118,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html index e764c83a7..d828fb4c9 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html index 77ace5267..3565ab123 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html @@ -114,7 +114,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html index 2b0f6e1e0..fbd08318f 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html index b7a7c5820..c02ec2c7b 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html @@ -114,7 +114,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result-members.html index 5b5fb92c4..2a5a8903b 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html index 6296ab0df..8d9721923 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1session_1_1sync__io_1_1Session__adapter_1_1Channel__open__result.html @@ -172,7 +172,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html index 2a179720d..125ee4ab5 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html index c4dfb55cb..c802b3a23 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html @@ -118,7 +118,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html index 93116a14b..9ce23c2b5 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html index 17abac14f..bcf5885db 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html @@ -114,7 +114,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm-members.html index b5078b434..7983fa6dd 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html index 3542e0fbe..0a79b8781 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1shm_1_1classic_1_1Pool__arena_1_1Handle__in__shm.html @@ -189,7 +189,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request-members.html index 340d0ed43..1844e8eb7 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html index 2246e25fb..89f5fe22b 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1Native__socket__stream__acceptor_1_1User__request.html @@ -166,7 +166,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state-members.html index 6c7947175..22762b04c 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html index 238b965b6..8e431634b 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state.html @@ -215,7 +215,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html index 7c4655972..5fbd7bfab 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html index be5957aab..9f4d37ec3 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html @@ -123,7 +123,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html index 0400cb6ca..030fb998e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html @@ -100,7 +100,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html index 7730a2da4..b7a54d9fe 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html @@ -102,7 +102,7 @@

                                                                                                                                                                                      Relative benefits/limitations (versus SHM-based Serializa_via_*_shm diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html index b59e8a04f..03ee400ef 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html @@ -95,7 +95,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html index 08a9e374b..69a30a778 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html index 5e8b88e2c..bc4d043a7 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html @@ -215,7 +215,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html index a76ccef57..514830dad 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html index 96f299680..f514cbd59 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html @@ -170,7 +170,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Null__session.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Null__session.html index 2905a5d1e..6de6388bb 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Null__session.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Null__session.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html index 00791438f..0c9edc802 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html index 511ffa701..a1922fb35 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html @@ -192,7 +192,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html index f4707d95c..7dcfeccc0 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html index b4aa9e07a..a4b544487 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html @@ -189,7 +189,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html index 6c3fa9cd2..661b45ecb 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html index 1ac42706f..e9ec553aa 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html @@ -227,7 +227,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html index 22f337bcf..9e6b27631 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html index 019a8e69c..f8602a13e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html @@ -175,7 +175,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response-members.html index 97482f0f5..f71de8988 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response.html index c76b405c7..79de25c92 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Expecting__response.html @@ -178,7 +178,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe-members.html index 4bc73b3b9..66c5247e1 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe-members.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html index 346a8035b..ae8fc5655 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1struc_1_1sync__io_1_1Channel_1_1Msg__in__pipe.html @@ -403,7 +403,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request-members.html index affb4a087..ae4079023 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html index 7cf98a67b..473a85fde 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Async__adapter__receiver_1_1User__request.html @@ -196,7 +196,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request-members.html index 7c577f7e1..5d692386e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html index 97547e75b..c0bc266f1 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver__impl_1_1User__request.html @@ -145,7 +145,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload-members.html index 3e1c56b4e..bb154c17e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload.html index a285c3d91..6fb8cc8d9 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender__impl_1_1Snd__low__lvl__payload.html @@ -153,7 +153,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request-members.html index c7e787f2f..6762ef9ae 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html index 0c656c555..07c32f2ef 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Rcv__user__request.html @@ -161,7 +161,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload-members.html index f3ee750df..9f7bd5c81 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload.html b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload.html index 90e3db08f..e3da64cd1 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1transport_1_1sync__io_1_1Native__socket__stream_1_1Impl_1_1Snd__low__lvl__payload.html @@ -167,7 +167,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle-members.html b/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle-members.html index 814df1738..61e3b259e 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle-members.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle.html b/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle.html index c1a1aa5b2..27621e001 100644 --- a/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle.html +++ b/doc/ipc_doc/generated/html_full/structipc_1_1util_1_1Native__handle.html @@ -659,7 +659,7 @@

                                                                                                                                                                                      Definition at line 85 of file native_handle.hpp.

                                                                                                                                                                                      -

                                                                                                                                                                                      Referenced by ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::session::ensure_resource_owner_is_app(), ipc::transport::Posix_mq_handle::epoll_setup(), hash_value(), ipc::transport::Posix_mq_handle::max_msg_size(), ipc::transport::Posix_mq_handle::max_n_msgs(), ipc::transport::asio_local_stream_socket::nb_write_some_with_native_handle(), null(), operator<(), operator<<(), operator=(), operator==(), ipc::transport::Posix_mq_handle::Posix_mq_handle(), ipc::transport::Posix_mq_handle::receive(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::replace_event_wait_handles(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::replace_event_wait_handles(), ipc::transport::sync_io::Native_socket_stream::Impl::replace_event_wait_handles(), ipc::transport::Posix_mq_handle::send(), ipc::transport::Posix_mq_handle::set_non_blocking(), ipc::util::set_resource_permissions(), ipc::transport::Posix_mq_handle::timed_receive(), ipc::transport::Posix_mq_handle::timed_send(), ipc::transport::Posix_mq_handle::try_receive(), ipc::transport::Posix_mq_handle::try_send(), ipc::transport::Posix_mq_handle::wait_impl(), and ipc::transport::Posix_mq_handle::~Posix_mq_handle().

                                                                                                                                                                                      +

                                                                                                                                                                                      Referenced by ipc::util::sync_io::Asio_waitable_native_handle::assign(), ipc::session::ensure_resource_owner_is_app(), ipc::transport::Posix_mq_handle::epoll_setup(), hash_value(), ipc::transport::Posix_mq_handle::max_msg_size(), ipc::transport::Posix_mq_handle::max_n_msgs(), ipc::transport::asio_local_stream_socket::nb_write_some_with_native_handle(), null(), operator<(), operator<<(), operator=(), operator==(), ipc::transport::Posix_mq_handle::Posix_mq_handle(), ipc::transport::Posix_mq_handle::receive(), ipc::transport::sync_io::Blob_stream_mq_receiver_impl< Persistent_mq_handle >::replace_event_wait_handles(), ipc::transport::sync_io::Blob_stream_mq_sender_impl< Persistent_mq_handle >::replace_event_wait_handles(), ipc::transport::sync_io::Native_socket_stream::Impl::replace_event_wait_handles(), ipc::transport::Posix_mq_handle::send(), ipc::transport::Posix_mq_handle::set_non_blocking(), ipc::util::set_resource_permissions(), ipc::transport::Posix_mq_handle::timed_receive(), ipc::transport::Posix_mq_handle::timed_send(), ipc::transport::Posix_mq_handle::try_receive(), ipc::transport::Posix_mq_handle::try_send(), ipc::transport::Posix_mq_handle::wait_impl(), and ipc::transport::Posix_mq_handle::~Posix_mq_handle().

                                                                                                                                                                                      @@ -699,7 +699,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp.html index dbbce9ed0..4d23e6475 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp_source.html index 36cdc984f..73fa4343b 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__rcv_8hpp_source.html @@ -497,7 +497,7 @@
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      static const Shared_name S_EMPTY
                                                                                                                                                                                      A (default-cted) Shared_name. May be useful for functions returning const Shared_name&.
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      const std::string EMPTY_STRING
                                                                                                                                                                                      A (default-cted) string. May be useful for functions returning const std::string&.
                                                                                                                                                                                      Definition: util.cpp:33
                                                                                                                                                                                      @@ -507,7 +507,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp.html index 4c12858cb..dbda94889 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp_source.html index 1dcc29711..4e4e64c80 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__stream__mq__snd_8hpp_source.html @@ -530,7 +530,7 @@
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      static const Shared_name S_EMPTY
                                                                                                                                                                                      A (default-cted) Shared_name. May be useful for functions returning const Shared_name&.
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      const std::string EMPTY_STRING
                                                                                                                                                                                      A (default-cted) string. May be useful for functions returning const std::string&.
                                                                                                                                                                                      Definition: util.cpp:33
                                                                                                                                                                                      boost::asio::const_buffer Blob_const
                                                                                                                                                                                      Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:134
                                                                                                                                                                                      @@ -540,7 +540,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp.html index b3ee8e0a1..fa4d7aa61 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp_source.html index e96fa0525..7e946c1b2 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2blob__transport_8hpp_source.html @@ -445,7 +445,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp.html index 2479a41d7..646901aaf 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp_source.html index a60a2219d..2c52911e2 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__rcv__impl_8hpp_source.html @@ -377,963 +377,973 @@
                                                                                                                                                                                      305 * (in fact that is the main utility of Persistent_mq_handle::interrupt_receives()). It makes the
                                                                                                                                                                                      306 * Persistent_mq_handle::wait_receivable() immediately return.
                                                                                                                                                                                      307 *
                                                                                                                                                                                      -
                                                                                                                                                                                      308 * If and only if #m_pending_err_code is truthy, #m_mq is null; hence the handle's system resources (and the
                                                                                                                                                                                      -
                                                                                                                                                                                      309 * handle object's memory itself) are given back at the earliest possible time.
                                                                                                                                                                                      -
                                                                                                                                                                                      310 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      312
                                                                                                                                                                                      -
                                                                                                                                                                                      313 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      314 * Equals `m_mq.max_msg_size()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      315 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      316 * It is saved in ctor, instead of invoking `m_mq->max_msg_size()` when needed, to keep the rules for when #m_mq
                                                                                                                                                                                      -
                                                                                                                                                                                      317 * is accessed simple and as described in its doc header. After all this value would never change anyway.
                                                                                                                                                                                      -
                                                                                                                                                                                      318 */
                                                                                                                                                                                      -
                                                                                                                                                                                      319 const size_t m_mq_max_msg_sz;
                                                                                                                                                                                      -
                                                                                                                                                                                      320
                                                                                                                                                                                      -
                                                                                                                                                                                      321 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      322 * Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      -
                                                                                                                                                                                      323 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. The signal byte
                                                                                                                                                                                      -
                                                                                                                                                                                      324 * is read out of #m_mq_ready_reader, making it empty again (the steady-state before the next time would-block
                                                                                                                                                                                      -
                                                                                                                                                                                      325 * occurs, and a byte is written to it making it non-empty).
                                                                                                                                                                                      -
                                                                                                                                                                                      326 *
                                                                                                                                                                                      -
                                                                                                                                                                                      327 * @see #m_mq_ready_writer.
                                                                                                                                                                                      -
                                                                                                                                                                                      328 *
                                                                                                                                                                                      -
                                                                                                                                                                                      329 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      330 */
                                                                                                                                                                                      -
                                                                                                                                                                                      331 std::optional<util::Pipe_reader> m_mq_ready_reader;
                                                                                                                                                                                      -
                                                                                                                                                                                      332
                                                                                                                                                                                      -
                                                                                                                                                                                      333 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      334 * Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      -
                                                                                                                                                                                      335 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. A signal byte
                                                                                                                                                                                      -
                                                                                                                                                                                      336 * is written to #m_mq_ready_writer, making it non-empty.
                                                                                                                                                                                      -
                                                                                                                                                                                      337 *
                                                                                                                                                                                      -
                                                                                                                                                                                      338 * @see #m_mq_ready_reader.
                                                                                                                                                                                      -
                                                                                                                                                                                      339 *
                                                                                                                                                                                      -
                                                                                                                                                                                      340 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      341 */
                                                                                                                                                                                      -
                                                                                                                                                                                      342 std::optional<util::Pipe_writer> m_mq_ready_writer;
                                                                                                                                                                                      -
                                                                                                                                                                                      343
                                                                                                                                                                                      -
                                                                                                                                                                                      344 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      345 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      346 * used to wait on events from) #m_mq_ready_reader; or if #m_mq can be watched directly (known at compile-time)
                                                                                                                                                                                      -
                                                                                                                                                                                      347 * then as `m_mq` itself. Its name suggests it's watching #m_mq (for transmissibility),
                                                                                                                                                                                      -
                                                                                                                                                                                      348 * and that's true: In the latter case one directly watches it for transmissibility in the proper direction;
                                                                                                                                                                                      -
                                                                                                                                                                                      349 * in the former case Persistent_mq_handle lacks a #Native_handle to watch directly -- but we use the
                                                                                                                                                                                      -
                                                                                                                                                                                      350 * `m_mq_ready_*` pipe and a background thread to simulate it having one. Thus in that case #m_mq_ready_reader FD =
                                                                                                                                                                                      -
                                                                                                                                                                                      351 * this FD, and it being transmissible = MQ being transmissible.
                                                                                                                                                                                      -
                                                                                                                                                                                      352 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      354
                                                                                                                                                                                      -
                                                                                                                                                                                      355 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      356 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      -
                                                                                                                                                                                      357 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      -
                                                                                                                                                                                      358 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the idle timer.
                                                                                                                                                                                      -
                                                                                                                                                                                      359 *
                                                                                                                                                                                      -
                                                                                                                                                                                      360 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      -
                                                                                                                                                                                      361 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      363
                                                                                                                                                                                      -
                                                                                                                                                                                      364 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      365 * Null if no async_receive_blob()` is currently pending; else describes the arguments to that pending
                                                                                                                                                                                      -
                                                                                                                                                                                      366 * async_receive_blob().
                                                                                                                                                                                      -
                                                                                                                                                                                      367 *
                                                                                                                                                                                      -
                                                                                                                                                                                      368 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      369 * It exists for a hopefully obvious reasons: At least a non-immediately-completed async_receive_blob() needs
                                                                                                                                                                                      -
                                                                                                                                                                                      370 * to keep track of the request so as to know where to place results and what completion handler to invoke.
                                                                                                                                                                                      -
                                                                                                                                                                                      371 *
                                                                                                                                                                                      -
                                                                                                                                                                                      372 * As for it being nullable: this is used to guard against `async_receive_*()` being invoked while another
                                                                                                                                                                                      -
                                                                                                                                                                                      373 * is already outstanding. We do not queue pending requests per
                                                                                                                                                                                      -
                                                                                                                                                                                      374 * sync_io::Blob_receiver concept. (However the non-`sync_io` a/k/a async-I/O
                                                                                                                                                                                      -
                                                                                                                                                                                      375 * Blob_receiver transport::Blob_stream_mq_receiver does. Therefore
                                                                                                                                                                                      -
                                                                                                                                                                                      376 * the latter class does internally implement a `User_request` queue.)
                                                                                                                                                                                      -
                                                                                                                                                                                      377 */
                                                                                                                                                                                      -
                                                                                                                                                                                      378 std::optional<User_request> m_user_request;
                                                                                                                                                                                      -
                                                                                                                                                                                      379
                                                                                                                                                                                      -
                                                                                                                                                                                      380 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      381 * At steady-state `false`, becomes `true` if a low-level "escape" payload (empty message) was last received
                                                                                                                                                                                      -
                                                                                                                                                                                      382 * meaning the next message will be the encoding of a #Control_cmd enumeration value, receiving which shall
                                                                                                                                                                                      -
                                                                                                                                                                                      383 * reset this to `false`.
                                                                                                                                                                                      -
                                                                                                                                                                                      384 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      386
                                                                                                                                                                                      -
                                                                                                                                                                                      387 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      388 * Used only when #m_control_state is `true`, this is where payload 2 (the #Control_cmd) is placed.
                                                                                                                                                                                      -
                                                                                                                                                                                      389 * Though in reality it should only require `sizeof(Control_cmd)` bytes, #m_mq receive will emit an error
                                                                                                                                                                                      -
                                                                                                                                                                                      390 * if it cannot hold #m_mq_max_msg_sz bytes (that is just how Persistent_mq_handle works; though we do not care
                                                                                                                                                                                      -
                                                                                                                                                                                      391 * why here the reason is that's how both ipc and POSIX MQ APIs work).
                                                                                                                                                                                      -
                                                                                                                                                                                      392 *
                                                                                                                                                                                      -
                                                                                                                                                                                      393 * We could also abuse #m_user_request `m_target_blob`; but that seems uncool.
                                                                                                                                                                                      -
                                                                                                                                                                                      394 *
                                                                                                                                                                                      -
                                                                                                                                                                                      395 * @todo Maybe we should indeed use `m_user_request->m_target_blob` (instead of locally stored
                                                                                                                                                                                      -
                                                                                                                                                                                      396 * #m_target_control_blob) to save RAM/a few cycles? Technically at least user should not care if some garbage
                                                                                                                                                                                      -
                                                                                                                                                                                      397 * is temporarily placed there (after PING a real message should arrive and replace it; or else on error
                                                                                                                                                                                      -
                                                                                                                                                                                      398 * or graceful-close who cares?).
                                                                                                                                                                                      -
                                                                                                                                                                                      399 */
                                                                                                                                                                                      -
                                                                                                                                                                                      400 flow::util::Blob m_target_control_blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      401
                                                                                                                                                                                      -
                                                                                                                                                                                      402 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      403 * The first and only MQ-hosing error condition detected when attempting to low-level-read on
                                                                                                                                                                                      -
                                                                                                                                                                                      404 * #m_mq; or falsy if no such error has yet been detected. Among possible other uses, it is emitted
                                                                                                                                                                                      -
                                                                                                                                                                                      405 * to the ongoing-at-the-time async_receive_blob()'s completion handler (if one is indeed outstanding)
                                                                                                                                                                                      -
                                                                                                                                                                                      406 * and immediately to any subsequent async_receive_blob().
                                                                                                                                                                                      -
                                                                                                                                                                                      407 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      409
                                                                                                                                                                                      -
                                                                                                                                                                                      410 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      411 * `timeout` from idle_timer_run() args; or `zero()` if not yet called. #m_idle_timer stays inactive
                                                                                                                                                                                      -
                                                                                                                                                                                      412 * until this becomes not-`zero()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      413 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      415
                                                                                                                                                                                      -
                                                                                                                                                                                      416 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      417 * Timer that fires on_ev_idle_timer_fired() (which hoses the pipe with idle timeour error) and is
                                                                                                                                                                                      -
                                                                                                                                                                                      418 * (re)scheduled to fire in #m_idle_timeout each time `*this` receives a complete message
                                                                                                                                                                                      -
                                                                                                                                                                                      419 * on #m_mq. If it does fire, without being preempted by some error to have occurred since then,
                                                                                                                                                                                      -
                                                                                                                                                                                      420 * the pipe is hosed with a particular error indicating idle-timeout (so that `Error_code` is saved
                                                                                                                                                                                      -
                                                                                                                                                                                      421 * to #m_pending_err_code).
                                                                                                                                                                                      -
                                                                                                                                                                                      422 *
                                                                                                                                                                                      -
                                                                                                                                                                                      423 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      -
                                                                                                                                                                                      424 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      425 */
                                                                                                                                                                                      -
                                                                                                                                                                                      426 flow::util::Timer m_idle_timer;
                                                                                                                                                                                      -
                                                                                                                                                                                      427
                                                                                                                                                                                      -
                                                                                                                                                                                      428 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      429 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_idle_timer
                                                                                                                                                                                      -
                                                                                                                                                                                      430 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      -
                                                                                                                                                                                      431 *
                                                                                                                                                                                      -
                                                                                                                                                                                      432 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      433 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      435
                                                                                                                                                                                      -
                                                                                                                                                                                      436 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      437 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      438 * used to wait on events from) #m_idle_timer_fired_peer.
                                                                                                                                                                                      -
                                                                                                                                                                                      439 *
                                                                                                                                                                                      -
                                                                                                                                                                                      440 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      441 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      443
                                                                                                                                                                                      -
                                                                                                                                                                                      444 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      445 * Function (set forever in start_receive_blob_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      -
                                                                                                                                                                                      446 * async-wait facility for descriptors/events relevant to our ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      -
                                                                                                                                                                                      447 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      -
                                                                                                                                                                                      448 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      450
                                                                                                                                                                                      -
                                                                                                                                                                                      451 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      452 * Worker thread W always in one of 2 states: idle; or (when #m_mq is in would-block condition) executing an
                                                                                                                                                                                      -
                                                                                                                                                                                      453 * indefinite, interrupting blocking wait for transmissibility of #m_mq. When thread U wants to receive
                                                                                                                                                                                      -
                                                                                                                                                                                      454 * a payload but gets would-block, it issues the wait on this thread W and a `sync_io`-pattern async-wait
                                                                                                                                                                                      -
                                                                                                                                                                                      455 * for #m_ev_wait_hndl_mq; once that wait completes in thread W, it writes a byte to an internal IPC-pipe.
                                                                                                                                                                                      -
                                                                                                                                                                                      456 * #m_ev_wait_hndl_mq becomes readable, the outside event loop lets `*this` know, which completes the async-wait.
                                                                                                                                                                                      -
                                                                                                                                                                                      457 *
                                                                                                                                                                                      -
                                                                                                                                                                                      458 * In dtor we stop thread W, including using Persistent_mq_handle::interrupt_receives() to abort the indefinite
                                                                                                                                                                                      -
                                                                                                                                                                                      459 * wait in thread W, as it will no longer be used once `*this` is destroyed.
                                                                                                                                                                                      -
                                                                                                                                                                                      460 *
                                                                                                                                                                                      -
                                                                                                                                                                                      461 * Ordering: If we want to let things get auto-destroyed without explicit `m_blocking_worker->stop()` or
                                                                                                                                                                                      -
                                                                                                                                                                                      462 * nullifying wrappers in an explicit order, then this must be declared after #m_mq. Otherwise code may still be
                                                                                                                                                                                      -
                                                                                                                                                                                      463 * finishing up in thread W when #m_mq is destroyed already. Anyway -- as long as this is destroyed or `.stop()`ed
                                                                                                                                                                                      -
                                                                                                                                                                                      464 * before #m_mq is gone, you're cool.
                                                                                                                                                                                      -
                                                                                                                                                                                      465 *
                                                                                                                                                                                      -
                                                                                                                                                                                      466 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      467 */
                                                                                                                                                                                      -
                                                                                                                                                                                      468 std::optional<flow::async::Single_thread_task_loop> m_blocking_worker;
                                                                                                                                                                                      -
                                                                                                                                                                                      469}; // class Blob_stream_mq_receiver_impl
                                                                                                                                                                                      -
                                                                                                                                                                                      470
                                                                                                                                                                                      -
                                                                                                                                                                                      471// Free functions: in *_fwd.hpp.
                                                                                                                                                                                      -
                                                                                                                                                                                      472
                                                                                                                                                                                      -
                                                                                                                                                                                      473// Template implementations.
                                                                                                                                                                                      -
                                                                                                                                                                                      474
                                                                                                                                                                                      -
                                                                                                                                                                                      475template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      477 (flow::log::Logger* logger_ptr, util::String_view nickname_str, Mq&& mq,
                                                                                                                                                                                      -
                                                                                                                                                                                      478 Error_code* err_code) :
                                                                                                                                                                                      -
                                                                                                                                                                                      479
                                                                                                                                                                                      -
                                                                                                                                                                                      480 flow::log::Log_context(logger_ptr, Log_component::S_TRANSPORT),
                                                                                                                                                                                      -
                                                                                                                                                                                      481 m_nickname(nickname_str),
                                                                                                                                                                                      -
                                                                                                                                                                                      482 m_protocol_negotiator(get_logger(), nickname(),
                                                                                                                                                                                      -
                                                                                                                                                                                      483 1, 1), // Initial protocol! @todo Magic-number `const`(s), particularly if/when v2 exists.
                                                                                                                                                                                      -
                                                                                                                                                                                      484 m_absolute_name(mq.absolute_name()),
                                                                                                                                                                                      -
                                                                                                                                                                                      485 // m_mq null for now but is set up below.
                                                                                                                                                                                      -
                                                                                                                                                                                      486 m_mq_max_msg_sz(mq.max_msg_size()), // Just grab this now though.
                                                                                                                                                                                      -
                                                                                                                                                                                      487 m_ev_wait_hndl_mq(m_ev_hndl_task_engine_unused), // This needs to be .assign()ed still.
                                                                                                                                                                                      -
                                                                                                                                                                                      488 m_timer_worker(get_logger(), flow::util::ostream_op_string(*this)),
                                                                                                                                                                                      -
                                                                                                                                                                                      489 m_control_state(false),
                                                                                                                                                                                      -
                                                                                                                                                                                      490 m_target_control_blob(get_logger(), receive_blob_max_size()), // See its doc header.
                                                                                                                                                                                      -
                                                                                                                                                                                      491 m_idle_timeout(util::Fine_duration::zero()), // idle_timer_run() not yet called.
                                                                                                                                                                                      -
                                                                                                                                                                                      492 m_idle_timer(m_timer_worker.create_timer()), // Inactive timer (idle_timer_run() not yet called).
                                                                                                                                                                                      -
                                                                                                                                                                                      493 /* If it does become active, we'll use this readable-pipe-peer to get informed by m_timer_worker that
                                                                                                                                                                                      -
                                                                                                                                                                                      494 * m_idle_timer has fired. That way we can use m_ev_wait_func() mechanism to have user
                                                                                                                                                                                      -
                                                                                                                                                                                      495 * ferry timer firings to us. */
                                                                                                                                                                                      -
                                                                                                                                                                                      496 m_idle_timer_fired_peer(m_timer_worker.create_timer_signal_pipe()),
                                                                                                                                                                                      -
                                                                                                                                                                                      497 // And this is its watchee mirror for outside event loop (sync_io pattern).
                                                                                                                                                                                      -
                                                                                                                                                                                      498 m_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      -
                                                                                                                                                                                      499 (m_ev_hndl_task_engine_unused,
                                                                                                                                                                                      -
                                                                                                                                                                                      500 Native_handle(m_idle_timer_fired_peer->native_handle()))
                                                                                                                                                                                      -
                                                                                                                                                                                      501{
                                                                                                                                                                                      -
                                                                                                                                                                                      502 using flow::error::Runtime_error;
                                                                                                                                                                                      -
                                                                                                                                                                                      503 using flow::util::ostream_op_string;
                                                                                                                                                                                      -
                                                                                                                                                                                      504 using boost::asio::connect_pipe;
                                                                                                                                                                                      -
                                                                                                                                                                                      505
                                                                                                                                                                                      -
                                                                                                                                                                                      506 // This is near-identical to Blob_stream_mq_sender_impl ctor. Keeping comments light. @todo Code reuse.
                                                                                                                                                                                      -
                                                                                                                                                                                      507
                                                                                                                                                                                      -
                                                                                                                                                                                      508 auto& sys_err_code = m_pending_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      509
                                                                                                                                                                                      -
                                                                                                                                                                                      510 m_mq = Base::ensure_unique_peer(get_logger(),
                                                                                                                                                                                      -
                                                                                                                                                                                      511 std::move(mq), false /* receiver */, &sys_err_code); // Does not throw.
                                                                                                                                                                                      -
                                                                                                                                                                                      512 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      -
                                                                                                                                                                                      513 // On error *err_code will be truthy, and it will have returned null.
                                                                                                                                                                                      -
                                                                                                                                                                                      514
                                                                                                                                                                                      -
                                                                                                                                                                                      515 if (!sys_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      516 {
                                                                                                                                                                                      -
                                                                                                                                                                                      517 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      518 {
                                                                                                                                                                                      -
                                                                                                                                                                                      519 // Load up the FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      -
                                                                                                                                                                                      520 m_ev_wait_hndl_mq.assign(m_mq->native_handle());
                                                                                                                                                                                      -
                                                                                                                                                                                      521 } // if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      522 else // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      523 {
                                                                                                                                                                                      -
                                                                                                                                                                                      524 m_nb_task_engine.emplace();
                                                                                                                                                                                      -
                                                                                                                                                                                      525 m_mq_ready_reader.emplace(*m_nb_task_engine); // No handle inside but will be set-up soon below.
                                                                                                                                                                                      -
                                                                                                                                                                                      526 m_mq_ready_writer.emplace(*m_nb_task_engine); // Ditto.
                                                                                                                                                                                      -
                                                                                                                                                                                      527
                                                                                                                                                                                      -
                                                                                                                                                                                      528 // Start thread W, for when (and if) we need to use it to async-wait for transmissibility.
                                                                                                                                                                                      -
                                                                                                                                                                                      529 m_blocking_worker.emplace(get_logger(),
                                                                                                                                                                                      -
                                                                                                                                                                                      530 ostream_op_string("mq_rcv-", nickname())); // Thread W started just below.
                                                                                                                                                                                      -
                                                                                                                                                                                      531 m_blocking_worker->start();
                                                                                                                                                                                      -
                                                                                                                                                                                      532
                                                                                                                                                                                      -
                                                                                                                                                                                      533 // For now we just set up the IPC-pipe and the sync_io-watched FD mirror. First things first... err, second....
                                                                                                                                                                                      -
                                                                                                                                                                                      534 connect_pipe(*m_mq_ready_reader, *m_mq_ready_writer, sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      535 if (sys_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      536 {
                                                                                                                                                                                      -
                                                                                                                                                                                      537 FLOW_LOG_WARNING
                                                                                                                                                                                      -
                                                                                                                                                                                      538 ("Blob_stream_mq_receiver [" << *this << "]: Constructing: connect-pipe failed. Details follow.");
                                                                                                                                                                                      -
                                                                                                                                                                                      539 FLOW_ERROR_SYS_ERROR_LOG_WARNING();
                                                                                                                                                                                      -
                                                                                                                                                                                      540
                                                                                                                                                                                      -
                                                                                                                                                                                      541 m_mq.reset(); // Undo this.
                                                                                                                                                                                      -
                                                                                                                                                                                      542 }
                                                                                                                                                                                      -
                                                                                                                                                                                      543 else
                                                                                                                                                                                      -
                                                                                                                                                                                      544 {
                                                                                                                                                                                      -
                                                                                                                                                                                      545 // Lastly load up the read-end FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      - -
                                                                                                                                                                                      547 }
                                                                                                                                                                                      -
                                                                                                                                                                                      548 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      549 } // if (!sys_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      +
                                                                                                                                                                                      308 * ### When is it null? ###
                                                                                                                                                                                      +
                                                                                                                                                                                      309 * It is null if and only if in ctor we were unable to create it (an error occurred in subsuming `mq` arg).
                                                                                                                                                                                      +
                                                                                                                                                                                      310 * Other than this quite-fatal corner case, #m_mq remains non-null until dtor executes.
                                                                                                                                                                                      +
                                                                                                                                                                                      311 *
                                                                                                                                                                                      +
                                                                                                                                                                                      312 * Important subtlety: We might be tempted to also nullify it upon detecting an error on the queue, so as to
                                                                                                                                                                                      +
                                                                                                                                                                                      313 * early-return a resource to the OS. However, for the same reason detailed in doc header for
                                                                                                                                                                                      +
                                                                                                                                                                                      314 * Native_socket_stream::Impl::m_peer_socket_hosed, we must not do so until dtor runs.
                                                                                                                                                                                      +
                                                                                                                                                                                      315 * (Technically this is only the case if `Mq::S_HAS_NATIVE_HANDLE == true`, as only then would the user be
                                                                                                                                                                                      +
                                                                                                                                                                                      316 * potentially directly performing async-waits on the underlying native-handle... but let's not get overly cute
                                                                                                                                                                                      +
                                                                                                                                                                                      317 * and entropy-laden.)
                                                                                                                                                                                      +
                                                                                                                                                                                      318 *
                                                                                                                                                                                      +
                                                                                                                                                                                      319 * So, reminder: Do not `m_mq.reset()` until dtor, if not null upon exiting ctor!
                                                                                                                                                                                      +
                                                                                                                                                                                      320 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      322
                                                                                                                                                                                      +
                                                                                                                                                                                      323 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      324 * Equals `m_mq.max_msg_size()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      325 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      326 * It is saved in ctor, instead of invoking `m_mq->max_msg_size()` when needed, to keep the rules for when #m_mq
                                                                                                                                                                                      +
                                                                                                                                                                                      327 * is accessed simple and as described in its doc header. After all this value would never change anyway.
                                                                                                                                                                                      +
                                                                                                                                                                                      328 */
                                                                                                                                                                                      +
                                                                                                                                                                                      329 const size_t m_mq_max_msg_sz;
                                                                                                                                                                                      +
                                                                                                                                                                                      330
                                                                                                                                                                                      +
                                                                                                                                                                                      331 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      332 * Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      +
                                                                                                                                                                                      333 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. The signal byte
                                                                                                                                                                                      +
                                                                                                                                                                                      334 * is read out of #m_mq_ready_reader, making it empty again (the steady-state before the next time would-block
                                                                                                                                                                                      +
                                                                                                                                                                                      335 * occurs, and a byte is written to it making it non-empty).
                                                                                                                                                                                      +
                                                                                                                                                                                      336 *
                                                                                                                                                                                      +
                                                                                                                                                                                      337 * @see #m_mq_ready_writer.
                                                                                                                                                                                      +
                                                                                                                                                                                      338 *
                                                                                                                                                                                      +
                                                                                                                                                                                      339 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      340 */
                                                                                                                                                                                      +
                                                                                                                                                                                      341 std::optional<util::Pipe_reader> m_mq_ready_reader;
                                                                                                                                                                                      +
                                                                                                                                                                                      342
                                                                                                                                                                                      +
                                                                                                                                                                                      343 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      344 * Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      +
                                                                                                                                                                                      345 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. A signal byte
                                                                                                                                                                                      +
                                                                                                                                                                                      346 * is written to #m_mq_ready_writer, making it non-empty.
                                                                                                                                                                                      +
                                                                                                                                                                                      347 *
                                                                                                                                                                                      +
                                                                                                                                                                                      348 * @see #m_mq_ready_reader.
                                                                                                                                                                                      +
                                                                                                                                                                                      349 *
                                                                                                                                                                                      +
                                                                                                                                                                                      350 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      351 */
                                                                                                                                                                                      +
                                                                                                                                                                                      352 std::optional<util::Pipe_writer> m_mq_ready_writer;
                                                                                                                                                                                      +
                                                                                                                                                                                      353
                                                                                                                                                                                      +
                                                                                                                                                                                      354 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      355 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      356 * used to wait on events from) #m_mq_ready_reader; or if #m_mq can be watched directly (known at compile-time)
                                                                                                                                                                                      +
                                                                                                                                                                                      357 * then as `m_mq` itself. Its name suggests it's watching #m_mq (for transmissibility),
                                                                                                                                                                                      +
                                                                                                                                                                                      358 * and that's true: In the latter case one directly watches it for transmissibility in the proper direction;
                                                                                                                                                                                      +
                                                                                                                                                                                      359 * in the former case Persistent_mq_handle lacks a #Native_handle to watch directly -- but we use the
                                                                                                                                                                                      +
                                                                                                                                                                                      360 * `m_mq_ready_*` pipe and a background thread to simulate it having one. Thus in that case #m_mq_ready_reader FD =
                                                                                                                                                                                      +
                                                                                                                                                                                      361 * this FD, and it being transmissible = MQ being transmissible.
                                                                                                                                                                                      +
                                                                                                                                                                                      362 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      364
                                                                                                                                                                                      +
                                                                                                                                                                                      365 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      366 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      +
                                                                                                                                                                                      367 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      +
                                                                                                                                                                                      368 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the idle timer.
                                                                                                                                                                                      +
                                                                                                                                                                                      369 *
                                                                                                                                                                                      +
                                                                                                                                                                                      370 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      +
                                                                                                                                                                                      371 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      373
                                                                                                                                                                                      +
                                                                                                                                                                                      374 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      375 * Null if no async_receive_blob()` is currently pending; else describes the arguments to that pending
                                                                                                                                                                                      +
                                                                                                                                                                                      376 * async_receive_blob().
                                                                                                                                                                                      +
                                                                                                                                                                                      377 *
                                                                                                                                                                                      +
                                                                                                                                                                                      378 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      379 * It exists for a hopefully obvious reasons: At least a non-immediately-completed async_receive_blob() needs
                                                                                                                                                                                      +
                                                                                                                                                                                      380 * to keep track of the request so as to know where to place results and what completion handler to invoke.
                                                                                                                                                                                      +
                                                                                                                                                                                      381 *
                                                                                                                                                                                      +
                                                                                                                                                                                      382 * As for it being nullable: this is used to guard against `async_receive_*()` being invoked while another
                                                                                                                                                                                      +
                                                                                                                                                                                      383 * is already outstanding. We do not queue pending requests per
                                                                                                                                                                                      +
                                                                                                                                                                                      384 * sync_io::Blob_receiver concept. (However the non-`sync_io` a/k/a async-I/O
                                                                                                                                                                                      +
                                                                                                                                                                                      385 * Blob_receiver transport::Blob_stream_mq_receiver does. Therefore
                                                                                                                                                                                      +
                                                                                                                                                                                      386 * the latter class does internally implement a `User_request` queue.)
                                                                                                                                                                                      +
                                                                                                                                                                                      387 */
                                                                                                                                                                                      +
                                                                                                                                                                                      388 std::optional<User_request> m_user_request;
                                                                                                                                                                                      +
                                                                                                                                                                                      389
                                                                                                                                                                                      +
                                                                                                                                                                                      390 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      391 * At steady-state `false`, becomes `true` if a low-level "escape" payload (empty message) was last received
                                                                                                                                                                                      +
                                                                                                                                                                                      392 * meaning the next message will be the encoding of a #Control_cmd enumeration value, receiving which shall
                                                                                                                                                                                      +
                                                                                                                                                                                      393 * reset this to `false`.
                                                                                                                                                                                      +
                                                                                                                                                                                      394 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      396
                                                                                                                                                                                      +
                                                                                                                                                                                      397 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      398 * Used only when #m_control_state is `true`, this is where payload 2 (the #Control_cmd) is placed.
                                                                                                                                                                                      +
                                                                                                                                                                                      399 * Though in reality it should only require `sizeof(Control_cmd)` bytes, #m_mq receive will emit an error
                                                                                                                                                                                      +
                                                                                                                                                                                      400 * if it cannot hold #m_mq_max_msg_sz bytes (that is just how Persistent_mq_handle works; though we do not care
                                                                                                                                                                                      +
                                                                                                                                                                                      401 * why here the reason is that's how both ipc and POSIX MQ APIs work).
                                                                                                                                                                                      +
                                                                                                                                                                                      402 *
                                                                                                                                                                                      +
                                                                                                                                                                                      403 * We could also abuse #m_user_request `m_target_blob`; but that seems uncool.
                                                                                                                                                                                      +
                                                                                                                                                                                      404 *
                                                                                                                                                                                      +
                                                                                                                                                                                      405 * @todo Maybe we should indeed use `m_user_request->m_target_blob` (instead of locally stored
                                                                                                                                                                                      +
                                                                                                                                                                                      406 * #m_target_control_blob) to save RAM/a few cycles? Technically at least user should not care if some garbage
                                                                                                                                                                                      +
                                                                                                                                                                                      407 * is temporarily placed there (after PING a real message should arrive and replace it; or else on error
                                                                                                                                                                                      +
                                                                                                                                                                                      408 * or graceful-close who cares?).
                                                                                                                                                                                      +
                                                                                                                                                                                      409 */
                                                                                                                                                                                      +
                                                                                                                                                                                      410 flow::util::Blob m_target_control_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      411
                                                                                                                                                                                      +
                                                                                                                                                                                      412 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      413 * The first and only MQ-hosing error condition detected when attempting to low-level-read on
                                                                                                                                                                                      +
                                                                                                                                                                                      414 * #m_mq; or falsy if no such error has yet been detected. Among possible other uses, it is emitted
                                                                                                                                                                                      +
                                                                                                                                                                                      415 * to the ongoing-at-the-time async_receive_blob()'s completion handler (if one is indeed outstanding)
                                                                                                                                                                                      +
                                                                                                                                                                                      416 * and immediately to any subsequent async_receive_blob().
                                                                                                                                                                                      +
                                                                                                                                                                                      417 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      419
                                                                                                                                                                                      +
                                                                                                                                                                                      420 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      421 * `timeout` from idle_timer_run() args; or `zero()` if not yet called. #m_idle_timer stays inactive
                                                                                                                                                                                      +
                                                                                                                                                                                      422 * until this becomes not-`zero()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      423 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      425
                                                                                                                                                                                      +
                                                                                                                                                                                      426 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      427 * Timer that fires on_ev_idle_timer_fired() (which hoses the pipe with idle timeour error) and is
                                                                                                                                                                                      +
                                                                                                                                                                                      428 * (re)scheduled to fire in #m_idle_timeout each time `*this` receives a complete message
                                                                                                                                                                                      +
                                                                                                                                                                                      429 * on #m_mq. If it does fire, without being preempted by some error to have occurred since then,
                                                                                                                                                                                      +
                                                                                                                                                                                      430 * the pipe is hosed with a particular error indicating idle-timeout (so that `Error_code` is saved
                                                                                                                                                                                      +
                                                                                                                                                                                      431 * to #m_pending_err_code).
                                                                                                                                                                                      +
                                                                                                                                                                                      432 *
                                                                                                                                                                                      +
                                                                                                                                                                                      433 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      +
                                                                                                                                                                                      434 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      435 */
                                                                                                                                                                                      +
                                                                                                                                                                                      436 flow::util::Timer m_idle_timer;
                                                                                                                                                                                      +
                                                                                                                                                                                      437
                                                                                                                                                                                      +
                                                                                                                                                                                      438 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      439 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_idle_timer
                                                                                                                                                                                      +
                                                                                                                                                                                      440 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      +
                                                                                                                                                                                      441 *
                                                                                                                                                                                      +
                                                                                                                                                                                      442 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      443 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      445
                                                                                                                                                                                      +
                                                                                                                                                                                      446 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      447 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      448 * used to wait on events from) #m_idle_timer_fired_peer.
                                                                                                                                                                                      +
                                                                                                                                                                                      449 *
                                                                                                                                                                                      +
                                                                                                                                                                                      450 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      451 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      453
                                                                                                                                                                                      +
                                                                                                                                                                                      454 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      455 * Function (set forever in start_receive_blob_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      +
                                                                                                                                                                                      456 * async-wait facility for descriptors/events relevant to our ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      +
                                                                                                                                                                                      457 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      +
                                                                                                                                                                                      458 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      460
                                                                                                                                                                                      +
                                                                                                                                                                                      461 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      462 * Worker thread W always in one of 2 states: idle; or (when #m_mq is in would-block condition) executing an
                                                                                                                                                                                      +
                                                                                                                                                                                      463 * indefinite, interrupting blocking wait for transmissibility of #m_mq. When thread U wants to receive
                                                                                                                                                                                      +
                                                                                                                                                                                      464 * a payload but gets would-block, it issues the wait on this thread W and a `sync_io`-pattern async-wait
                                                                                                                                                                                      +
                                                                                                                                                                                      465 * for #m_ev_wait_hndl_mq; once that wait completes in thread W, it writes a byte to an internal IPC-pipe.
                                                                                                                                                                                      +
                                                                                                                                                                                      466 * #m_ev_wait_hndl_mq becomes readable, the outside event loop lets `*this` know, which completes the async-wait.
                                                                                                                                                                                      +
                                                                                                                                                                                      467 *
                                                                                                                                                                                      +
                                                                                                                                                                                      468 * In dtor we stop thread W, including using Persistent_mq_handle::interrupt_receives() to abort the indefinite
                                                                                                                                                                                      +
                                                                                                                                                                                      469 * wait in thread W, as it will no longer be used once `*this` is destroyed.
                                                                                                                                                                                      +
                                                                                                                                                                                      470 *
                                                                                                                                                                                      +
                                                                                                                                                                                      471 * Ordering: If we want to let things get auto-destroyed without explicit `m_blocking_worker->stop()` or
                                                                                                                                                                                      +
                                                                                                                                                                                      472 * nullifying wrappers in an explicit order, then this must be declared after #m_mq. Otherwise code may still be
                                                                                                                                                                                      +
                                                                                                                                                                                      473 * finishing up in thread W when #m_mq is destroyed already. Anyway -- as long as this is destroyed or `.stop()`ed
                                                                                                                                                                                      +
                                                                                                                                                                                      474 * before #m_mq is gone, you're cool.
                                                                                                                                                                                      +
                                                                                                                                                                                      475 *
                                                                                                                                                                                      +
                                                                                                                                                                                      476 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      477 */
                                                                                                                                                                                      +
                                                                                                                                                                                      478 std::optional<flow::async::Single_thread_task_loop> m_blocking_worker;
                                                                                                                                                                                      +
                                                                                                                                                                                      479}; // class Blob_stream_mq_receiver_impl
                                                                                                                                                                                      +
                                                                                                                                                                                      480
                                                                                                                                                                                      +
                                                                                                                                                                                      481// Free functions: in *_fwd.hpp.
                                                                                                                                                                                      +
                                                                                                                                                                                      482
                                                                                                                                                                                      +
                                                                                                                                                                                      483// Template implementations.
                                                                                                                                                                                      +
                                                                                                                                                                                      484
                                                                                                                                                                                      +
                                                                                                                                                                                      485template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      487 (flow::log::Logger* logger_ptr, util::String_view nickname_str, Mq&& mq,
                                                                                                                                                                                      +
                                                                                                                                                                                      488 Error_code* err_code) :
                                                                                                                                                                                      +
                                                                                                                                                                                      489
                                                                                                                                                                                      +
                                                                                                                                                                                      490 flow::log::Log_context(logger_ptr, Log_component::S_TRANSPORT),
                                                                                                                                                                                      +
                                                                                                                                                                                      491 m_nickname(nickname_str),
                                                                                                                                                                                      +
                                                                                                                                                                                      492 m_protocol_negotiator(get_logger(), nickname(),
                                                                                                                                                                                      +
                                                                                                                                                                                      493 1, 1), // Initial protocol! @todo Magic-number `const`(s), particularly if/when v2 exists.
                                                                                                                                                                                      +
                                                                                                                                                                                      494 m_absolute_name(mq.absolute_name()),
                                                                                                                                                                                      +
                                                                                                                                                                                      495 // m_mq null for now but is set up below.
                                                                                                                                                                                      +
                                                                                                                                                                                      496 m_mq_max_msg_sz(mq.max_msg_size()), // Just grab this now though.
                                                                                                                                                                                      +
                                                                                                                                                                                      497 m_ev_wait_hndl_mq(m_ev_hndl_task_engine_unused), // This needs to be .assign()ed still.
                                                                                                                                                                                      +
                                                                                                                                                                                      498 m_timer_worker(get_logger(), flow::util::ostream_op_string(*this)),
                                                                                                                                                                                      +
                                                                                                                                                                                      499 m_control_state(false),
                                                                                                                                                                                      +
                                                                                                                                                                                      500 m_target_control_blob(get_logger(), receive_blob_max_size()), // See its doc header.
                                                                                                                                                                                      +
                                                                                                                                                                                      501 m_idle_timeout(util::Fine_duration::zero()), // idle_timer_run() not yet called.
                                                                                                                                                                                      +
                                                                                                                                                                                      502 m_idle_timer(m_timer_worker.create_timer()), // Inactive timer (idle_timer_run() not yet called).
                                                                                                                                                                                      +
                                                                                                                                                                                      503 /* If it does become active, we'll use this readable-pipe-peer to get informed by m_timer_worker that
                                                                                                                                                                                      +
                                                                                                                                                                                      504 * m_idle_timer has fired. That way we can use m_ev_wait_func() mechanism to have user
                                                                                                                                                                                      +
                                                                                                                                                                                      505 * ferry timer firings to us. */
                                                                                                                                                                                      +
                                                                                                                                                                                      506 m_idle_timer_fired_peer(m_timer_worker.create_timer_signal_pipe()),
                                                                                                                                                                                      +
                                                                                                                                                                                      507 // And this is its watchee mirror for outside event loop (sync_io pattern).
                                                                                                                                                                                      +
                                                                                                                                                                                      508 m_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      +
                                                                                                                                                                                      509 (m_ev_hndl_task_engine_unused,
                                                                                                                                                                                      +
                                                                                                                                                                                      510 Native_handle(m_idle_timer_fired_peer->native_handle()))
                                                                                                                                                                                      +
                                                                                                                                                                                      511{
                                                                                                                                                                                      +
                                                                                                                                                                                      512 using flow::error::Runtime_error;
                                                                                                                                                                                      +
                                                                                                                                                                                      513 using flow::util::ostream_op_string;
                                                                                                                                                                                      +
                                                                                                                                                                                      514 using boost::asio::connect_pipe;
                                                                                                                                                                                      +
                                                                                                                                                                                      515
                                                                                                                                                                                      +
                                                                                                                                                                                      516 // This is near-identical to Blob_stream_mq_sender_impl ctor. Keeping comments light. @todo Code reuse.
                                                                                                                                                                                      +
                                                                                                                                                                                      517
                                                                                                                                                                                      +
                                                                                                                                                                                      518 auto& sys_err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      519
                                                                                                                                                                                      +
                                                                                                                                                                                      520 m_mq = Base::ensure_unique_peer(get_logger(),
                                                                                                                                                                                      +
                                                                                                                                                                                      521 std::move(mq), false /* receiver */, &sys_err_code); // Does not throw.
                                                                                                                                                                                      +
                                                                                                                                                                                      522 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      523 // On error *err_code will be truthy, and it will have returned null.
                                                                                                                                                                                      +
                                                                                                                                                                                      524
                                                                                                                                                                                      +
                                                                                                                                                                                      525 if (!sys_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      526 {
                                                                                                                                                                                      +
                                                                                                                                                                                      527 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      528 {
                                                                                                                                                                                      +
                                                                                                                                                                                      529 // Load up the FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      +
                                                                                                                                                                                      530 m_ev_wait_hndl_mq.assign(m_mq->native_handle());
                                                                                                                                                                                      +
                                                                                                                                                                                      531 } // if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      532 else // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      533 {
                                                                                                                                                                                      +
                                                                                                                                                                                      534 m_nb_task_engine.emplace();
                                                                                                                                                                                      +
                                                                                                                                                                                      535 m_mq_ready_reader.emplace(*m_nb_task_engine); // No handle inside but will be set-up soon below.
                                                                                                                                                                                      +
                                                                                                                                                                                      536 m_mq_ready_writer.emplace(*m_nb_task_engine); // Ditto.
                                                                                                                                                                                      +
                                                                                                                                                                                      537
                                                                                                                                                                                      +
                                                                                                                                                                                      538 // Start thread W, for when (and if) we need to use it to async-wait for transmissibility.
                                                                                                                                                                                      +
                                                                                                                                                                                      539 m_blocking_worker.emplace(get_logger(),
                                                                                                                                                                                      +
                                                                                                                                                                                      540 ostream_op_string("mq_rcv-", nickname())); // Thread W started just below.
                                                                                                                                                                                      +
                                                                                                                                                                                      541 m_blocking_worker->start();
                                                                                                                                                                                      +
                                                                                                                                                                                      542
                                                                                                                                                                                      +
                                                                                                                                                                                      543 // For now we just set up the IPC-pipe and the sync_io-watched FD mirror. First things first... err, second....
                                                                                                                                                                                      +
                                                                                                                                                                                      544 connect_pipe(*m_mq_ready_reader, *m_mq_ready_writer, sys_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      545 if (sys_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      546 {
                                                                                                                                                                                      +
                                                                                                                                                                                      547 FLOW_LOG_WARNING
                                                                                                                                                                                      +
                                                                                                                                                                                      548 ("Blob_stream_mq_receiver [" << *this << "]: Constructing: connect-pipe failed. Details follow.");
                                                                                                                                                                                      +
                                                                                                                                                                                      549 FLOW_ERROR_SYS_ERROR_LOG_WARNING();
                                                                                                                                                                                      550
                                                                                                                                                                                      -
                                                                                                                                                                                      551 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      -
                                                                                                                                                                                      552
                                                                                                                                                                                      -
                                                                                                                                                                                      553 if (!m_mq)
                                                                                                                                                                                      -
                                                                                                                                                                                      554 {
                                                                                                                                                                                      -
                                                                                                                                                                                      555 // `mq` is untouched. m_pending_err_code will cause that to be emitted on async_receive_blob() and such.
                                                                                                                                                                                      -
                                                                                                                                                                                      556 assert(sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      557
                                                                                                                                                                                      -
                                                                                                                                                                                      558 if (err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      559 {
                                                                                                                                                                                      -
                                                                                                                                                                                      560 *err_code = sys_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      561 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      562 }
                                                                                                                                                                                      -
                                                                                                                                                                                      563 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      564 throw Runtime_error(sys_err_code, "Blob_stream_mq_receiver(): ensure_unique_peer()");
                                                                                                                                                                                      -
                                                                                                                                                                                      565 }
                                                                                                                                                                                      -
                                                                                                                                                                                      566 // else: took over `mq` ownership.
                                                                                                                                                                                      -
                                                                                                                                                                                      567 assert(!sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      568
                                                                                                                                                                                      -
                                                                                                                                                                                      569 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: MQ-handle-watching apparatus ready including running "
                                                                                                                                                                                      -
                                                                                                                                                                                      570 "blocking worker thread for would-block situations if necessary "
                                                                                                                                                                                      -
                                                                                                                                                                                      571 "(is it? = [" << (!Mq::S_HAS_NATIVE_HANDLE) << "]).");
                                                                                                                                                                                      -
                                                                                                                                                                                      572} // Blob_stream_mq_receiver_impl::Blob_stream_mq_receiver()
                                                                                                                                                                                      -
                                                                                                                                                                                      573
                                                                                                                                                                                      -
                                                                                                                                                                                      574template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      576{
                                                                                                                                                                                      -
                                                                                                                                                                                      577 // This is near-identical to Blob_stream_mq_sender_impl dtor. Keeping comments light. @todo Code reuse.
                                                                                                                                                                                      +
                                                                                                                                                                                      551 m_mq.reset(); // Undo this.
                                                                                                                                                                                      +
                                                                                                                                                                                      552 }
                                                                                                                                                                                      +
                                                                                                                                                                                      553 else
                                                                                                                                                                                      +
                                                                                                                                                                                      554 {
                                                                                                                                                                                      +
                                                                                                                                                                                      555 // Lastly load up the read-end FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      + +
                                                                                                                                                                                      557 }
                                                                                                                                                                                      +
                                                                                                                                                                                      558 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      559 } // if (!sys_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      +
                                                                                                                                                                                      560
                                                                                                                                                                                      +
                                                                                                                                                                                      561 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      562
                                                                                                                                                                                      +
                                                                                                                                                                                      563 if (!m_mq)
                                                                                                                                                                                      +
                                                                                                                                                                                      564 {
                                                                                                                                                                                      +
                                                                                                                                                                                      565 // `mq` is untouched. m_pending_err_code will cause that to be emitted on async_receive_blob() and such.
                                                                                                                                                                                      +
                                                                                                                                                                                      566 assert(sys_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      567
                                                                                                                                                                                      +
                                                                                                                                                                                      568 if (err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      569 {
                                                                                                                                                                                      +
                                                                                                                                                                                      570 *err_code = sys_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      571 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      572 }
                                                                                                                                                                                      +
                                                                                                                                                                                      573 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      574 throw Runtime_error(sys_err_code, "Blob_stream_mq_receiver(): ensure_unique_peer()");
                                                                                                                                                                                      +
                                                                                                                                                                                      575 }
                                                                                                                                                                                      +
                                                                                                                                                                                      576 // else: took over `mq` ownership.
                                                                                                                                                                                      +
                                                                                                                                                                                      577 assert(!sys_err_code);
                                                                                                                                                                                      578
                                                                                                                                                                                      -
                                                                                                                                                                                      579 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      580 {
                                                                                                                                                                                      -
                                                                                                                                                                                      581 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Shutting down. Async-wait worker thread and timer "
                                                                                                                                                                                      -
                                                                                                                                                                                      582 "thread will shut down/be joined shortly; but we must interrupt any currently-running async-wait to "
                                                                                                                                                                                      -
                                                                                                                                                                                      583 "ensure async-wait worker thread actually exits.");
                                                                                                                                                                                      -
                                                                                                                                                                                      584
                                                                                                                                                                                      -
                                                                                                                                                                                      585 if (m_mq)
                                                                                                                                                                                      -
                                                                                                                                                                                      586 {
                                                                                                                                                                                      -
                                                                                                                                                                                      587 m_mq->interrupt_receives();
                                                                                                                                                                                      -
                                                                                                                                                                                      588 }
                                                                                                                                                                                      -
                                                                                                                                                                                      589 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      590}
                                                                                                                                                                                      -
                                                                                                                                                                                      591
                                                                                                                                                                                      -
                                                                                                                                                                                      592template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      593template<typename Create_ev_wait_hndl_func>
                                                                                                                                                                                      - -
                                                                                                                                                                                      595 (const Create_ev_wait_hndl_func& create_ev_wait_hndl_func)
                                                                                                                                                                                      -
                                                                                                                                                                                      596{
                                                                                                                                                                                      -
                                                                                                                                                                                      597 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      598 {
                                                                                                                                                                                      -
                                                                                                                                                                                      599 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Cannot replace event-wait handles after "
                                                                                                                                                                                      -
                                                                                                                                                                                      600 "a start-*-ops procedure has been executed. Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      601 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      602 }
                                                                                                                                                                                      -
                                                                                                                                                                                      603 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      604
                                                                                                                                                                                      -
                                                                                                                                                                                      605 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      606 {
                                                                                                                                                                                      -
                                                                                                                                                                                      607 /* Ctor failed (without throwing, meaning they used the non-null-err_code semantic).
                                                                                                                                                                                      -
                                                                                                                                                                                      608 * It is tempting to... <see comment in _sender_impl same place. @todo Code reuse. */
                                                                                                                                                                                      -
                                                                                                                                                                                      609 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles as requested: "
                                                                                                                                                                                      -
                                                                                                                                                                                      610 "ctor failed earlier ([" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      611 "Any transmission attempts will fail in civilized fashion, so we will just no-op here.");
                                                                                                                                                                                      -
                                                                                                                                                                                      612 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      613 }
                                                                                                                                                                                      -
                                                                                                                                                                                      614 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      615
                                                                                                                                                                                      -
                                                                                                                                                                                      616 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Replacing event-wait handles (probably to replace "
                                                                                                                                                                                      -
                                                                                                                                                                                      617 "underlying execution context without outside event loop's boost.asio Task_engine or similar).");
                                                                                                                                                                                      -
                                                                                                                                                                                      618
                                                                                                                                                                                      -
                                                                                                                                                                                      619 assert(m_ev_wait_hndl_mq.is_open());
                                                                                                                                                                                      -
                                                                                                                                                                                      620 assert(m_ev_wait_hndl_idle_timer_fired_peer.is_open());
                                                                                                                                                                                      -
                                                                                                                                                                                      621
                                                                                                                                                                                      -
                                                                                                                                                                                      622 Native_handle saved(m_ev_wait_hndl_mq.release());
                                                                                                                                                                                      -
                                                                                                                                                                                      623 m_ev_wait_hndl_mq = create_ev_wait_hndl_func();
                                                                                                                                                                                      -
                                                                                                                                                                                      624 m_ev_wait_hndl_mq.assign(saved);
                                                                                                                                                                                      +
                                                                                                                                                                                      579 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: MQ-handle-watching apparatus ready including running "
                                                                                                                                                                                      +
                                                                                                                                                                                      580 "blocking worker thread for would-block situations if necessary "
                                                                                                                                                                                      +
                                                                                                                                                                                      581 "(is it? = [" << (!Mq::S_HAS_NATIVE_HANDLE) << "]).");
                                                                                                                                                                                      +
                                                                                                                                                                                      582} // Blob_stream_mq_receiver_impl::Blob_stream_mq_receiver()
                                                                                                                                                                                      +
                                                                                                                                                                                      583
                                                                                                                                                                                      +
                                                                                                                                                                                      584template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      586{
                                                                                                                                                                                      +
                                                                                                                                                                                      587 // This is near-identical to Blob_stream_mq_sender_impl dtor. Keeping comments light. @todo Code reuse.
                                                                                                                                                                                      +
                                                                                                                                                                                      588
                                                                                                                                                                                      +
                                                                                                                                                                                      589 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      590 {
                                                                                                                                                                                      +
                                                                                                                                                                                      591 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Shutting down. Async-wait worker thread and timer "
                                                                                                                                                                                      +
                                                                                                                                                                                      592 "thread will shut down/be joined shortly; but we must interrupt any currently-running async-wait to "
                                                                                                                                                                                      +
                                                                                                                                                                                      593 "ensure async-wait worker thread actually exits.");
                                                                                                                                                                                      +
                                                                                                                                                                                      594
                                                                                                                                                                                      +
                                                                                                                                                                                      595 if (m_mq)
                                                                                                                                                                                      +
                                                                                                                                                                                      596 {
                                                                                                                                                                                      +
                                                                                                                                                                                      597 m_mq->interrupt_receives();
                                                                                                                                                                                      +
                                                                                                                                                                                      598 }
                                                                                                                                                                                      +
                                                                                                                                                                                      599 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      600}
                                                                                                                                                                                      +
                                                                                                                                                                                      601
                                                                                                                                                                                      +
                                                                                                                                                                                      602template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      603template<typename Create_ev_wait_hndl_func>
                                                                                                                                                                                      + +
                                                                                                                                                                                      605 (const Create_ev_wait_hndl_func& create_ev_wait_hndl_func)
                                                                                                                                                                                      +
                                                                                                                                                                                      606{
                                                                                                                                                                                      +
                                                                                                                                                                                      607 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      608 {
                                                                                                                                                                                      +
                                                                                                                                                                                      609 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Cannot replace event-wait handles after "
                                                                                                                                                                                      +
                                                                                                                                                                                      610 "a start-*-ops procedure has been executed. Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      611 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      612 }
                                                                                                                                                                                      +
                                                                                                                                                                                      613 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      614
                                                                                                                                                                                      +
                                                                                                                                                                                      615 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      616 {
                                                                                                                                                                                      +
                                                                                                                                                                                      617 /* Ctor failed (without throwing, meaning they used the non-null-err_code semantic).
                                                                                                                                                                                      +
                                                                                                                                                                                      618 * It is tempting to... <see comment in _sender_impl same place. @todo Code reuse. */
                                                                                                                                                                                      +
                                                                                                                                                                                      619 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles as requested: "
                                                                                                                                                                                      +
                                                                                                                                                                                      620 "ctor failed earlier ([" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      621 "Any transmission attempts will fail in civilized fashion, so we will just no-op here.");
                                                                                                                                                                                      +
                                                                                                                                                                                      622 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      623 }
                                                                                                                                                                                      +
                                                                                                                                                                                      624 // else
                                                                                                                                                                                      625
                                                                                                                                                                                      -
                                                                                                                                                                                      626 saved.m_native_handle = m_ev_wait_hndl_idle_timer_fired_peer.release();
                                                                                                                                                                                      -
                                                                                                                                                                                      627 m_ev_wait_hndl_idle_timer_fired_peer = create_ev_wait_hndl_func();
                                                                                                                                                                                      -
                                                                                                                                                                                      628 m_ev_wait_hndl_idle_timer_fired_peer.assign(saved);
                                                                                                                                                                                      -
                                                                                                                                                                                      629
                                                                                                                                                                                      -
                                                                                                                                                                                      630 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      631} // Blob_stream_mq_receiver_impl::replace_event_wait_handles()
                                                                                                                                                                                      -
                                                                                                                                                                                      632
                                                                                                                                                                                      -
                                                                                                                                                                                      633template<typename Persistent_mq_handle>
                                                                                                                                                                                      - - -
                                                                                                                                                                                      636{
                                                                                                                                                                                      -
                                                                                                                                                                                      637 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      638 {
                                                                                                                                                                                      -
                                                                                                                                                                                      639 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Start-ops requested, "
                                                                                                                                                                                      -
                                                                                                                                                                                      640 "but we are already started. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      641 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      642 }
                                                                                                                                                                                      -
                                                                                                                                                                                      643 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      644
                                                                                                                                                                                      -
                                                                                                                                                                                      645 m_ev_wait_func = std::move(ev_wait_func);
                                                                                                                                                                                      -
                                                                                                                                                                                      646
                                                                                                                                                                                      -
                                                                                                                                                                                      647 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Start-ops requested. Done.");
                                                                                                                                                                                      -
                                                                                                                                                                                      648 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      649}
                                                                                                                                                                                      -
                                                                                                                                                                                      650
                                                                                                                                                                                      -
                                                                                                                                                                                      651template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      653{
                                                                                                                                                                                      -
                                                                                                                                                                                      654 if (m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      655 {
                                                                                                                                                                                      -
                                                                                                                                                                                      656 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      657 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      -
                                                                                                                                                                                      658 "but we are not. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      659 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      660 }
                                                                                                                                                                                      -
                                                                                                                                                                                      661 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      662 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      663}
                                                                                                                                                                                      -
                                                                                                                                                                                      664
                                                                                                                                                                                      -
                                                                                                                                                                                      665template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      666template<typename Task_err_sz>
                                                                                                                                                                                      - -
                                                                                                                                                                                      668 (const util::Blob_mutable& target_blob, Error_code* sync_err_code_ptr, size_t* sync_sz,
                                                                                                                                                                                      -
                                                                                                                                                                                      669 Task_err_sz&& on_done_func)
                                                                                                                                                                                      -
                                                                                                                                                                                      670{
                                                                                                                                                                                      -
                                                                                                                                                                                      671 using util::Blob_mutable;
                                                                                                                                                                                      -
                                                                                                                                                                                      672
                                                                                                                                                                                      -
                                                                                                                                                                                      673 if (!op_started("async_receive_blob()"))
                                                                                                                                                                                      -
                                                                                                                                                                                      674 {
                                                                                                                                                                                      -
                                                                                                                                                                                      675 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      676 }
                                                                                                                                                                                      -
                                                                                                                                                                                      677 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      678
                                                                                                                                                                                      -
                                                                                                                                                                                      679 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      680 *
                                                                                                                                                                                      -
                                                                                                                                                                                      681 * Briefly though: If you understand opposing send_blob() impl, then this will be easy in comparison:
                                                                                                                                                                                      -
                                                                                                                                                                                      682 * no more than one async_receive_blob() can be outstanding at a time; they are not allowed to
                                                                                                                                                                                      -
                                                                                                                                                                                      683 * invoke it until we invoke their completion handler. (Rationale is shown in detail elsewhere.)
                                                                                                                                                                                      -
                                                                                                                                                                                      684 * So there is no queuing of requests (deficit); nor reading more messages beyond what has been requested
                                                                                                                                                                                      -
                                                                                                                                                                                      685 * (surplus).
                                                                                                                                                                                      -
                                                                                                                                                                                      686 *
                                                                                                                                                                                      -
                                                                                                                                                                                      687 * That said, we must inform them of completion via on_done_func(), whereas send_blob() has no
                                                                                                                                                                                      -
                                                                                                                                                                                      688 * such requirement; easy enough -- we just save it as needed. In that sense it is much like
                                                                                                                                                                                      -
                                                                                                                                                                                      689 * opposing async_end_sending().
                                                                                                                                                                                      +
                                                                                                                                                                                      626 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Replacing event-wait handles (probably to replace "
                                                                                                                                                                                      +
                                                                                                                                                                                      627 "underlying execution context without outside event loop's boost.asio Task_engine or similar).");
                                                                                                                                                                                      +
                                                                                                                                                                                      628
                                                                                                                                                                                      +
                                                                                                                                                                                      629 assert(m_ev_wait_hndl_mq.is_open());
                                                                                                                                                                                      +
                                                                                                                                                                                      630 assert(m_ev_wait_hndl_idle_timer_fired_peer.is_open());
                                                                                                                                                                                      +
                                                                                                                                                                                      631
                                                                                                                                                                                      +
                                                                                                                                                                                      632 Native_handle saved(m_ev_wait_hndl_mq.release());
                                                                                                                                                                                      +
                                                                                                                                                                                      633 m_ev_wait_hndl_mq = create_ev_wait_hndl_func();
                                                                                                                                                                                      +
                                                                                                                                                                                      634 m_ev_wait_hndl_mq.assign(saved);
                                                                                                                                                                                      +
                                                                                                                                                                                      635
                                                                                                                                                                                      +
                                                                                                                                                                                      636 saved.m_native_handle = m_ev_wait_hndl_idle_timer_fired_peer.release();
                                                                                                                                                                                      +
                                                                                                                                                                                      637 m_ev_wait_hndl_idle_timer_fired_peer = create_ev_wait_hndl_func();
                                                                                                                                                                                      +
                                                                                                                                                                                      638 m_ev_wait_hndl_idle_timer_fired_peer.assign(saved);
                                                                                                                                                                                      +
                                                                                                                                                                                      639
                                                                                                                                                                                      +
                                                                                                                                                                                      640 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      641} // Blob_stream_mq_receiver_impl::replace_event_wait_handles()
                                                                                                                                                                                      +
                                                                                                                                                                                      642
                                                                                                                                                                                      +
                                                                                                                                                                                      643template<typename Persistent_mq_handle>
                                                                                                                                                                                      + + +
                                                                                                                                                                                      646{
                                                                                                                                                                                      +
                                                                                                                                                                                      647 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      648 {
                                                                                                                                                                                      +
                                                                                                                                                                                      649 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Start-ops requested, "
                                                                                                                                                                                      +
                                                                                                                                                                                      650 "but we are already started. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      651 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      652 }
                                                                                                                                                                                      +
                                                                                                                                                                                      653 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      654
                                                                                                                                                                                      +
                                                                                                                                                                                      655 m_ev_wait_func = std::move(ev_wait_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      656
                                                                                                                                                                                      +
                                                                                                                                                                                      657 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Start-ops requested. Done.");
                                                                                                                                                                                      +
                                                                                                                                                                                      658 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      659}
                                                                                                                                                                                      +
                                                                                                                                                                                      660
                                                                                                                                                                                      +
                                                                                                                                                                                      661template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      663{
                                                                                                                                                                                      +
                                                                                                                                                                                      664 if (m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      665 {
                                                                                                                                                                                      +
                                                                                                                                                                                      666 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      667 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      +
                                                                                                                                                                                      668 "but we are not. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      669 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      670 }
                                                                                                                                                                                      +
                                                                                                                                                                                      671 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      672 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      673}
                                                                                                                                                                                      +
                                                                                                                                                                                      674
                                                                                                                                                                                      +
                                                                                                                                                                                      675template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      676template<typename Task_err_sz>
                                                                                                                                                                                      + +
                                                                                                                                                                                      678 (const util::Blob_mutable& target_blob, Error_code* sync_err_code_ptr, size_t* sync_sz,
                                                                                                                                                                                      +
                                                                                                                                                                                      679 Task_err_sz&& on_done_func)
                                                                                                                                                                                      +
                                                                                                                                                                                      680{
                                                                                                                                                                                      +
                                                                                                                                                                                      681 using util::Blob_mutable;
                                                                                                                                                                                      +
                                                                                                                                                                                      682
                                                                                                                                                                                      +
                                                                                                                                                                                      683 if (!op_started("async_receive_blob()"))
                                                                                                                                                                                      +
                                                                                                                                                                                      684 {
                                                                                                                                                                                      +
                                                                                                                                                                                      685 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      686 }
                                                                                                                                                                                      +
                                                                                                                                                                                      687 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      688
                                                                                                                                                                                      +
                                                                                                                                                                                      689 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      690 *
                                                                                                                                                                                      -
                                                                                                                                                                                      691 * ...Well, no, there's one more complicating matter -- though it's nowhere near as hairy as what rcv-side of
                                                                                                                                                                                      -
                                                                                                                                                                                      692 * Native_socket_stream::Impl has to deal with: Sure, there is no queuing of requests, but the outgoing-direction
                                                                                                                                                                                      -
                                                                                                                                                                                      693 * algorithm makes the low-level payloads and then just sends them out -- what's inside doesn't matter (almost).
                                                                                                                                                                                      -
                                                                                                                                                                                      694 * Incoming-direction is harder, because we need to read payload 1, interpret it, possibly read payload 2.
                                                                                                                                                                                      -
                                                                                                                                                                                      695 * So there is a bit of tactical nonsense about async-waiting and then resuming from the same spot and so on.
                                                                                                                                                                                      -
                                                                                                                                                                                      696 * However, unlike with Native_socket_stream::Impl our message boundaries are always preserved, so it is a ton
                                                                                                                                                                                      -
                                                                                                                                                                                      697 * simpler. Basically it's just a matter of keeping track of the flag m_control_state and acting differently
                                                                                                                                                                                      -
                                                                                                                                                                                      698 * depending on whether it's true or not (when analyzing an incoming low-level payload). */
                                                                                                                                                                                      -
                                                                                                                                                                                      699
                                                                                                                                                                                      -
                                                                                                                                                                                      700 if (m_user_request)
                                                                                                                                                                                      -
                                                                                                                                                                                      701 {
                                                                                                                                                                                      -
                                                                                                                                                                                      702 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Async-receive requested, but the preceding such "
                                                                                                                                                                                      -
                                                                                                                                                                                      703 "request is still in progress; the message has not arrived yet (we are awaiting "
                                                                                                                                                                                      -
                                                                                                                                                                                      704 "readability, before we can get the rest of it). Likely a user error, but who are "
                                                                                                                                                                                      -
                                                                                                                                                                                      705 "we to judge? Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      706 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      707 }
                                                                                                                                                                                      -
                                                                                                                                                                                      708 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      691 * Briefly though: If you understand opposing send_blob() impl, then this will be easy in comparison:
                                                                                                                                                                                      +
                                                                                                                                                                                      692 * no more than one async_receive_blob() can be outstanding at a time; they are not allowed to
                                                                                                                                                                                      +
                                                                                                                                                                                      693 * invoke it until we invoke their completion handler. (Rationale is shown in detail elsewhere.)
                                                                                                                                                                                      +
                                                                                                                                                                                      694 * So there is no queuing of requests (deficit); nor reading more messages beyond what has been requested
                                                                                                                                                                                      +
                                                                                                                                                                                      695 * (surplus).
                                                                                                                                                                                      +
                                                                                                                                                                                      696 *
                                                                                                                                                                                      +
                                                                                                                                                                                      697 * That said, we must inform them of completion via on_done_func(), whereas send_blob() has no
                                                                                                                                                                                      +
                                                                                                                                                                                      698 * such requirement; easy enough -- we just save it as needed. In that sense it is much like
                                                                                                                                                                                      +
                                                                                                                                                                                      699 * opposing async_end_sending().
                                                                                                                                                                                      +
                                                                                                                                                                                      700 *
                                                                                                                                                                                      +
                                                                                                                                                                                      701 * ...Well, no, there's one more complicating matter -- though it's nowhere near as hairy as what rcv-side of
                                                                                                                                                                                      +
                                                                                                                                                                                      702 * Native_socket_stream::Impl has to deal with: Sure, there is no queuing of requests, but the outgoing-direction
                                                                                                                                                                                      +
                                                                                                                                                                                      703 * algorithm makes the low-level payloads and then just sends them out -- what's inside doesn't matter (almost).
                                                                                                                                                                                      +
                                                                                                                                                                                      704 * Incoming-direction is harder, because we need to read payload 1, interpret it, possibly read payload 2.
                                                                                                                                                                                      +
                                                                                                                                                                                      705 * So there is a bit of tactical nonsense about async-waiting and then resuming from the same spot and so on.
                                                                                                                                                                                      +
                                                                                                                                                                                      706 * However, unlike with Native_socket_stream::Impl our message boundaries are always preserved, so it is a ton
                                                                                                                                                                                      +
                                                                                                                                                                                      707 * simpler. Basically it's just a matter of keeping track of the flag m_control_state and acting differently
                                                                                                                                                                                      +
                                                                                                                                                                                      708 * depending on whether it's true or not (when analyzing an incoming low-level payload). */
                                                                                                                                                                                      709
                                                                                                                                                                                      -
                                                                                                                                                                                      710 Error_code sync_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      711
                                                                                                                                                                                      -
                                                                                                                                                                                      712 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      -
                                                                                                                                                                                      713 "blob (located @ [" << target_blob.data() << "] of max size [" << target_blob.size() << "]).");
                                                                                                                                                                                      -
                                                                                                                                                                                      714
                                                                                                                                                                                      -
                                                                                                                                                                                      715 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      716 {
                                                                                                                                                                                      -
                                                                                                                                                                                      717 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      -
                                                                                                                                                                                      718 "blob (located @ [" << target_blob.data() << "] of "
                                                                                                                                                                                      -
                                                                                                                                                                                      719 "max size [" << target_blob.size() << "]): Error already encountered earlier. Emitting "
                                                                                                                                                                                      -
                                                                                                                                                                                      720 "via sync-args.");
                                                                                                                                                                                      +
                                                                                                                                                                                      710 if (m_user_request)
                                                                                                                                                                                      +
                                                                                                                                                                                      711 {
                                                                                                                                                                                      +
                                                                                                                                                                                      712 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Async-receive requested, but the preceding such "
                                                                                                                                                                                      +
                                                                                                                                                                                      713 "request is still in progress; the message has not arrived yet (we are awaiting "
                                                                                                                                                                                      +
                                                                                                                                                                                      714 "readability, before we can get the rest of it). Likely a user error, but who are "
                                                                                                                                                                                      +
                                                                                                                                                                                      715 "we to judge? Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      716 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      717 }
                                                                                                                                                                                      +
                                                                                                                                                                                      718 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      719
                                                                                                                                                                                      +
                                                                                                                                                                                      720 Error_code sync_err_code;
                                                                                                                                                                                      721
                                                                                                                                                                                      -
                                                                                                                                                                                      722 sync_err_code = m_pending_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      723 *sync_sz = 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      724 }
                                                                                                                                                                                      -
                                                                                                                                                                                      725 else // if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      722 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      +
                                                                                                                                                                                      723 "blob (located @ [" << target_blob.data() << "] of max size [" << target_blob.size() << "]).");
                                                                                                                                                                                      +
                                                                                                                                                                                      724
                                                                                                                                                                                      +
                                                                                                                                                                                      725 if (m_pending_err_code)
                                                                                                                                                                                      726 {
                                                                                                                                                                                      -
                                                                                                                                                                                      727 // This next check: background can be found by following the comment on this concept constant.
                                                                                                                                                                                      - -
                                                                                                                                                                                      729 "MQs disallow even trying to receive into a buffer that could underflow "
                                                                                                                                                                                      -
                                                                                                                                                                                      730 "with the largest *possible* message -- even if the actual message "
                                                                                                                                                                                      -
                                                                                                                                                                                      731 "happens to be small enough to fit.");
                                                                                                                                                                                      -
                                                                                                                                                                                      732 if (target_blob.size() < receive_blob_max_size())
                                                                                                                                                                                      -
                                                                                                                                                                                      733 {
                                                                                                                                                                                      -
                                                                                                                                                                                      734 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      -
                                                                                                                                                                                      735 "blob (located @ [" << target_blob.data() << "] of "
                                                                                                                                                                                      -
                                                                                                                                                                                      736 "max size [" << target_blob.size() << "]): "
                                                                                                                                                                                      -
                                                                                                                                                                                      737 "that size underflows MQ size limit [" << receive_blob_max_size() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      738 "Emitting error immediately; but pipe continues. Note that if we don't do this, "
                                                                                                                                                                                      -
                                                                                                                                                                                      739 "then the low-level MQ will behave this way anyway.");
                                                                                                                                                                                      -
                                                                                                                                                                                      740 // As mandated by concept *do not* hose pipe by setting m_pending_err_code given INVALID_ARGUMENT. Just emit.
                                                                                                                                                                                      -
                                                                                                                                                                                      741
                                                                                                                                                                                      -
                                                                                                                                                                                      742 sync_err_code = error::Code::S_INVALID_ARGUMENT;
                                                                                                                                                                                      -
                                                                                                                                                                                      743 *sync_sz = 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      744 }
                                                                                                                                                                                      -
                                                                                                                                                                                      745 else
                                                                                                                                                                                      -
                                                                                                                                                                                      746 {
                                                                                                                                                                                      -
                                                                                                                                                                                      747 m_user_request.emplace();
                                                                                                                                                                                      -
                                                                                                                                                                                      748 m_user_request->m_target_blob = target_blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      749 m_user_request->m_on_done_func = std::move(on_done_func);
                                                                                                                                                                                      -
                                                                                                                                                                                      750
                                                                                                                                                                                      -
                                                                                                                                                                                      751 read_msg(&sync_err_code, sync_sz);
                                                                                                                                                                                      -
                                                                                                                                                                                      752 } // else if (target_blob.size() is fine)
                                                                                                                                                                                      -
                                                                                                                                                                                      753 } // else if (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      754
                                                                                                                                                                                      -
                                                                                                                                                                                      755 if ((!sync_err_code) || (sync_err_code != error::Code::S_SYNC_IO_WOULD_BLOCK))
                                                                                                                                                                                      -
                                                                                                                                                                                      756 {
                                                                                                                                                                                      -
                                                                                                                                                                                      757 FLOW_LOG_TRACE("Async-request completed synchronously (result "
                                                                                                                                                                                      -
                                                                                                                                                                                      758 "[" << sync_err_code << "] [" << sync_err_code.message() << "]); emitting synchronously and "
                                                                                                                                                                                      -
                                                                                                                                                                                      759 "disregarding handler.");
                                                                                                                                                                                      -
                                                                                                                                                                                      760 m_user_request.reset(); // No-op if we didn't set it up due to early error being detected above.
                                                                                                                                                                                      -
                                                                                                                                                                                      761 }
                                                                                                                                                                                      -
                                                                                                                                                                                      762 // else { Other stuff logged enough. }
                                                                                                                                                                                      -
                                                                                                                                                                                      763
                                                                                                                                                                                      -
                                                                                                                                                                                      764 // Standard error-reporting semantics.
                                                                                                                                                                                      -
                                                                                                                                                                                      765 if ((!sync_err_code_ptr) && sync_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      727 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      +
                                                                                                                                                                                      728 "blob (located @ [" << target_blob.data() << "] of "
                                                                                                                                                                                      +
                                                                                                                                                                                      729 "max size [" << target_blob.size() << "]): Error already encountered earlier. Emitting "
                                                                                                                                                                                      +
                                                                                                                                                                                      730 "via sync-args.");
                                                                                                                                                                                      +
                                                                                                                                                                                      731
                                                                                                                                                                                      +
                                                                                                                                                                                      732 sync_err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      733 *sync_sz = 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      734 }
                                                                                                                                                                                      +
                                                                                                                                                                                      735 else // if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      736 {
                                                                                                                                                                                      +
                                                                                                                                                                                      737 // This next check: background can be found by following the comment on this concept constant.
                                                                                                                                                                                      + +
                                                                                                                                                                                      739 "MQs disallow even trying to receive into a buffer that could underflow "
                                                                                                                                                                                      +
                                                                                                                                                                                      740 "with the largest *possible* message -- even if the actual message "
                                                                                                                                                                                      +
                                                                                                                                                                                      741 "happens to be small enough to fit.");
                                                                                                                                                                                      +
                                                                                                                                                                                      742 if (target_blob.size() < receive_blob_max_size())
                                                                                                                                                                                      +
                                                                                                                                                                                      743 {
                                                                                                                                                                                      +
                                                                                                                                                                                      744 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User async-receive request for "
                                                                                                                                                                                      +
                                                                                                                                                                                      745 "blob (located @ [" << target_blob.data() << "] of "
                                                                                                                                                                                      +
                                                                                                                                                                                      746 "max size [" << target_blob.size() << "]): "
                                                                                                                                                                                      +
                                                                                                                                                                                      747 "that size underflows MQ size limit [" << receive_blob_max_size() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      748 "Emitting error immediately; but pipe continues. Note that if we don't do this, "
                                                                                                                                                                                      +
                                                                                                                                                                                      749 "then the low-level MQ will behave this way anyway.");
                                                                                                                                                                                      +
                                                                                                                                                                                      750 // As mandated by concept *do not* hose pipe by setting m_pending_err_code given INVALID_ARGUMENT. Just emit.
                                                                                                                                                                                      +
                                                                                                                                                                                      751
                                                                                                                                                                                      +
                                                                                                                                                                                      752 sync_err_code = error::Code::S_INVALID_ARGUMENT;
                                                                                                                                                                                      +
                                                                                                                                                                                      753 *sync_sz = 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      754 }
                                                                                                                                                                                      +
                                                                                                                                                                                      755 else
                                                                                                                                                                                      +
                                                                                                                                                                                      756 {
                                                                                                                                                                                      +
                                                                                                                                                                                      757 m_user_request.emplace();
                                                                                                                                                                                      +
                                                                                                                                                                                      758 m_user_request->m_target_blob = target_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      759 m_user_request->m_on_done_func = std::move(on_done_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      760
                                                                                                                                                                                      +
                                                                                                                                                                                      761 read_msg(&sync_err_code, sync_sz);
                                                                                                                                                                                      +
                                                                                                                                                                                      762 } // else if (target_blob.size() is fine)
                                                                                                                                                                                      +
                                                                                                                                                                                      763 } // else if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      764
                                                                                                                                                                                      +
                                                                                                                                                                                      765 if ((!sync_err_code) || (sync_err_code != error::Code::S_SYNC_IO_WOULD_BLOCK))
                                                                                                                                                                                      766 {
                                                                                                                                                                                      -
                                                                                                                                                                                      767 throw flow::error::Runtime_error(sync_err_code, "Blob_stream_mq_receiver_impl::async_receive_blob()");
                                                                                                                                                                                      -
                                                                                                                                                                                      768 }
                                                                                                                                                                                      -
                                                                                                                                                                                      769 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      770 sync_err_code_ptr && (*sync_err_code_ptr = sync_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      771 // And if (!sync_err_code_ptr) + no error => no throw.
                                                                                                                                                                                      -
                                                                                                                                                                                      772
                                                                                                                                                                                      -
                                                                                                                                                                                      773 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      774} // Blob_stream_mq_receiver_impl::async_receive_blob()
                                                                                                                                                                                      -
                                                                                                                                                                                      775
                                                                                                                                                                                      -
                                                                                                                                                                                      776template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      778{
                                                                                                                                                                                      - -
                                                                                                                                                                                      780 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      781 using boost::chrono::round;
                                                                                                                                                                                      -
                                                                                                                                                                                      782 using boost::chrono::milliseconds;
                                                                                                                                                                                      -
                                                                                                                                                                                      783
                                                                                                                                                                                      -
                                                                                                                                                                                      784 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      767 FLOW_LOG_TRACE("Async-request completed synchronously (result "
                                                                                                                                                                                      +
                                                                                                                                                                                      768 "[" << sync_err_code << "] [" << sync_err_code.message() << "]); emitting synchronously and "
                                                                                                                                                                                      +
                                                                                                                                                                                      769 "disregarding handler.");
                                                                                                                                                                                      +
                                                                                                                                                                                      770 m_user_request.reset(); // No-op if we didn't set it up due to early error being detected above.
                                                                                                                                                                                      +
                                                                                                                                                                                      771 }
                                                                                                                                                                                      +
                                                                                                                                                                                      772 // else { Other stuff logged enough. }
                                                                                                                                                                                      +
                                                                                                                                                                                      773
                                                                                                                                                                                      +
                                                                                                                                                                                      774 // Standard error-reporting semantics.
                                                                                                                                                                                      +
                                                                                                                                                                                      775 if ((!sync_err_code_ptr) && sync_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      776 {
                                                                                                                                                                                      +
                                                                                                                                                                                      777 throw flow::error::Runtime_error(sync_err_code, "Blob_stream_mq_receiver_impl::async_receive_blob()");
                                                                                                                                                                                      +
                                                                                                                                                                                      778 }
                                                                                                                                                                                      +
                                                                                                                                                                                      779 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      780 sync_err_code_ptr && (*sync_err_code_ptr = sync_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      781 // And if (!sync_err_code_ptr) + no error => no throw.
                                                                                                                                                                                      +
                                                                                                                                                                                      782
                                                                                                                                                                                      +
                                                                                                                                                                                      783 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      784} // Blob_stream_mq_receiver_impl::async_receive_blob()
                                                                                                                                                                                      785
                                                                                                                                                                                      -
                                                                                                                                                                                      786 assert(timeout.count() > 0);
                                                                                                                                                                                      -
                                                                                                                                                                                      787
                                                                                                                                                                                      -
                                                                                                                                                                                      788 if (!op_started("idle_timer_run()"))
                                                                                                                                                                                      -
                                                                                                                                                                                      789 {
                                                                                                                                                                                      -
                                                                                                                                                                                      790 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      791 }
                                                                                                                                                                                      -
                                                                                                                                                                                      792 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      786template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      788{
                                                                                                                                                                                      + +
                                                                                                                                                                                      790 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      791 using boost::chrono::round;
                                                                                                                                                                                      +
                                                                                                                                                                                      792 using boost::chrono::milliseconds;
                                                                                                                                                                                      793
                                                                                                                                                                                      -
                                                                                                                                                                                      794 // According to concept requirements we shall no-op/return false if duplicately called.
                                                                                                                                                                                      -
                                                                                                                                                                                      795 if (m_idle_timeout != Fine_duration::zero())
                                                                                                                                                                                      -
                                                                                                                                                                                      796 {
                                                                                                                                                                                      -
                                                                                                                                                                                      797 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle timer, but they have "
                                                                                                                                                                                      -
                                                                                                                                                                                      798 "already started it before. Therefore ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      799 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      800 }
                                                                                                                                                                                      -
                                                                                                                                                                                      801 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      802
                                                                                                                                                                                      -
                                                                                                                                                                                      803 m_idle_timeout = timeout; // Remember this, both as flag (non-zero()) and to know to when to schedule it.
                                                                                                                                                                                      -
                                                                                                                                                                                      804 // Now we will definitely return true (even if an error is already pending). This matches concept requirements.
                                                                                                                                                                                      -
                                                                                                                                                                                      805
                                                                                                                                                                                      -
                                                                                                                                                                                      806 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      807 {
                                                                                                                                                                                      -
                                                                                                                                                                                      808 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle timer, but an error has "
                                                                                                                                                                                      -
                                                                                                                                                                                      809 "already been found and emitted earlier. It's moot; ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      810 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      811 }
                                                                                                                                                                                      -
                                                                                                                                                                                      812 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      813
                                                                                                                                                                                      -
                                                                                                                                                                                      814 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle-timer with timeout "
                                                                                                                                                                                      -
                                                                                                                                                                                      815 "[" << round<milliseconds>(m_idle_timeout) << "]. Scheduling (will be rescheduled as needed).");
                                                                                                                                                                                      -
                                                                                                                                                                                      816
                                                                                                                                                                                      -
                                                                                                                                                                                      817 /* Per requirements in concept, start it now; reschedule similarly each time there is activity.
                                                                                                                                                                                      -
                                                                                                                                                                                      818 *
                                                                                                                                                                                      -
                                                                                                                                                                                      819 * The mechanics of timer-scheduling are identical to those in opposing auto_ping() and are explained there;
                                                                                                                                                                                      -
                                                                                                                                                                                      820 * keeping comments light here. */
                                                                                                                                                                                      -
                                                                                                                                                                                      821
                                                                                                                                                                                      -
                                                                                                                                                                                      822 m_ev_wait_func(&m_ev_wait_hndl_idle_timer_fired_peer,
                                                                                                                                                                                      -
                                                                                                                                                                                      823 false, // Wait for read.
                                                                                                                                                                                      -
                                                                                                                                                                                      824 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      825 ([this]() { on_ev_idle_timer_fired(); }));
                                                                                                                                                                                      +
                                                                                                                                                                                      794 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      795
                                                                                                                                                                                      +
                                                                                                                                                                                      796 assert(timeout.count() > 0);
                                                                                                                                                                                      +
                                                                                                                                                                                      797
                                                                                                                                                                                      +
                                                                                                                                                                                      798 if (!op_started("idle_timer_run()"))
                                                                                                                                                                                      +
                                                                                                                                                                                      799 {
                                                                                                                                                                                      +
                                                                                                                                                                                      800 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      801 }
                                                                                                                                                                                      +
                                                                                                                                                                                      802 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      803
                                                                                                                                                                                      +
                                                                                                                                                                                      804 // According to concept requirements we shall no-op/return false if duplicately called.
                                                                                                                                                                                      +
                                                                                                                                                                                      805 if (m_idle_timeout != Fine_duration::zero())
                                                                                                                                                                                      +
                                                                                                                                                                                      806 {
                                                                                                                                                                                      +
                                                                                                                                                                                      807 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle timer, but they have "
                                                                                                                                                                                      +
                                                                                                                                                                                      808 "already started it before. Therefore ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      809 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      810 }
                                                                                                                                                                                      +
                                                                                                                                                                                      811 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      812
                                                                                                                                                                                      +
                                                                                                                                                                                      813 m_idle_timeout = timeout; // Remember this, both as flag (non-zero()) and to know to when to schedule it.
                                                                                                                                                                                      +
                                                                                                                                                                                      814 // Now we will definitely return true (even if an error is already pending). This matches concept requirements.
                                                                                                                                                                                      +
                                                                                                                                                                                      815
                                                                                                                                                                                      +
                                                                                                                                                                                      816 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      817 {
                                                                                                                                                                                      +
                                                                                                                                                                                      818 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle timer, but an error has "
                                                                                                                                                                                      +
                                                                                                                                                                                      819 "already been found and emitted earlier. It's moot; ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      820 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      821 }
                                                                                                                                                                                      +
                                                                                                                                                                                      822 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      823
                                                                                                                                                                                      +
                                                                                                                                                                                      824 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: User wants to start idle-timer with timeout "
                                                                                                                                                                                      +
                                                                                                                                                                                      825 "[" << round<milliseconds>(m_idle_timeout) << "]. Scheduling (will be rescheduled as needed).");
                                                                                                                                                                                      826
                                                                                                                                                                                      -
                                                                                                                                                                                      827 m_idle_timer.expires_after(m_idle_timeout);
                                                                                                                                                                                      -
                                                                                                                                                                                      828 m_timer_worker.timer_async_wait(&m_idle_timer, m_idle_timer_fired_peer);
                                                                                                                                                                                      -
                                                                                                                                                                                      829
                                                                                                                                                                                      -
                                                                                                                                                                                      830 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      831} // Blob_stream_mq_receiver_impl::idle_timer_run()
                                                                                                                                                                                      -
                                                                                                                                                                                      832
                                                                                                                                                                                      -
                                                                                                                                                                                      833template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      835{
                                                                                                                                                                                      -
                                                                                                                                                                                      836 /* This is an event handler! Specifically for the *m_idle_timer_fired_peer pipe reader being
                                                                                                                                                                                      -
                                                                                                                                                                                      837 * readable. To avoid infinite-loopiness, we'd best pop the thing that was written there. */
                                                                                                                                                                                      -
                                                                                                                                                                                      838 m_timer_worker.consume_timer_firing_signal(m_idle_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      827 /* Per requirements in concept, start it now; reschedule similarly each time there is activity.
                                                                                                                                                                                      +
                                                                                                                                                                                      828 *
                                                                                                                                                                                      +
                                                                                                                                                                                      829 * The mechanics of timer-scheduling are identical to those in opposing auto_ping() and are explained there;
                                                                                                                                                                                      +
                                                                                                                                                                                      830 * keeping comments light here. */
                                                                                                                                                                                      +
                                                                                                                                                                                      831
                                                                                                                                                                                      +
                                                                                                                                                                                      832 m_ev_wait_func(&m_ev_wait_hndl_idle_timer_fired_peer,
                                                                                                                                                                                      +
                                                                                                                                                                                      833 false, // Wait for read.
                                                                                                                                                                                      +
                                                                                                                                                                                      834 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      835 ([this]() { on_ev_idle_timer_fired(); }));
                                                                                                                                                                                      +
                                                                                                                                                                                      836
                                                                                                                                                                                      +
                                                                                                                                                                                      837 m_idle_timer.expires_after(m_idle_timeout);
                                                                                                                                                                                      +
                                                                                                                                                                                      838 m_timer_worker.timer_async_wait(&m_idle_timer, m_idle_timer_fired_peer);
                                                                                                                                                                                      839
                                                                                                                                                                                      -
                                                                                                                                                                                      840 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      841 {
                                                                                                                                                                                      -
                                                                                                                                                                                      842 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Idle timer fired: There's been 0 traffic past idle "
                                                                                                                                                                                      -
                                                                                                                                                                                      843 "timeout. However an error has already been found and emitted earlier. Therefore ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      844 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      845 }
                                                                                                                                                                                      -
                                                                                                                                                                                      846 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      847
                                                                                                                                                                                      -
                                                                                                                                                                                      848 m_pending_err_code = error::Code::S_RECEIVER_IDLE_TIMEOUT;
                                                                                                                                                                                      +
                                                                                                                                                                                      840 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      841} // Blob_stream_mq_receiver_impl::idle_timer_run()
                                                                                                                                                                                      +
                                                                                                                                                                                      842
                                                                                                                                                                                      +
                                                                                                                                                                                      843template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      845{
                                                                                                                                                                                      +
                                                                                                                                                                                      846 /* This is an event handler! Specifically for the *m_idle_timer_fired_peer pipe reader being
                                                                                                                                                                                      +
                                                                                                                                                                                      847 * readable. To avoid infinite-loopiness, we'd best pop the thing that was written there. */
                                                                                                                                                                                      +
                                                                                                                                                                                      848 m_timer_worker.consume_timer_firing_signal(m_idle_timer_fired_peer);
                                                                                                                                                                                      849
                                                                                                                                                                                      -
                                                                                                                                                                                      850 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Idle timer fired: There's been 0 traffic past idle "
                                                                                                                                                                                      -
                                                                                                                                                                                      851 "timeout. Will not proceed with any further low-level receiving. If a user async-receive request "
                                                                                                                                                                                      -
                                                                                                                                                                                      852 "is pending (is it? = [" << bool(m_user_request) << "]) will emit to completion handler.");
                                                                                                                                                                                      -
                                                                                                                                                                                      853
                                                                                                                                                                                      -
                                                                                                                                                                                      854 if (m_user_request)
                                                                                                                                                                                      -
                                                                                                                                                                                      855 {
                                                                                                                                                                                      -
                                                                                                                                                                                      856 // Prevent stepping on our own toes: move/clear it first / invoke handler second.
                                                                                                                                                                                      -
                                                                                                                                                                                      857 const auto on_done_func = std::move(m_user_request->m_on_done_func);
                                                                                                                                                                                      -
                                                                                                                                                                                      858 m_user_request.reset();
                                                                                                                                                                                      -
                                                                                                                                                                                      859 on_done_func(m_pending_err_code, 0);
                                                                                                                                                                                      -
                                                                                                                                                                                      860 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Handler completed.");
                                                                                                                                                                                      -
                                                                                                                                                                                      861 }
                                                                                                                                                                                      -
                                                                                                                                                                                      862
                                                                                                                                                                                      -
                                                                                                                                                                                      863 /* That's it. If m_user_request (we've just nullified it) then async read chain will be finished forever as
                                                                                                                                                                                      -
                                                                                                                                                                                      864 * soon as the user informs us of readability (if it ever does) -- we will detect there's an error
                                                                                                                                                                                      -
                                                                                                                                                                                      865 * in m_pending_err_code already (and hence no m_user_request). */
                                                                                                                                                                                      -
                                                                                                                                                                                      866} // Blob_stream_mq_receiver_impl::on_ev_idle_timer_fired()
                                                                                                                                                                                      -
                                                                                                                                                                                      867
                                                                                                                                                                                      -
                                                                                                                                                                                      868template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      870{
                                                                                                                                                                                      - +
                                                                                                                                                                                      850 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      851 {
                                                                                                                                                                                      +
                                                                                                                                                                                      852 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Idle timer fired: There's been 0 traffic past idle "
                                                                                                                                                                                      +
                                                                                                                                                                                      853 "timeout. However an error has already been found and emitted earlier. Therefore ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      854 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      855 }
                                                                                                                                                                                      +
                                                                                                                                                                                      856 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      857
                                                                                                                                                                                      +
                                                                                                                                                                                      858 m_pending_err_code = error::Code::S_RECEIVER_IDLE_TIMEOUT;
                                                                                                                                                                                      +
                                                                                                                                                                                      859
                                                                                                                                                                                      +
                                                                                                                                                                                      860 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Idle timer fired: There's been 0 traffic past idle "
                                                                                                                                                                                      +
                                                                                                                                                                                      861 "timeout. Will not proceed with any further low-level receiving. If a user async-receive request "
                                                                                                                                                                                      +
                                                                                                                                                                                      862 "is pending (is it? = [" << bool(m_user_request) << "]) will emit to completion handler.");
                                                                                                                                                                                      +
                                                                                                                                                                                      863
                                                                                                                                                                                      +
                                                                                                                                                                                      864 if (m_user_request)
                                                                                                                                                                                      +
                                                                                                                                                                                      865 {
                                                                                                                                                                                      +
                                                                                                                                                                                      866 // Prevent stepping on our own toes: move/clear it first / invoke handler second.
                                                                                                                                                                                      +
                                                                                                                                                                                      867 const auto on_done_func = std::move(m_user_request->m_on_done_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      868 m_user_request.reset();
                                                                                                                                                                                      +
                                                                                                                                                                                      869 on_done_func(m_pending_err_code, 0);
                                                                                                                                                                                      +
                                                                                                                                                                                      870 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Handler completed.");
                                                                                                                                                                                      +
                                                                                                                                                                                      871 }
                                                                                                                                                                                      872
                                                                                                                                                                                      -
                                                                                                                                                                                      873 if (m_idle_timeout == Fine_duration::zero())
                                                                                                                                                                                      -
                                                                                                                                                                                      874 {
                                                                                                                                                                                      -
                                                                                                                                                                                      875 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      876 }
                                                                                                                                                                                      -
                                                                                                                                                                                      877 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      878
                                                                                                                                                                                      -
                                                                                                                                                                                      879 /* idle_timer_run() has enabled the idle timer feature, and we've been called indicating we just read something,
                                                                                                                                                                                      -
                                                                                                                                                                                      880 * and therefore it is time to reschedule the idle timer. */
                                                                                                                                                                                      -
                                                                                                                                                                                      881
                                                                                                                                                                                      -
                                                                                                                                                                                      882 const auto n_canceled = m_idle_timer.expires_after(m_idle_timeout);
                                                                                                                                                                                      -
                                                                                                                                                                                      883
                                                                                                                                                                                      -
                                                                                                                                                                                      884 if (n_canceled == 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      885 {
                                                                                                                                                                                      -
                                                                                                                                                                                      886 // This is a fun, rare coincidence that is worth an INFO message.
                                                                                                                                                                                      -
                                                                                                                                                                                      887 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Finished reading a message, which means "
                                                                                                                                                                                      -
                                                                                                                                                                                      888 "we just received traffic, which means the idle timer should be rescheduled. However "
                                                                                                                                                                                      -
                                                                                                                                                                                      889 "when trying to reschedule it, we found we were too late: it was very recently queued to "
                                                                                                                                                                                      -
                                                                                                                                                                                      890 "be invoked in the near future. An idle timeout error shall be emitted very soon.");
                                                                                                                                                                                      -
                                                                                                                                                                                      891 }
                                                                                                                                                                                      -
                                                                                                                                                                                      892 else // if (n_canceled >= 1)
                                                                                                                                                                                      -
                                                                                                                                                                                      893 {
                                                                                                                                                                                      -
                                                                                                                                                                                      894 assert((n_canceled == 1) && "We only issue 1 timer async_wait() at a time.");
                                                                                                                                                                                      -
                                                                                                                                                                                      895
                                                                                                                                                                                      -
                                                                                                                                                                                      896 /* m_timer_worker will m_idle_timer.async_wait(F), where F() will signal through pipe,
                                                                                                                                                                                      -
                                                                                                                                                                                      897 * making *m_idle_timer_fired_peer readable. We've already used m_ev_wait_func() to start
                                                                                                                                                                                      -
                                                                                                                                                                                      898 * wait on it being readable and invoke on_ev_idle_timer_fired() in that case; but we've
                                                                                                                                                                                      -
                                                                                                                                                                                      899 * canceled the previous .async_wait() that would make it readable; so just redo that part. */
                                                                                                                                                                                      -
                                                                                                                                                                                      900 m_timer_worker.timer_async_wait(&m_idle_timer, m_idle_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      873 /* That's it. If m_user_request (we've just nullified it) then async read chain will be finished forever as
                                                                                                                                                                                      +
                                                                                                                                                                                      874 * soon as the user informs us of readability (if it ever does) -- we will detect there's an error
                                                                                                                                                                                      +
                                                                                                                                                                                      875 * in m_pending_err_code already (and hence no m_user_request). */
                                                                                                                                                                                      +
                                                                                                                                                                                      876} // Blob_stream_mq_receiver_impl::on_ev_idle_timer_fired()
                                                                                                                                                                                      +
                                                                                                                                                                                      877
                                                                                                                                                                                      +
                                                                                                                                                                                      878template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      880{
                                                                                                                                                                                      + +
                                                                                                                                                                                      882
                                                                                                                                                                                      +
                                                                                                                                                                                      883 if (m_idle_timeout == Fine_duration::zero())
                                                                                                                                                                                      +
                                                                                                                                                                                      884 {
                                                                                                                                                                                      +
                                                                                                                                                                                      885 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      886 }
                                                                                                                                                                                      +
                                                                                                                                                                                      887 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      888
                                                                                                                                                                                      +
                                                                                                                                                                                      889 /* idle_timer_run() has enabled the idle timer feature, and we've been called indicating we just read something,
                                                                                                                                                                                      +
                                                                                                                                                                                      890 * and therefore it is time to reschedule the idle timer. */
                                                                                                                                                                                      +
                                                                                                                                                                                      891
                                                                                                                                                                                      +
                                                                                                                                                                                      892 const auto n_canceled = m_idle_timer.expires_after(m_idle_timeout);
                                                                                                                                                                                      +
                                                                                                                                                                                      893
                                                                                                                                                                                      +
                                                                                                                                                                                      894 if (n_canceled == 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      895 {
                                                                                                                                                                                      +
                                                                                                                                                                                      896 // This is a fun, rare coincidence that is worth an INFO message.
                                                                                                                                                                                      +
                                                                                                                                                                                      897 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Finished reading a message, which means "
                                                                                                                                                                                      +
                                                                                                                                                                                      898 "we just received traffic, which means the idle timer should be rescheduled. However "
                                                                                                                                                                                      +
                                                                                                                                                                                      899 "when trying to reschedule it, we found we were too late: it was very recently queued to "
                                                                                                                                                                                      +
                                                                                                                                                                                      900 "be invoked in the near future. An idle timeout error shall be emitted very soon.");
                                                                                                                                                                                      901 }
                                                                                                                                                                                      -
                                                                                                                                                                                      902} // Blob_stream_mq_receiver_impl::not_idle()
                                                                                                                                                                                      -
                                                                                                                                                                                      903
                                                                                                                                                                                      -
                                                                                                                                                                                      904template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      906{
                                                                                                                                                                                      -
                                                                                                                                                                                      907 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      908 using util::Blob_mutable;
                                                                                                                                                                                      -
                                                                                                                                                                                      909 using flow::util::Lock_guard;
                                                                                                                                                                                      -
                                                                                                                                                                                      910 using raw_ctl_cmd_enum_t = std::underlying_type_t<Control_cmd>;
                                                                                                                                                                                      -
                                                                                                                                                                                      911
                                                                                                                                                                                      -
                                                                                                                                                                                      912 assert(!m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      913 assert(m_user_request);
                                                                                                                                                                                      -
                                                                                                                                                                                      914
                                                                                                                                                                                      -
                                                                                                                                                                                      915 /* We just entered possibly-not-would-block state of m_mq; and are about to nb-read message (which might would-block
                                                                                                                                                                                      -
                                                                                                                                                                                      916 * and other possibilities). Pre-condition is m_user_request is truthy -- has not been satisfied. Lastly
                                                                                                                                                                                      -
                                                                                                                                                                                      917 * m_control_state may be true or false depending on the last payload (if any).
                                                                                                                                                                                      -
                                                                                                                                                                                      918 *
                                                                                                                                                                                      -
                                                                                                                                                                                      919 * -# MQ error or protocol error (invalid ctl msg) or graceful-close ctl msg => m_pending_err_code becomes true;
                                                                                                                                                                                      -
                                                                                                                                                                                      920 * emit to m_user_request; GTFO.
                                                                                                                                                                                      -
                                                                                                                                                                                      921 * -# Would-block => async-wait for readability, when ready read_msg() (us) again (unless
                                                                                                                                                                                      -
                                                                                                                                                                                      922 * idle-timeout in the meantime, so be sure to not read_msg() in that case). GTFO here
                                                                                                                                                                                      -
                                                                                                                                                                                      923 * (algorithm continues asynchronously).
                                                                                                                                                                                      -
                                                                                                                                                                                      924 * -# Valid msg:
                                                                                                                                                                                      -
                                                                                                                                                                                      925 * -# If m_control_state already: So then it's PING => m_control_state=false; register non-idleness; go again*.
                                                                                                                                                                                      -
                                                                                                                                                                                      926 * -# Else:
                                                                                                                                                                                      -
                                                                                                                                                                                      927 * -# If empty msg => m_control_state=true; go again*.
                                                                                                                                                                                      -
                                                                                                                                                                                      928 * -# Else: regular user msg => emit to m_user_request; GTFO.
                                                                                                                                                                                      -
                                                                                                                                                                                      929 *
                                                                                                                                                                                      -
                                                                                                                                                                                      930 * (*) - What is "go again"? It means repeat the above steps. One way to structure this would be for read_msg()
                                                                                                                                                                                      -
                                                                                                                                                                                      931 * to then call read_msg(). That is algorithmically sound conceptually, but for example suppose there are
                                                                                                                                                                                      -
                                                                                                                                                                                      932 * 100 PINGs queued up; we do not want 100+ stack frames. So we avoid this recursion; instead it's a
                                                                                                                                                                                      -
                                                                                                                                                                                      933 * do-while loop, with the above steps being one iteration.
                                                                                                                                                                                      -
                                                                                                                                                                                      934 *
                                                                                                                                                                                      -
                                                                                                                                                                                      935 * Let us consider the possible outcomes of an iteration as listed above.
                                                                                                                                                                                      -
                                                                                                                                                                                      936 * -# m_pending_err_code truthy, emit-to-user, do not reiterate.
                                                                                                                                                                                      -
                                                                                                                                                                                      937 * -# m_pending_err_code falsy, emit-to-user, do not reiterate.
                                                                                                                                                                                      -
                                                                                                                                                                                      938 * -# Async-wait started, do not emit-to-user, do not reiterate.
                                                                                                                                                                                      -
                                                                                                                                                                                      939 * -# Reiterate. (m_control_state would have changes to true or to false.)
                                                                                                                                                                                      -
                                                                                                                                                                                      940 *
                                                                                                                                                                                      -
                                                                                                                                                                                      941 * Here is how we structure the flow control then. Firstly, outcome (3) stylistically we normally handle in various
                                                                                                                                                                                      -
                                                                                                                                                                                      942 * places by `return`ing after starting async-wait. It's nice visually to show that when the algorithm continues
                                                                                                                                                                                      -
                                                                                                                                                                                      943 * asynchronously, then we don't do anything at the tail end (after the async-wait). So, that's that for outcome (3).
                                                                                                                                                                                      +
                                                                                                                                                                                      902 else // if (n_canceled >= 1)
                                                                                                                                                                                      +
                                                                                                                                                                                      903 {
                                                                                                                                                                                      +
                                                                                                                                                                                      904 assert((n_canceled == 1) && "We only issue 1 timer async_wait() at a time.");
                                                                                                                                                                                      +
                                                                                                                                                                                      905
                                                                                                                                                                                      +
                                                                                                                                                                                      906 /* m_timer_worker will m_idle_timer.async_wait(F), where F() will signal through pipe,
                                                                                                                                                                                      +
                                                                                                                                                                                      907 * making *m_idle_timer_fired_peer readable. We've already used m_ev_wait_func() to start
                                                                                                                                                                                      +
                                                                                                                                                                                      908 * wait on it being readable and invoke on_ev_idle_timer_fired() in that case; but we've
                                                                                                                                                                                      +
                                                                                                                                                                                      909 * canceled the previous .async_wait() that would make it readable; so just redo that part. */
                                                                                                                                                                                      +
                                                                                                                                                                                      910 m_timer_worker.timer_async_wait(&m_idle_timer, m_idle_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      911 }
                                                                                                                                                                                      +
                                                                                                                                                                                      912} // Blob_stream_mq_receiver_impl::not_idle()
                                                                                                                                                                                      +
                                                                                                                                                                                      913
                                                                                                                                                                                      +
                                                                                                                                                                                      914template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      916{
                                                                                                                                                                                      +
                                                                                                                                                                                      917 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      918 using util::Blob_mutable;
                                                                                                                                                                                      +
                                                                                                                                                                                      919 using flow::util::Lock_guard;
                                                                                                                                                                                      +
                                                                                                                                                                                      920 using raw_ctl_cmd_enum_t = std::underlying_type_t<Control_cmd>;
                                                                                                                                                                                      +
                                                                                                                                                                                      921
                                                                                                                                                                                      +
                                                                                                                                                                                      922 assert(!m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      923 assert(m_user_request);
                                                                                                                                                                                      +
                                                                                                                                                                                      924
                                                                                                                                                                                      +
                                                                                                                                                                                      925 /* We just entered possibly-not-would-block state of m_mq; and are about to nb-read message (which might would-block
                                                                                                                                                                                      +
                                                                                                                                                                                      926 * and other possibilities). Pre-condition is m_user_request is truthy -- has not been satisfied. Lastly
                                                                                                                                                                                      +
                                                                                                                                                                                      927 * m_control_state may be true or false depending on the last payload (if any).
                                                                                                                                                                                      +
                                                                                                                                                                                      928 *
                                                                                                                                                                                      +
                                                                                                                                                                                      929 * -# MQ error or protocol error (invalid ctl msg) or graceful-close ctl msg => m_pending_err_code becomes true;
                                                                                                                                                                                      +
                                                                                                                                                                                      930 * emit to m_user_request; GTFO.
                                                                                                                                                                                      +
                                                                                                                                                                                      931 * -# Would-block => async-wait for readability, when ready read_msg() (us) again (unless
                                                                                                                                                                                      +
                                                                                                                                                                                      932 * idle-timeout in the meantime, so be sure to not read_msg() in that case). GTFO here
                                                                                                                                                                                      +
                                                                                                                                                                                      933 * (algorithm continues asynchronously).
                                                                                                                                                                                      +
                                                                                                                                                                                      934 * -# Valid msg:
                                                                                                                                                                                      +
                                                                                                                                                                                      935 * -# If m_control_state already: So then it's PING => m_control_state=false; register non-idleness; go again*.
                                                                                                                                                                                      +
                                                                                                                                                                                      936 * -# Else:
                                                                                                                                                                                      +
                                                                                                                                                                                      937 * -# If empty msg => m_control_state=true; go again*.
                                                                                                                                                                                      +
                                                                                                                                                                                      938 * -# Else: regular user msg => emit to m_user_request; GTFO.
                                                                                                                                                                                      +
                                                                                                                                                                                      939 *
                                                                                                                                                                                      +
                                                                                                                                                                                      940 * (*) - What is "go again"? It means repeat the above steps. One way to structure this would be for read_msg()
                                                                                                                                                                                      +
                                                                                                                                                                                      941 * to then call read_msg(). That is algorithmically sound conceptually, but for example suppose there are
                                                                                                                                                                                      +
                                                                                                                                                                                      942 * 100 PINGs queued up; we do not want 100+ stack frames. So we avoid this recursion; instead it's a
                                                                                                                                                                                      +
                                                                                                                                                                                      943 * do-while loop, with the above steps being one iteration.
                                                                                                                                                                                      944 *
                                                                                                                                                                                      -
                                                                                                                                                                                      945 * That leaves 2 possibilities if end of iteration is reached:
                                                                                                                                                                                      -
                                                                                                                                                                                      946 * - emit-to-user, stop loop;
                                                                                                                                                                                      -
                                                                                                                                                                                      947 * - do not emit-to-user, continue loop.
                                                                                                                                                                                      -
                                                                                                                                                                                      948 *
                                                                                                                                                                                      -
                                                                                                                                                                                      949 * Hence track it with `bool emit`; and end the do-while() once it becomes true.
                                                                                                                                                                                      -
                                                                                                                                                                                      950 */
                                                                                                                                                                                      -
                                                                                                                                                                                      951 bool emit = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      952 Blob_mutable target_blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      953
                                                                                                                                                                                      -
                                                                                                                                                                                      954 do
                                                                                                                                                                                      -
                                                                                                                                                                                      955 {
                                                                                                                                                                                      -
                                                                                                                                                                                      956 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Async-receive: Start of payload: "
                                                                                                                                                                                      -
                                                                                                                                                                                      957 "Either user message or CONTROL-state escape message; unless already in CONTROL state "
                                                                                                                                                                                      -
                                                                                                                                                                                      958 "(are we? = [" << m_control_state << "]) -- then the CONTROL command enum value.");
                                                                                                                                                                                      -
                                                                                                                                                                                      959
                                                                                                                                                                                      -
                                                                                                                                                                                      960 target_blob = m_control_state ? Blob_mutable(m_target_control_blob.data(),
                                                                                                                                                                                      -
                                                                                                                                                                                      961 m_target_control_blob.size())
                                                                                                                                                                                      -
                                                                                                                                                                                      962 : m_user_request->m_target_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      945 * Let us consider the possible outcomes of an iteration as listed above.
                                                                                                                                                                                      +
                                                                                                                                                                                      946 * -# m_pending_err_code truthy, emit-to-user, do not reiterate.
                                                                                                                                                                                      +
                                                                                                                                                                                      947 * -# m_pending_err_code falsy, emit-to-user, do not reiterate.
                                                                                                                                                                                      +
                                                                                                                                                                                      948 * -# Async-wait started, do not emit-to-user, do not reiterate.
                                                                                                                                                                                      +
                                                                                                                                                                                      949 * -# Reiterate. (m_control_state would have changes to true or to false.)
                                                                                                                                                                                      +
                                                                                                                                                                                      950 *
                                                                                                                                                                                      +
                                                                                                                                                                                      951 * Here is how we structure the flow control then. Firstly, outcome (3) stylistically we normally handle in various
                                                                                                                                                                                      +
                                                                                                                                                                                      952 * places by `return`ing after starting async-wait. It's nice visually to show that when the algorithm continues
                                                                                                                                                                                      +
                                                                                                                                                                                      953 * asynchronously, then we don't do anything at the tail end (after the async-wait). So, that's that for outcome (3).
                                                                                                                                                                                      +
                                                                                                                                                                                      954 *
                                                                                                                                                                                      +
                                                                                                                                                                                      955 * That leaves 2 possibilities if end of iteration is reached:
                                                                                                                                                                                      +
                                                                                                                                                                                      956 * - emit-to-user, stop loop;
                                                                                                                                                                                      +
                                                                                                                                                                                      957 * - do not emit-to-user, continue loop.
                                                                                                                                                                                      +
                                                                                                                                                                                      958 *
                                                                                                                                                                                      +
                                                                                                                                                                                      959 * Hence track it with `bool emit`; and end the do-while() once it becomes true.
                                                                                                                                                                                      +
                                                                                                                                                                                      960 */
                                                                                                                                                                                      +
                                                                                                                                                                                      961 bool emit = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      962 Blob_mutable target_blob;
                                                                                                                                                                                      963
                                                                                                                                                                                      -
                                                                                                                                                                                      964 const bool rcvd_else_would_block_or_error
                                                                                                                                                                                      -
                                                                                                                                                                                      965 = m_mq->try_receive(&target_blob, &m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      966
                                                                                                                                                                                      -
                                                                                                                                                                                      967 if (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      968 {
                                                                                                                                                                                      -
                                                                                                                                                                                      969 if (rcvd_else_would_block_or_error)
                                                                                                                                                                                      -
                                                                                                                                                                                      970 {
                                                                                                                                                                                      -
                                                                                                                                                                                      971 // Not error, not would block: got low-level message. Interpret it.
                                                                                                                                                                                      -
                                                                                                                                                                                      972
                                                                                                                                                                                      -
                                                                                                                                                                                      973 /* Let's discuss protocol negotiation, as it applies to us. Simply, the first thing we must receive
                                                                                                                                                                                      -
                                                                                                                                                                                      974 * (though there's no requirement as to how soon it happens -- it just needs to precede anything else)
                                                                                                                                                                                      -
                                                                                                                                                                                      975 * is a CONTROL message, whose payload (the 2nd MQ-message) contains a negative number (unlike regular
                                                                                                                                                                                      -
                                                                                                                                                                                      976 * CONTROL messages, wherein it's a non-negative number encoding Control_cmd enum: 0, 1, ...), the
                                                                                                                                                                                      -
                                                                                                                                                                                      977 * negation of which is the opposing side's preferred (highest supported) protocol version to pass-to
                                                                                                                                                                                      -
                                                                                                                                                                                      978 * m_protocol_negotiator.compute_negotiated_proto_ver() -- which completes the negotiation.
                                                                                                                                                                                      -
                                                                                                                                                                                      979 *
                                                                                                                                                                                      -
                                                                                                                                                                                      980 * Since m_protocol_negotiator offers ability to track "first message" or "not first message," we don't
                                                                                                                                                                                      -
                                                                                                                                                                                      981 * need to keep our own m_ state about that. Thus: */
                                                                                                                                                                                      -
                                                                                                                                                                                      982 bool proto_negotiating
                                                                                                                                                                                      -
                                                                                                                                                                                      983 = m_protocol_negotiator.negotiated_proto_ver() == Protocol_negotiator::S_VER_UNKNOWN;
                                                                                                                                                                                      -
                                                                                                                                                                                      984 /* If false, and we haven't errored-out of the loop, then negotiation is behind us.
                                                                                                                                                                                      -
                                                                                                                                                                                      985 * If true, then in a couple places below we'll need to zealously handle the negotiation.
                                                                                                                                                                                      -
                                                                                                                                                                                      986 * Generally speaking, the tactics we follow (when `true`) are consistent with Protocol_negotiator doc
                                                                                                                                                                                      -
                                                                                                                                                                                      987 * header convention which mandates that we interpret as little as we can, until proto_negotiating
                                                                                                                                                                                      -
                                                                                                                                                                                      988 * becomes true, or we error out due to negotiation fail. */
                                                                                                                                                                                      -
                                                                                                                                                                                      989
                                                                                                                                                                                      -
                                                                                                                                                                                      990 if (m_control_state)
                                                                                                                                                                                      -
                                                                                                                                                                                      991 {
                                                                                                                                                                                      -
                                                                                                                                                                                      992 // Do not forget!
                                                                                                                                                                                      -
                                                                                                                                                                                      993 m_control_state = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      994
                                                                                                                                                                                      -
                                                                                                                                                                                      995 if (target_blob.size() == sizeof(Control_cmd))
                                                                                                                                                                                      -
                                                                                                                                                                                      996 {
                                                                                                                                                                                      -
                                                                                                                                                                                      997 const auto& cmd = *(reinterpret_cast<const Control_cmd*>(target_blob.data()));
                                                                                                                                                                                      -
                                                                                                                                                                                      998 const auto raw_cmd = raw_ctl_cmd_enum_t(cmd);
                                                                                                                                                                                      +
                                                                                                                                                                                      964 do
                                                                                                                                                                                      +
                                                                                                                                                                                      965 {
                                                                                                                                                                                      +
                                                                                                                                                                                      966 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Async-receive: Start of payload: "
                                                                                                                                                                                      +
                                                                                                                                                                                      967 "Either user message or CONTROL-state escape message; unless already in CONTROL state "
                                                                                                                                                                                      +
                                                                                                                                                                                      968 "(are we? = [" << m_control_state << "]) -- then the CONTROL command enum value.");
                                                                                                                                                                                      +
                                                                                                                                                                                      969
                                                                                                                                                                                      +
                                                                                                                                                                                      970 target_blob = m_control_state ? Blob_mutable(m_target_control_blob.data(),
                                                                                                                                                                                      +
                                                                                                                                                                                      971 m_target_control_blob.size())
                                                                                                                                                                                      +
                                                                                                                                                                                      972 : m_user_request->m_target_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      973
                                                                                                                                                                                      +
                                                                                                                                                                                      974 const bool rcvd_else_would_block_or_error
                                                                                                                                                                                      +
                                                                                                                                                                                      975 = m_mq->try_receive(&target_blob, &m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      976
                                                                                                                                                                                      +
                                                                                                                                                                                      977 if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      978 {
                                                                                                                                                                                      +
                                                                                                                                                                                      979 if (rcvd_else_would_block_or_error)
                                                                                                                                                                                      +
                                                                                                                                                                                      980 {
                                                                                                                                                                                      +
                                                                                                                                                                                      981 // Not error, not would block: got low-level message. Interpret it.
                                                                                                                                                                                      +
                                                                                                                                                                                      982
                                                                                                                                                                                      +
                                                                                                                                                                                      983 /* Let's discuss protocol negotiation, as it applies to us. Simply, the first thing we must receive
                                                                                                                                                                                      +
                                                                                                                                                                                      984 * (though there's no requirement as to how soon it happens -- it just needs to precede anything else)
                                                                                                                                                                                      +
                                                                                                                                                                                      985 * is a CONTROL message, whose payload (the 2nd MQ-message) contains a negative number (unlike regular
                                                                                                                                                                                      +
                                                                                                                                                                                      986 * CONTROL messages, wherein it's a non-negative number encoding Control_cmd enum: 0, 1, ...), the
                                                                                                                                                                                      +
                                                                                                                                                                                      987 * negation of which is the opposing side's preferred (highest supported) protocol version to pass-to
                                                                                                                                                                                      +
                                                                                                                                                                                      988 * m_protocol_negotiator.compute_negotiated_proto_ver() -- which completes the negotiation.
                                                                                                                                                                                      +
                                                                                                                                                                                      989 *
                                                                                                                                                                                      +
                                                                                                                                                                                      990 * Since m_protocol_negotiator offers ability to track "first message" or "not first message," we don't
                                                                                                                                                                                      +
                                                                                                                                                                                      991 * need to keep our own m_ state about that. Thus: */
                                                                                                                                                                                      +
                                                                                                                                                                                      992 bool proto_negotiating
                                                                                                                                                                                      +
                                                                                                                                                                                      993 = m_protocol_negotiator.negotiated_proto_ver() == Protocol_negotiator::S_VER_UNKNOWN;
                                                                                                                                                                                      +
                                                                                                                                                                                      994 /* If false, and we haven't errored-out of the loop, then negotiation is behind us.
                                                                                                                                                                                      +
                                                                                                                                                                                      995 * If true, then in a couple places below we'll need to zealously handle the negotiation.
                                                                                                                                                                                      +
                                                                                                                                                                                      996 * Generally speaking, the tactics we follow (when `true`) are consistent with Protocol_negotiator doc
                                                                                                                                                                                      +
                                                                                                                                                                                      997 * header convention which mandates that we interpret as little as we can, until proto_negotiating
                                                                                                                                                                                      +
                                                                                                                                                                                      998 * becomes true, or we error out due to negotiation fail. */
                                                                                                                                                                                      999
                                                                                                                                                                                      -
                                                                                                                                                                                      1000 if (proto_negotiating)
                                                                                                                                                                                      -
                                                                                                                                                                                      1001 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1002 /* Protocol_negotiator handles everything (invalid value, incompatible range...); we just know
                                                                                                                                                                                      -
                                                                                                                                                                                      1003 * the encoding is to be the negation of the version. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1004#ifndef NDEBUG
                                                                                                                                                                                      -
                                                                                                                                                                                      1005 const bool ok =
                                                                                                                                                                                      -
                                                                                                                                                                                      1006#endif
                                                                                                                                                                                      -
                                                                                                                                                                                      1007 m_protocol_negotiator.compute_negotiated_proto_ver(-raw_cmd, &m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1008 assert(ok && "Protocol_negotiator breaking contract? Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      1009 proto_negotiating = false; // Just in case (maintainability).
                                                                                                                                                                                      -
                                                                                                                                                                                      1010
                                                                                                                                                                                      -
                                                                                                                                                                                      1011 /* Cool, so now either all is cool, and we should keep reading; or m_pending_err_code contains how
                                                                                                                                                                                      -
                                                                                                                                                                                      1012 * negotiation failed, and loop will exit. The general code before the } in `if (m_control) {}` will
                                                                                                                                                                                      -
                                                                                                                                                                                      1013 * handle it either way. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1014 } // if (proto_negotiating)
                                                                                                                                                                                      -
                                                                                                                                                                                      1015 else if (raw_cmd >= raw_ctl_cmd_enum_t(Control_cmd::S_END_SENTINEL)) // && !proto_negotiating
                                                                                                                                                                                      -
                                                                                                                                                                                      1016 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1017 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state expecting encoding "
                                                                                                                                                                                      -
                                                                                                                                                                                      1018 "enum value < int[" << raw_ctl_cmd_enum_t(Control_cmd::S_END_SENTINEL) << "] but got "
                                                                                                                                                                                      -
                                                                                                                                                                                      1019 "[" << raw_cmd << "]; emitting protocol error (bug on sender side?).");
                                                                                                                                                                                      - -
                                                                                                                                                                                      1021 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1022 else // if ((!proto_negotiating) && (cmd is valid))
                                                                                                                                                                                      -
                                                                                                                                                                                      1023 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1024 switch (cmd)
                                                                                                                                                                                      -
                                                                                                                                                                                      1025 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1026 case Control_cmd::S_END_SENDING:
                                                                                                                                                                                      - -
                                                                                                                                                                                      1028 break;
                                                                                                                                                                                      -
                                                                                                                                                                                      1029 case Control_cmd::S_PING:
                                                                                                                                                                                      -
                                                                                                                                                                                      1030 // As of this writing also INFO-level on sender side. @todo Reconsider that and this too.
                                                                                                                                                                                      -
                                                                                                                                                                                      1031 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state got PING. Ignoring "
                                                                                                                                                                                      -
                                                                                                                                                                                      1032 "other than registering non-idle activity. Back in non-CONTROL state.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1033 not_idle();
                                                                                                                                                                                      -
                                                                                                                                                                                      1034
                                                                                                                                                                                      -
                                                                                                                                                                                      1035 // Like it said -- ignore it. Just go for the next message.
                                                                                                                                                                                      -
                                                                                                                                                                                      1036 break;
                                                                                                                                                                                      -
                                                                                                                                                                                      1037 case Control_cmd::S_END_SENTINEL:
                                                                                                                                                                                      -
                                                                                                                                                                                      1038 assert(false && "Should've been handled above already.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1039 } // switch (cmd)
                                                                                                                                                                                      -
                                                                                                                                                                                      1040 } // else if ((!proto_negotiating) && (cmd is valid))
                                                                                                                                                                                      -
                                                                                                                                                                                      1041 } // if (target_blob.size() == sizeof(Control_cmd))
                                                                                                                                                                                      -
                                                                                                                                                                                      1042 else // if (target_blob.size() != sizeof(Control_cmd))
                                                                                                                                                                                      -
                                                                                                                                                                                      1043 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1044 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state expecting msg of "
                                                                                                                                                                                      -
                                                                                                                                                                                      1045 "exactly size [" << sizeof(Control_cmd) << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1046 "but got [" << target_blob.size() << "]; emitting protocol error (bug on sender side?).");
                                                                                                                                                                                      - -
                                                                                                                                                                                      1048 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1049
                                                                                                                                                                                      -
                                                                                                                                                                                      1050 // Close (graceful or error) => emit to user; end loop. Ping => continue loop.
                                                                                                                                                                                      -
                                                                                                                                                                                      1051 assert(!emit);
                                                                                                                                                                                      -
                                                                                                                                                                                      1052 m_pending_err_code && (emit = true);
                                                                                                                                                                                      -
                                                                                                                                                                                      1053 } // if (m_control_state)
                                                                                                                                                                                      -
                                                                                                                                                                                      1054 else // if (!m_control_state) // && (rcvd_else_would_block_or_error) (so, got message, in non-CONTROL state)
                                                                                                                                                                                      -
                                                                                                                                                                                      1055 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1056 assert(!emit);
                                                                                                                                                                                      -
                                                                                                                                                                                      1057 if (target_blob.size() == 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      1058 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1059 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got escape message. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1060 "Entering CONTROL state; reading again if possible.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1061 m_control_state = true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1062
                                                                                                                                                                                      -
                                                                                                                                                                                      1063 /* if (proto_negotiating) { Good: In non-CONTROL state -- at start -- first message should do just this. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1064 * else { Neither good nor bad; just apparently it's a CONTROL message coming next. Err, good. } */
                                                                                                                                                                                      -
                                                                                                                                                                                      1065 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1066 else // if (target_blob.size() != 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      1067 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1068 if (proto_negotiating)
                                                                                                                                                                                      -
                                                                                                                                                                                      1069 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1070 /* In non-CONTROL state -- at start -- before protocol has been negotiated, the first message *must*
                                                                                                                                                                                      -
                                                                                                                                                                                      1071 * be a CONTROL message. Formally speaking we'll never be able to parse the negotiated version, because
                                                                                                                                                                                      -
                                                                                                                                                                                      1072 * it is not coming first according to the protocol. So, per it API, we can just give
                                                                                                                                                                                      -
                                                                                                                                                                                      1073 * Protocol_negotiator an invalid version, so it'll emit the proper error. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1074 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got regular "
                                                                                                                                                                                      -
                                                                                                                                                                                      1075 "user message. However this is the start of the comm-pathway, and by protocol "
                                                                                                                                                                                      -
                                                                                                                                                                                      1076 "the first thing must be a CONTROL message containing the protocol version; so "
                                                                                                                                                                                      -
                                                                                                                                                                                      1077 "we shall now emit error accordingly.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1078#ifndef NDEBUG
                                                                                                                                                                                      -
                                                                                                                                                                                      1079 const bool ok =
                                                                                                                                                                                      -
                                                                                                                                                                                      1080#endif
                                                                                                                                                                                      -
                                                                                                                                                                                      1081 m_protocol_negotiator.compute_negotiated_proto_ver(Protocol_negotiator::S_VER_UNKNOWN,
                                                                                                                                                                                      -
                                                                                                                                                                                      1082 &m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1083 assert(ok && "Protocol_negotiator breaking contract? Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      1084 assert(m_pending_err_code
                                                                                                                                                                                      -
                                                                                                                                                                                      1085 && "Protocol_negotiator should have emitted error given intentionally bad version.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1086 proto_negotiating = false; // Just in case (maintainability).
                                                                                                                                                                                      -
                                                                                                                                                                                      1087 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1088 else // if (!proto_negotiating)
                                                                                                                                                                                      -
                                                                                                                                                                                      1089 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1090 // Regular user message in regular operation, post any negotiation.
                                                                                                                                                                                      -
                                                                                                                                                                                      1091 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got regular "
                                                                                                                                                                                      -
                                                                                                                                                                                      1092 "user message. Will emit to user (possibly via sync-args, namely if this is "
                                                                                                                                                                                      -
                                                                                                                                                                                      1093 "synchronously within async-receive API). Also registering non-idle activity.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1094 not_idle();
                                                                                                                                                                                      -
                                                                                                                                                                                      1095 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1096
                                                                                                                                                                                      -
                                                                                                                                                                                      1097 // Emit message (much more likely); or emit error. Either way:
                                                                                                                                                                                      -
                                                                                                                                                                                      1098 emit = true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1099 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1100 } // else if (!m_control_state)
                                                                                                                                                                                      -
                                                                                                                                                                                      1101 } // if (rcvd_else_would_block_or_error) (and !m_pending_err_code, but it may have become truthy inside)
                                                                                                                                                                                      -
                                                                                                                                                                                      1102 else // if (!rcvd_else_would_block_or_error) (and !m_pending_err_code, so in fact would-block)
                                                                                                                                                                                      -
                                                                                                                                                                                      1103 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1104 FLOW_LOG_TRACE("Got would-block. Awaiting readability.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1105
                                                                                                                                                                                      -
                                                                                                                                                                                      1106 /* Conceptually we'd like to do m_mq->async_wait(readable, F), where F() would perform
                                                                                                                                                                                      -
                                                                                                                                                                                      1107 * read_msg() (the present method: nb-receive over m_mq). However this is the sync_io pattern, so
                                                                                                                                                                                      -
                                                                                                                                                                                      1108 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      -
                                                                                                                                                                                      1109 * via m_ev_wait_func(), giving them m_mq's FD -- m_ev_wait_hndl_mq -- to wait-on. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1110
                                                                                                                                                                                      -
                                                                                                                                                                                      1111 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1112 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1113 /* In this case, though, m_mq has no FD; so we simulate it by awaiting readability in thread W
                                                                                                                                                                                      -
                                                                                                                                                                                      1114 * (which exists only for this purpose and is currently idle); and once that is detected we make the
                                                                                                                                                                                      -
                                                                                                                                                                                      1115 * pipe-read-end m_mq_ready_reader readable (by writing to write end):
                                                                                                                                                                                      -
                                                                                                                                                                                      1116 * *that* is watched by m_ev_wait_hndl_mq. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1117
                                                                                                                                                                                      -
                                                                                                                                                                                      1118 // So step 1 then; start the blocking wait in thread W.
                                                                                                                                                                                      -
                                                                                                                                                                                      1119 m_blocking_worker->post([this]()
                                                                                                                                                                                      -
                                                                                                                                                                                      1120 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1121 // We are in thread W (the one and only code snippet that runs there).
                                                                                                                                                                                      -
                                                                                                                                                                                      1122
                                                                                                                                                                                      -
                                                                                                                                                                                      1123 /* m_mq thread safety: See its doc header. Spoiler alert: m_user_request not empty, so by posting
                                                                                                                                                                                      -
                                                                                                                                                                                      1124 * this onto thread W, thread U promises not to touch m_mq until *we* tell it to via m_ev_wait_hndl_mq.
                                                                                                                                                                                      -
                                                                                                                                                                                      1125 * async_receive_blob() will see m_user_request is non-empty and refuse to proceed.
                                                                                                                                                                                      -
                                                                                                                                                                                      1126 * The only other thing that would touch m_mq (outside of dtor's m_mq->interrupt_receives()) is the
                                                                                                                                                                                      -
                                                                                                                                                                                      1127 * async-wait-handler below -- but that will only run if *we* signal it to. So it's safe. (That spoiler
                                                                                                                                                                                      -
                                                                                                                                                                                      1128 * was very spoiler-y. More of a restatement.) */
                                                                                                                                                                                      -
                                                                                                                                                                                      1129
                                                                                                                                                                                      -
                                                                                                                                                                                      1130 Error_code err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      1131 m_mq->wait_receivable(&err_code); // This will TRACE-log plenty.
                                                                                                                                                                                      -
                                                                                                                                                                                      1132 if (err_code == error::Code::S_INTERRUPTED)
                                                                                                                                                                                      -
                                                                                                                                                                                      1133 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1134 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker was awaiting MQ "
                                                                                                                                                                                      -
                                                                                                                                                                                      1135 "transmissibility; interrupted (presumably by dtor). Bailing out.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1136 return; // Dtor is shutting is down. GTFO.
                                                                                                                                                                                      -
                                                                                                                                                                                      1137 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1138 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1000 if (m_control_state)
                                                                                                                                                                                      +
                                                                                                                                                                                      1001 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1002 // Do not forget!
                                                                                                                                                                                      +
                                                                                                                                                                                      1003 m_control_state = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1004
                                                                                                                                                                                      +
                                                                                                                                                                                      1005 if (target_blob.size() == sizeof(Control_cmd))
                                                                                                                                                                                      +
                                                                                                                                                                                      1006 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1007 const auto& cmd = *(reinterpret_cast<const Control_cmd*>(target_blob.data()));
                                                                                                                                                                                      +
                                                                                                                                                                                      1008 const auto raw_cmd = raw_ctl_cmd_enum_t(cmd);
                                                                                                                                                                                      +
                                                                                                                                                                                      1009
                                                                                                                                                                                      +
                                                                                                                                                                                      1010 if (proto_negotiating)
                                                                                                                                                                                      +
                                                                                                                                                                                      1011 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1012 /* Protocol_negotiator handles everything (invalid value, incompatible range...); we just know
                                                                                                                                                                                      +
                                                                                                                                                                                      1013 * the encoding is to be the negation of the version. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1014#ifndef NDEBUG
                                                                                                                                                                                      +
                                                                                                                                                                                      1015 const bool ok =
                                                                                                                                                                                      +
                                                                                                                                                                                      1016#endif
                                                                                                                                                                                      +
                                                                                                                                                                                      1017 m_protocol_negotiator.compute_negotiated_proto_ver(-raw_cmd, &m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1018 assert(ok && "Protocol_negotiator breaking contract? Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      1019 proto_negotiating = false; // Just in case (maintainability).
                                                                                                                                                                                      +
                                                                                                                                                                                      1020
                                                                                                                                                                                      +
                                                                                                                                                                                      1021 /* Cool, so now either all is cool, and we should keep reading; or m_pending_err_code contains how
                                                                                                                                                                                      +
                                                                                                                                                                                      1022 * negotiation failed, and loop will exit. The general code before the } in `if (m_control) {}` will
                                                                                                                                                                                      +
                                                                                                                                                                                      1023 * handle it either way. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1024 } // if (proto_negotiating)
                                                                                                                                                                                      +
                                                                                                                                                                                      1025 else if (raw_cmd >= raw_ctl_cmd_enum_t(Control_cmd::S_END_SENTINEL)) // && !proto_negotiating
                                                                                                                                                                                      +
                                                                                                                                                                                      1026 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1027 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state expecting encoding "
                                                                                                                                                                                      +
                                                                                                                                                                                      1028 "enum value < int[" << raw_ctl_cmd_enum_t(Control_cmd::S_END_SENTINEL) << "] but got "
                                                                                                                                                                                      +
                                                                                                                                                                                      1029 "[" << raw_cmd << "]; emitting protocol error (bug on sender side?).");
                                                                                                                                                                                      + +
                                                                                                                                                                                      1031 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1032 else // if ((!proto_negotiating) && (cmd is valid))
                                                                                                                                                                                      +
                                                                                                                                                                                      1033 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1034 switch (cmd)
                                                                                                                                                                                      +
                                                                                                                                                                                      1035 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1036 case Control_cmd::S_END_SENDING:
                                                                                                                                                                                      + +
                                                                                                                                                                                      1038 break;
                                                                                                                                                                                      +
                                                                                                                                                                                      1039 case Control_cmd::S_PING:
                                                                                                                                                                                      +
                                                                                                                                                                                      1040 // As of this writing also INFO-level on sender side. @todo Reconsider that and this too.
                                                                                                                                                                                      +
                                                                                                                                                                                      1041 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state got PING. Ignoring "
                                                                                                                                                                                      +
                                                                                                                                                                                      1042 "other than registering non-idle activity. Back in non-CONTROL state.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1043 not_idle();
                                                                                                                                                                                      +
                                                                                                                                                                                      1044
                                                                                                                                                                                      +
                                                                                                                                                                                      1045 // Like it said -- ignore it. Just go for the next message.
                                                                                                                                                                                      +
                                                                                                                                                                                      1046 break;
                                                                                                                                                                                      +
                                                                                                                                                                                      1047 case Control_cmd::S_END_SENTINEL:
                                                                                                                                                                                      +
                                                                                                                                                                                      1048 assert(false && "Should've been handled above already.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1049 } // switch (cmd)
                                                                                                                                                                                      +
                                                                                                                                                                                      1050 } // else if ((!proto_negotiating) && (cmd is valid))
                                                                                                                                                                                      +
                                                                                                                                                                                      1051 } // if (target_blob.size() == sizeof(Control_cmd))
                                                                                                                                                                                      +
                                                                                                                                                                                      1052 else // if (target_blob.size() != sizeof(Control_cmd))
                                                                                                                                                                                      +
                                                                                                                                                                                      1053 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1054 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In CONTROL state expecting msg of "
                                                                                                                                                                                      +
                                                                                                                                                                                      1055 "exactly size [" << sizeof(Control_cmd) << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1056 "but got [" << target_blob.size() << "]; emitting protocol error (bug on sender side?).");
                                                                                                                                                                                      + +
                                                                                                                                                                                      1058 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1059
                                                                                                                                                                                      +
                                                                                                                                                                                      1060 // Close (graceful or error) => emit to user; end loop. Ping => continue loop.
                                                                                                                                                                                      +
                                                                                                                                                                                      1061 assert(!emit);
                                                                                                                                                                                      +
                                                                                                                                                                                      1062 m_pending_err_code && (emit = true);
                                                                                                                                                                                      +
                                                                                                                                                                                      1063 } // if (m_control_state)
                                                                                                                                                                                      +
                                                                                                                                                                                      1064 else // if (!m_control_state) // && (rcvd_else_would_block_or_error) (so, got message, in non-CONTROL state)
                                                                                                                                                                                      +
                                                                                                                                                                                      1065 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1066 assert(!emit);
                                                                                                                                                                                      +
                                                                                                                                                                                      1067 if (target_blob.size() == 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      1068 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1069 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got escape message. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1070 "Entering CONTROL state; reading again if possible.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1071 m_control_state = true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1072
                                                                                                                                                                                      +
                                                                                                                                                                                      1073 /* if (proto_negotiating) { Good: In non-CONTROL state -- at start -- first message should do just this. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1074 * else { Neither good nor bad; just apparently it's a CONTROL message coming next. Err, good. } */
                                                                                                                                                                                      +
                                                                                                                                                                                      1075 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1076 else // if (target_blob.size() != 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      1077 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1078 if (proto_negotiating)
                                                                                                                                                                                      +
                                                                                                                                                                                      1079 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1080 /* In non-CONTROL state -- at start -- before protocol has been negotiated, the first message *must*
                                                                                                                                                                                      +
                                                                                                                                                                                      1081 * be a CONTROL message. Formally speaking we'll never be able to parse the negotiated version, because
                                                                                                                                                                                      +
                                                                                                                                                                                      1082 * it is not coming first according to the protocol. So, per it API, we can just give
                                                                                                                                                                                      +
                                                                                                                                                                                      1083 * Protocol_negotiator an invalid version, so it'll emit the proper error. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1084 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got regular "
                                                                                                                                                                                      +
                                                                                                                                                                                      1085 "user message. However this is the start of the comm-pathway, and by protocol "
                                                                                                                                                                                      +
                                                                                                                                                                                      1086 "the first thing must be a CONTROL message containing the protocol version; so "
                                                                                                                                                                                      +
                                                                                                                                                                                      1087 "we shall now emit error accordingly.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1088#ifndef NDEBUG
                                                                                                                                                                                      +
                                                                                                                                                                                      1089 const bool ok =
                                                                                                                                                                                      +
                                                                                                                                                                                      1090#endif
                                                                                                                                                                                      +
                                                                                                                                                                                      1091 m_protocol_negotiator.compute_negotiated_proto_ver(Protocol_negotiator::S_VER_UNKNOWN,
                                                                                                                                                                                      +
                                                                                                                                                                                      1092 &m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1093 assert(ok && "Protocol_negotiator breaking contract? Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      1094 assert(m_pending_err_code
                                                                                                                                                                                      +
                                                                                                                                                                                      1095 && "Protocol_negotiator should have emitted error given intentionally bad version.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1096 proto_negotiating = false; // Just in case (maintainability).
                                                                                                                                                                                      +
                                                                                                                                                                                      1097 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1098 else // if (!proto_negotiating)
                                                                                                                                                                                      +
                                                                                                                                                                                      1099 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1100 // Regular user message in regular operation, post any negotiation.
                                                                                                                                                                                      +
                                                                                                                                                                                      1101 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: In non-CONTROL state got regular "
                                                                                                                                                                                      +
                                                                                                                                                                                      1102 "user message. Will emit to user (possibly via sync-args, namely if this is "
                                                                                                                                                                                      +
                                                                                                                                                                                      1103 "synchronously within async-receive API). Also registering non-idle activity.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1104 not_idle();
                                                                                                                                                                                      +
                                                                                                                                                                                      1105 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1106
                                                                                                                                                                                      +
                                                                                                                                                                                      1107 // Emit message (much more likely); or emit error. Either way:
                                                                                                                                                                                      +
                                                                                                                                                                                      1108 emit = true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1109 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1110 } // else if (!m_control_state)
                                                                                                                                                                                      +
                                                                                                                                                                                      1111 } // if (rcvd_else_would_block_or_error) (and !m_pending_err_code, but it may have become truthy inside)
                                                                                                                                                                                      +
                                                                                                                                                                                      1112 else // if (!rcvd_else_would_block_or_error) (and !m_pending_err_code, so in fact would-block)
                                                                                                                                                                                      +
                                                                                                                                                                                      1113 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1114 FLOW_LOG_TRACE("Got would-block. Awaiting readability.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1115
                                                                                                                                                                                      +
                                                                                                                                                                                      1116 /* Conceptually we'd like to do m_mq->async_wait(readable, F), where F() would perform
                                                                                                                                                                                      +
                                                                                                                                                                                      1117 * read_msg() (the present method: nb-receive over m_mq). However this is the sync_io pattern, so
                                                                                                                                                                                      +
                                                                                                                                                                                      1118 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      +
                                                                                                                                                                                      1119 * via m_ev_wait_func(), giving them m_mq's FD -- m_ev_wait_hndl_mq -- to wait-on. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1120
                                                                                                                                                                                      +
                                                                                                                                                                                      1121 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1122 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1123 /* In this case, though, m_mq has no FD; so we simulate it by awaiting readability in thread W
                                                                                                                                                                                      +
                                                                                                                                                                                      1124 * (which exists only for this purpose and is currently idle); and once that is detected we make the
                                                                                                                                                                                      +
                                                                                                                                                                                      1125 * pipe-read-end m_mq_ready_reader readable (by writing to write end):
                                                                                                                                                                                      +
                                                                                                                                                                                      1126 * *that* is watched by m_ev_wait_hndl_mq. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1127
                                                                                                                                                                                      +
                                                                                                                                                                                      1128 // So step 1 then; start the blocking wait in thread W.
                                                                                                                                                                                      +
                                                                                                                                                                                      1129 m_blocking_worker->post([this]()
                                                                                                                                                                                      +
                                                                                                                                                                                      1130 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1131 // We are in thread W (the one and only code snippet that runs there).
                                                                                                                                                                                      +
                                                                                                                                                                                      1132
                                                                                                                                                                                      +
                                                                                                                                                                                      1133 /* m_mq thread safety: See its doc header. Spoiler alert: m_user_request not empty, so by posting
                                                                                                                                                                                      +
                                                                                                                                                                                      1134 * this onto thread W, thread U promises not to touch m_mq until *we* tell it to via m_ev_wait_hndl_mq.
                                                                                                                                                                                      +
                                                                                                                                                                                      1135 * async_receive_blob() will see m_user_request is non-empty and refuse to proceed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1136 * The only other thing that would touch m_mq (outside of dtor's m_mq->interrupt_receives()) is the
                                                                                                                                                                                      +
                                                                                                                                                                                      1137 * async-wait-handler below -- but that will only run if *we* signal it to. So it's safe. (That spoiler
                                                                                                                                                                                      +
                                                                                                                                                                                      1138 * was very spoiler-y. More of a restatement.) */
                                                                                                                                                                                      1139
                                                                                                                                                                                      -
                                                                                                                                                                                      1140 if (err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1141 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1142 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      -
                                                                                                                                                                                      1143 "transmissibility; yield error (not interrupted) -- details likely in WARNING above. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1144 "We lack the means (well, the will mostly) to transmit the fact of the error "
                                                                                                                                                                                      -
                                                                                                                                                                                      1145 "to user-land; so we will just report MQ-readability and let "
                                                                                                                                                                                      -
                                                                                                                                                                                      1146 "user-land code uncover whatever is wrong with the MQ. This is unusual generally.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1140 Error_code err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      1141 m_mq->wait_receivable(&err_code); // This will TRACE-log plenty.
                                                                                                                                                                                      +
                                                                                                                                                                                      1142 if (err_code == error::Code::S_INTERRUPTED)
                                                                                                                                                                                      +
                                                                                                                                                                                      1143 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1144 FLOW_LOG_INFO("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker was awaiting MQ "
                                                                                                                                                                                      +
                                                                                                                                                                                      1145 "transmissibility; interrupted (presumably by dtor). Bailing out.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1146 return; // Dtor is shutting is down. GTFO.
                                                                                                                                                                                      1147 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1148 // else { No problem! It logged enough; let us signal it. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1149 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      -
                                                                                                                                                                                      1150 "transmissibility; success; now pinging user-land via IPC-pipe.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1151
                                                                                                                                                                                      -
                                                                                                                                                                                      1152 util::pipe_produce(get_logger(), &(*m_mq_ready_writer));
                                                                                                                                                                                      -
                                                                                                                                                                                      1153 // m_mq_read_reader now has a byte to read! m_ev_wait_hndl_mq will be event-active.
                                                                                                                                                                                      -
                                                                                                                                                                                      1154 }); // m_blocking_worker->post()
                                                                                                                                                                                      -
                                                                                                                                                                                      1155 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1156 // else if (Mq::S_HAS_NATIVE_HANDLE) { m_ev_wait_hndl_mq has the MQ's kernel-waitable handle! Sw33t! }
                                                                                                                                                                                      -
                                                                                                                                                                                      1157
                                                                                                                                                                                      -
                                                                                                                                                                                      1158 m_ev_wait_func(&m_ev_wait_hndl_mq,
                                                                                                                                                                                      -
                                                                                                                                                                                      1159 false, // Wait for read (whether pipe or actual MQ!).
                                                                                                                                                                                      -
                                                                                                                                                                                      1160 // Once readable do this:
                                                                                                                                                                                      -
                                                                                                                                                                                      1161 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      1162 ([this]()
                                                                                                                                                                                      -
                                                                                                                                                                                      1163 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1164 // We are back in *not* thread W!
                                                                                                                                                                                      -
                                                                                                                                                                                      1165
                                                                                                                                                                                      -
                                                                                                                                                                                      1166 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1167 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1168 util::pipe_consume(get_logger(), &(*m_mq_ready_reader)); // Consume the byte to get to steady-state.
                                                                                                                                                                                      -
                                                                                                                                                                                      1169 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1170 // else { No byte was written. In fact there's no pipe even. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1171
                                                                                                                                                                                      -
                                                                                                                                                                                      1172 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: User-performed wait-for-readable finished "
                                                                                                                                                                                      -
                                                                                                                                                                                      1173 "(readable or error, we do not know which yet). We endeavour to receive->pop->receive->... "
                                                                                                                                                                                      -
                                                                                                                                                                                      1174 "as much of the MQ as we can until would-block, or we have a full message (so either "
                                                                                                                                                                                      -
                                                                                                                                                                                      1175 "1 message, or if in CONTROL state then 2 messages).");
                                                                                                                                                                                      -
                                                                                                                                                                                      1176 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1148 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1149
                                                                                                                                                                                      +
                                                                                                                                                                                      1150 if (err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1151 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1152 FLOW_LOG_WARNING("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      +
                                                                                                                                                                                      1153 "transmissibility; yield error (not interrupted) -- details likely in WARNING above. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1154 "We lack the means (well, the will mostly) to transmit the fact of the error "
                                                                                                                                                                                      +
                                                                                                                                                                                      1155 "to user-land; so we will just report MQ-readability and let "
                                                                                                                                                                                      +
                                                                                                                                                                                      1156 "user-land code uncover whatever is wrong with the MQ. This is unusual generally.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1157 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1158 // else { No problem! It logged enough; let us signal it. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1159 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      +
                                                                                                                                                                                      1160 "transmissibility; success; now pinging user-land via IPC-pipe.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1161
                                                                                                                                                                                      +
                                                                                                                                                                                      1162 util::pipe_produce(get_logger(), &(*m_mq_ready_writer));
                                                                                                                                                                                      +
                                                                                                                                                                                      1163 // m_mq_read_reader now has a byte to read! m_ev_wait_hndl_mq will be event-active.
                                                                                                                                                                                      +
                                                                                                                                                                                      1164 }); // m_blocking_worker->post()
                                                                                                                                                                                      +
                                                                                                                                                                                      1165 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1166 // else if (Mq::S_HAS_NATIVE_HANDLE) { m_ev_wait_hndl_mq has the MQ's kernel-waitable handle! Sw33t! }
                                                                                                                                                                                      +
                                                                                                                                                                                      1167
                                                                                                                                                                                      +
                                                                                                                                                                                      1168 m_ev_wait_func(&m_ev_wait_hndl_mq,
                                                                                                                                                                                      +
                                                                                                                                                                                      1169 false, // Wait for read (whether pipe or actual MQ!).
                                                                                                                                                                                      +
                                                                                                                                                                                      1170 // Once readable do this:
                                                                                                                                                                                      +
                                                                                                                                                                                      1171 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      1172 ([this]()
                                                                                                                                                                                      +
                                                                                                                                                                                      1173 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1174 // We are back in *not* thread W!
                                                                                                                                                                                      +
                                                                                                                                                                                      1175
                                                                                                                                                                                      +
                                                                                                                                                                                      1176 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      1177 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1178 FLOW_LOG_TRACE("However error (presumably idle-timeout) occurred in the meantime; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1179 "hence stopping read-chain forever.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1180
                                                                                                                                                                                      -
                                                                                                                                                                                      1181 assert((!m_user_request) // Sanity-check.
                                                                                                                                                                                      -
                                                                                                                                                                                      1182 && "If rcv-error emitted during low-level async-wait, we should have fed it to any "
                                                                                                                                                                                      -
                                                                                                                                                                                      1183 "pending async-receive.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1184 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      1185 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1186 // else if (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1187 assert(m_user_request && "Only an error, or we ourselves here, can satisfy user request."); // Sanity check.
                                                                                                                                                                                      -
                                                                                                                                                                                      1188
                                                                                                                                                                                      -
                                                                                                                                                                                      1189 // Will potentially emit these (if and only if message-read completes due to this successful async-wait).
                                                                                                                                                                                      -
                                                                                                                                                                                      1190 Error_code sync_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      1191 size_t sync_sz;
                                                                                                                                                                                      -
                                                                                                                                                                                      1192
                                                                                                                                                                                      -
                                                                                                                                                                                      1193 // Would-not-block, as far as we know. Try again.
                                                                                                                                                                                      -
                                                                                                                                                                                      1194 read_msg(&sync_err_code, &sync_sz);
                                                                                                                                                                                      -
                                                                                                                                                                                      1195
                                                                                                                                                                                      -
                                                                                                                                                                                      1196 if (sync_err_code == error::Code::S_SYNC_IO_WOULD_BLOCK)
                                                                                                                                                                                      -
                                                                                                                                                                                      1197 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1198 // Another async-wait is pending now. We've logged enough. Live to fight another day.
                                                                                                                                                                                      -
                                                                                                                                                                                      1199 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      1200 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1201 // else: Message completed/error!
                                                                                                                                                                                      +
                                                                                                                                                                                      1178 util::pipe_consume(get_logger(), &(*m_mq_ready_reader)); // Consume the byte to get to steady-state.
                                                                                                                                                                                      +
                                                                                                                                                                                      1179 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1180 // else { No byte was written. In fact there's no pipe even. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1181
                                                                                                                                                                                      +
                                                                                                                                                                                      1182 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: User-performed wait-for-readable finished "
                                                                                                                                                                                      +
                                                                                                                                                                                      1183 "(readable or error, we do not know which yet). We endeavour to receive->pop->receive->... "
                                                                                                                                                                                      +
                                                                                                                                                                                      1184 "as much of the MQ as we can until would-block, or we have a full message (so either "
                                                                                                                                                                                      +
                                                                                                                                                                                      1185 "1 message, or if in CONTROL state then 2 messages).");
                                                                                                                                                                                      +
                                                                                                                                                                                      1186 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1187 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1188 FLOW_LOG_TRACE("However error (presumably idle-timeout) occurred in the meantime; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1189 "hence stopping read-chain forever.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1190
                                                                                                                                                                                      +
                                                                                                                                                                                      1191 assert((!m_user_request) // Sanity-check.
                                                                                                                                                                                      +
                                                                                                                                                                                      1192 && "If rcv-error emitted during low-level async-wait, we should have fed it to any "
                                                                                                                                                                                      +
                                                                                                                                                                                      1193 "pending async-receive.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1194 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      1195 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1196 // else if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1197 assert(m_user_request && "Only an error, or we ourselves here, can satisfy user request."); // Sanity check.
                                                                                                                                                                                      +
                                                                                                                                                                                      1198
                                                                                                                                                                                      +
                                                                                                                                                                                      1199 // Will potentially emit these (if and only if message-read completes due to this successful async-wait).
                                                                                                                                                                                      +
                                                                                                                                                                                      1200 Error_code sync_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      1201 size_t sync_sz;
                                                                                                                                                                                      1202
                                                                                                                                                                                      -
                                                                                                                                                                                      1203 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Async-op result ready after successful "
                                                                                                                                                                                      -
                                                                                                                                                                                      1204 "async-wait. Executing handler now.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1203 // Would-not-block, as far as we know. Try again.
                                                                                                                                                                                      +
                                                                                                                                                                                      1204 read_msg(&sync_err_code, &sync_sz);
                                                                                                                                                                                      1205
                                                                                                                                                                                      -
                                                                                                                                                                                      1206 // Prevent stepping on our own toes: move/clear it first / invoke handler second.
                                                                                                                                                                                      -
                                                                                                                                                                                      1207 const auto on_done_func = std::move(m_user_request->m_on_done_func);
                                                                                                                                                                                      -
                                                                                                                                                                                      1208 m_user_request.reset();
                                                                                                                                                                                      -
                                                                                                                                                                                      1209 on_done_func(sync_err_code, sync_sz);
                                                                                                                                                                                      -
                                                                                                                                                                                      1210 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Handler completed.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1211 })); // m_ev_wait_func(): on_active_ev_func arg
                                                                                                                                                                                      +
                                                                                                                                                                                      1206 if (sync_err_code == error::Code::S_SYNC_IO_WOULD_BLOCK)
                                                                                                                                                                                      +
                                                                                                                                                                                      1207 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1208 // Another async-wait is pending now. We've logged enough. Live to fight another day.
                                                                                                                                                                                      +
                                                                                                                                                                                      1209 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      1210 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1211 // else: Message completed/error!
                                                                                                                                                                                      1212
                                                                                                                                                                                      -
                                                                                                                                                                                      1213 *sync_err_code = error::Code::S_SYNC_IO_WOULD_BLOCK;
                                                                                                                                                                                      -
                                                                                                                                                                                      1214 *sync_sz = 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      1215 return; // Async read chain started/continuing. GTFO.
                                                                                                                                                                                      -
                                                                                                                                                                                      1216 } // else if (!rcvd_else_would_block_or_error) (and !m_pending_err_code, so in fact would-block)
                                                                                                                                                                                      -
                                                                                                                                                                                      1217 } // if (!m_pending_err_code) [from m_mq->try_receive()] (but it may have become truthy inside)
                                                                                                                                                                                      -
                                                                                                                                                                                      1218 else // if (m_pending_err_code) [from m_mq->try_receive()]
                                                                                                                                                                                      -
                                                                                                                                                                                      1219 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1220 assert(!emit);
                                                                                                                                                                                      -
                                                                                                                                                                                      1221 emit = true; // Error => emit to user, end loop. The try_*() WARNING+TRACE-logged enough.
                                                                                                                                                                                      -
                                                                                                                                                                                      1222 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1223 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1224 while (!emit);
                                                                                                                                                                                      -
                                                                                                                                                                                      1225
                                                                                                                                                                                      -
                                                                                                                                                                                      1226 // Passed the gauntlet. Emit whatever happened to user.
                                                                                                                                                                                      -
                                                                                                                                                                                      1227
                                                                                                                                                                                      -
                                                                                                                                                                                      1228 assert(m_pending_err_code || // Sanity-check: Either error/closed, or we got a nice non-empty message.
                                                                                                                                                                                      -
                                                                                                                                                                                      1229 ((!m_control_state) && (target_blob.size() != 0)));
                                                                                                                                                                                      -
                                                                                                                                                                                      1230
                                                                                                                                                                                      -
                                                                                                                                                                                      1231 *sync_err_code = m_pending_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      1232 *sync_sz = m_pending_err_code ? 0 : target_blob.size();
                                                                                                                                                                                      -
                                                                                                                                                                                      1233} // Blob_stream_mq_receiver_impl::read_msg()
                                                                                                                                                                                      -
                                                                                                                                                                                      1234
                                                                                                                                                                                      -
                                                                                                                                                                                      1235template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1237{
                                                                                                                                                                                      -
                                                                                                                                                                                      1238 return m_mq_max_msg_sz; // As promised in concept API: never changes in PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      1239}
                                                                                                                                                                                      +
                                                                                                                                                                                      1213 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Async-op result ready after successful "
                                                                                                                                                                                      +
                                                                                                                                                                                      1214 "async-wait. Executing handler now.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1215
                                                                                                                                                                                      +
                                                                                                                                                                                      1216 // Prevent stepping on our own toes: move/clear it first / invoke handler second.
                                                                                                                                                                                      +
                                                                                                                                                                                      1217 const auto on_done_func = std::move(m_user_request->m_on_done_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      1218 m_user_request.reset();
                                                                                                                                                                                      +
                                                                                                                                                                                      1219 on_done_func(sync_err_code, sync_sz);
                                                                                                                                                                                      +
                                                                                                                                                                                      1220 FLOW_LOG_TRACE("Blob_stream_mq_receiver [" << *this << "]: Handler completed.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1221 })); // m_ev_wait_func(): on_active_ev_func arg
                                                                                                                                                                                      +
                                                                                                                                                                                      1222
                                                                                                                                                                                      +
                                                                                                                                                                                      1223 *sync_err_code = error::Code::S_SYNC_IO_WOULD_BLOCK;
                                                                                                                                                                                      +
                                                                                                                                                                                      1224 *sync_sz = 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      1225 return; // Async read chain started/continuing. GTFO.
                                                                                                                                                                                      +
                                                                                                                                                                                      1226 } // else if (!rcvd_else_would_block_or_error) (and !m_pending_err_code, so in fact would-block)
                                                                                                                                                                                      +
                                                                                                                                                                                      1227 } // if (!m_pending_err_code) [from m_mq->try_receive()] (but it may have become truthy inside)
                                                                                                                                                                                      +
                                                                                                                                                                                      1228 else // if (m_pending_err_code) [from m_mq->try_receive()]
                                                                                                                                                                                      +
                                                                                                                                                                                      1229 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1230 assert(!emit);
                                                                                                                                                                                      +
                                                                                                                                                                                      1231 emit = true; // Error => emit to user, end loop. The try_*() WARNING+TRACE-logged enough.
                                                                                                                                                                                      +
                                                                                                                                                                                      1232 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1233 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1234 while (!emit);
                                                                                                                                                                                      +
                                                                                                                                                                                      1235
                                                                                                                                                                                      +
                                                                                                                                                                                      1236 // Passed the gauntlet. Emit whatever happened to user.
                                                                                                                                                                                      +
                                                                                                                                                                                      1237
                                                                                                                                                                                      +
                                                                                                                                                                                      1238 assert(m_pending_err_code || // Sanity-check: Either error/closed, or we got a nice non-empty message.
                                                                                                                                                                                      +
                                                                                                                                                                                      1239 ((!m_control_state) && (target_blob.size() != 0)));
                                                                                                                                                                                      1240
                                                                                                                                                                                      -
                                                                                                                                                                                      1241template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1243{
                                                                                                                                                                                      -
                                                                                                                                                                                      1244 return m_absolute_name;
                                                                                                                                                                                      -
                                                                                                                                                                                      1245}
                                                                                                                                                                                      -
                                                                                                                                                                                      1246
                                                                                                                                                                                      -
                                                                                                                                                                                      1247template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1249{
                                                                                                                                                                                      -
                                                                                                                                                                                      1250 return m_nickname;
                                                                                                                                                                                      -
                                                                                                                                                                                      1251}
                                                                                                                                                                                      -
                                                                                                                                                                                      1252
                                                                                                                                                                                      -
                                                                                                                                                                                      1253template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      1254std::ostream& operator<<(std::ostream& os, const Blob_stream_mq_receiver_impl<Persistent_mq_handle>& val)
                                                                                                                                                                                      -
                                                                                                                                                                                      1255{
                                                                                                                                                                                      -
                                                                                                                                                                                      1256 /* Tempting to just print val.m_mq and all those goodies, which include val.absolute_name() too among others,
                                                                                                                                                                                      -
                                                                                                                                                                                      1257 * as opposed to sh_name[] only; however m_mq might get hosed during this call and become null; a lock would be
                                                                                                                                                                                      -
                                                                                                                                                                                      1258 * required; not worth it. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1259 return
                                                                                                                                                                                      -
                                                                                                                                                                                      1260 os << "SIO["
                                                                                                                                                                                      -
                                                                                                                                                                                      1261 << val.nickname() << "]@" << static_cast<const void*>(&val) << " sh_name[" << val.absolute_name() << ']';
                                                                                                                                                                                      -
                                                                                                                                                                                      1262}
                                                                                                                                                                                      -
                                                                                                                                                                                      1263
                                                                                                                                                                                      -
                                                                                                                                                                                      1264} // namespace ipc::transport::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      1241 *sync_err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      1242 *sync_sz = m_pending_err_code ? 0 : target_blob.size();
                                                                                                                                                                                      +
                                                                                                                                                                                      1243} // Blob_stream_mq_receiver_impl::read_msg()
                                                                                                                                                                                      +
                                                                                                                                                                                      1244
                                                                                                                                                                                      +
                                                                                                                                                                                      1245template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1247{
                                                                                                                                                                                      +
                                                                                                                                                                                      1248 return m_mq_max_msg_sz; // As promised in concept API: never changes in PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      1249}
                                                                                                                                                                                      +
                                                                                                                                                                                      1250
                                                                                                                                                                                      +
                                                                                                                                                                                      1251template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1253{
                                                                                                                                                                                      +
                                                                                                                                                                                      1254 return m_absolute_name;
                                                                                                                                                                                      +
                                                                                                                                                                                      1255}
                                                                                                                                                                                      +
                                                                                                                                                                                      1256
                                                                                                                                                                                      +
                                                                                                                                                                                      1257template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1259{
                                                                                                                                                                                      +
                                                                                                                                                                                      1260 return m_nickname;
                                                                                                                                                                                      +
                                                                                                                                                                                      1261}
                                                                                                                                                                                      +
                                                                                                                                                                                      1262
                                                                                                                                                                                      +
                                                                                                                                                                                      1263template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      1264std::ostream& operator<<(std::ostream& os, const Blob_stream_mq_receiver_impl<Persistent_mq_handle>& val)
                                                                                                                                                                                      +
                                                                                                                                                                                      1265{
                                                                                                                                                                                      +
                                                                                                                                                                                      1266 /* Tempting to just print val.m_mq and all those goodies, which include val.absolute_name() too among others,
                                                                                                                                                                                      +
                                                                                                                                                                                      1267 * as opposed to sh_name[] only; however m_mq might get hosed during this call and become null; a lock would be
                                                                                                                                                                                      +
                                                                                                                                                                                      1268 * required; not worth it. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1269 return
                                                                                                                                                                                      +
                                                                                                                                                                                      1270 os << "SIO["
                                                                                                                                                                                      +
                                                                                                                                                                                      1271 << val.nickname() << "]@" << static_cast<const void*>(&val) << " sh_name[" << val.absolute_name() << ']';
                                                                                                                                                                                      +
                                                                                                                                                                                      1272}
                                                                                                                                                                                      +
                                                                                                                                                                                      1273
                                                                                                                                                                                      +
                                                                                                                                                                                      1274} // namespace ipc::transport::sync_io
                                                                                                                                                                                      Internal implementation of Blob_stream_mq_base class template; and common utilities used by Blob_stre...
                                                                                                                                                                                      Control_cmd
                                                                                                                                                                                      If Blob_stream_mq_sender_impl sends an empty message, in NORMAL state Blob_stream_mq_receiver enters ...
                                                                                                                                                                                      @@ -1344,40 +1354,40 @@
                                                                                                                                                                                      A simple state machine that, assuming the opposide side of a comm pathway uses an equivalent state ma...
                                                                                                                                                                                      static constexpr proto_ver_t S_VER_UNKNOWN
                                                                                                                                                                                      A proto_ver_t value, namely a negative one, which is a reserved value indicating "unknown version"; i...
                                                                                                                                                                                      Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_receiver class template.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if start_*_ops() has been called; else logs WARNING and returns fal...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      -
                                                                                                                                                                                      ~Blob_stream_mq_receiver_impl()
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Event_wait_func m_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_receive_blob_ops()) through which we invoke the outside event loop's a...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool start_receive_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      - -
                                                                                                                                                                                      bool m_control_state
                                                                                                                                                                                      At steady-state false, becomes true if a low-level "escape" payload (empty message) was last received...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::Fine_duration m_idle_timeout
                                                                                                                                                                                      timeout from idle_timer_run() args; or zero() if not yet called.
                                                                                                                                                                                      -
                                                                                                                                                                                      Blob_stream_mq_receiver_impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_moved, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool replace_event_wait_handles(const Create_ev_wait_hndl_func &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      Error_code m_pending_err_code
                                                                                                                                                                                      The first and only MQ-hosing error condition detected when attempting to low-level-read on m_mq; or f...
                                                                                                                                                                                      -
                                                                                                                                                                                      void on_ev_idle_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the idle timer firing; if stil...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_idle_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_idle_timer to syn...
                                                                                                                                                                                      -
                                                                                                                                                                                      void read_msg(Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Begins read chain (completing it as synchronously as possible, async-completing the rest) for the nex...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Timer m_idle_timer
                                                                                                                                                                                      Timer that fires on_ev_idle_timer_fired() (which hoses the pipe with idle timeour error) and is (re)s...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< User_request > m_user_request
                                                                                                                                                                                      Null if no async_receive_blob()` is currently pending; else describes the arguments to that pending a...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool idle_timer_run(util::Fine_duration timeout)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_mq
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool async_receive_blob(const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz, Task_err_sz &&on_done_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if start_*_ops() has been called; else logs WARNING and returns fal...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      ~Blob_stream_mq_receiver_impl()
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Event_wait_func m_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_receive_blob_ops()) through which we invoke the outside event loop's a...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool start_receive_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      + +
                                                                                                                                                                                      bool m_control_state
                                                                                                                                                                                      At steady-state false, becomes true if a low-level "escape" payload (empty message) was last received...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::Fine_duration m_idle_timeout
                                                                                                                                                                                      timeout from idle_timer_run() args; or zero() if not yet called.
                                                                                                                                                                                      +
                                                                                                                                                                                      Blob_stream_mq_receiver_impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_moved, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool replace_event_wait_handles(const Create_ev_wait_hndl_func &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      Error_code m_pending_err_code
                                                                                                                                                                                      The first and only MQ-hosing error condition detected when attempting to low-level-read on m_mq; or f...
                                                                                                                                                                                      +
                                                                                                                                                                                      void on_ev_idle_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the idle timer firing; if stil...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_idle_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_idle_timer to syn...
                                                                                                                                                                                      +
                                                                                                                                                                                      void read_msg(Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Begins read chain (completing it as synchronously as possible, async-completing the rest) for the nex...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Timer m_idle_timer
                                                                                                                                                                                      Timer that fires on_ev_idle_timer_fired() (which hoses the pipe with idle timeour error) and is (re)s...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< User_request > m_user_request
                                                                                                                                                                                      Null if no async_receive_blob()` is currently pending; else describes the arguments to that pending a...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool idle_timer_run(util::Fine_duration timeout)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_mq
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool async_receive_blob(const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz, Task_err_sz &&on_done_func)
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      std::optional< flow::util::Task_engine > m_nb_task_engine
                                                                                                                                                                                      The Task_engine for m_mq_ready_*.
                                                                                                                                                                                      flow::util::Task_engine m_ev_hndl_task_engine_unused
                                                                                                                                                                                      The Task_engine for m_ev_wait_hndl_*, unless it is replaced via replace_event_wait_handles().
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::Pipe_writer > m_mq_ready_writer
                                                                                                                                                                                      Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has c...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::Pipe_writer > m_mq_ready_writer
                                                                                                                                                                                      Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has c...
                                                                                                                                                                                      -
                                                                                                                                                                                      const Shared_name & absolute_name() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_blocking_worker
                                                                                                                                                                                      Worker thread W always in one of 2 states: idle; or (when m_mq is in would-block condition) executing...
                                                                                                                                                                                      -
                                                                                                                                                                                      void not_idle()
                                                                                                                                                                                      No-ops if idle_timer_run() is not engaged; otherwise reacts to non-idleness of the in-pipe by resched...
                                                                                                                                                                                      -
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      const Shared_name & absolute_name() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_blocking_worker
                                                                                                                                                                                      Worker thread W always in one of 2 states: idle; or (when m_mq is in would-block condition) executing...
                                                                                                                                                                                      +
                                                                                                                                                                                      void not_idle()
                                                                                                                                                                                      No-ops if idle_timer_run() is not engaged; otherwise reacts to non-idleness of the in-pipe by resched...
                                                                                                                                                                                      +
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Blob_stream_mq_receiver counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      Base::Auto_closing_mq m_mq
                                                                                                                                                                                      The MQ handle adopted by the ctor, through which nb-receives and blocking-waits are executed.
                                                                                                                                                                                      +
                                                                                                                                                                                      Base::Auto_closing_mq m_mq
                                                                                                                                                                                      The MQ handle adopted by the ctor, through which nb-receives and blocking-waits are executed.
                                                                                                                                                                                      Protocol_negotiator m_protocol_negotiator
                                                                                                                                                                                      Handles the protocol negotiation at the start of the pipe and subsequently stores the result of that ...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Blob m_target_control_blob
                                                                                                                                                                                      Used only when m_control_state is true, this is where payload 2 (the Control_cmd) is placed.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::Pipe_reader > m_mq_ready_reader
                                                                                                                                                                                      Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Blob m_target_control_blob
                                                                                                                                                                                      Used only when m_control_state is true, this is where payload 2 (the Control_cmd) is placed.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::Pipe_reader > m_mq_ready_reader
                                                                                                                                                                                      Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,...
                                                                                                                                                                                      Implements sync_io::Blob_receiver concept by using an adopted Persistent_mq_handle MQ handle to an MQ...
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      Useful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flo...
                                                                                                                                                                                      @@ -1391,9 +1401,9 @@
                                                                                                                                                                                      @ S_RECEIVER_IDLE_TIMEOUT
                                                                                                                                                                                      No messages (optional auto-pings or otherwise) have been received; optionally configured timeout exce...
                                                                                                                                                                                      @ S_INVALID_ARGUMENT
                                                                                                                                                                                      User called an API with 1 or more arguments against the API spec.
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      void pipe_produce(flow::log::Logger *logger_ptr, Pipe_writer *pipe)
                                                                                                                                                                                      Writes a byte to the given pipe writer.
                                                                                                                                                                                      Definition: util.cpp:67
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      @@ -1414,7 +1424,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp.html index 2c4ae750d..333a764b1 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp_source.html index ddb6a8230..1d34ae3d4 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2blob__stream__mq__snd__impl_8hpp_source.html @@ -555,1233 +555,1234 @@
                                                                                                                                                                                      483 * (in fact that is the main utility of Persistent_mq_handle::interrupt_sends()). It makes the
                                                                                                                                                                                      484 * Persistent_mq_handle::wait_sendable() immediately return.
                                                                                                                                                                                      485 *
                                                                                                                                                                                      -
                                                                                                                                                                                      486 * If and only if #m_pending_err_code is truthy, #m_mq is null; hence the handle's system resources (and the
                                                                                                                                                                                      -
                                                                                                                                                                                      487 * handle object's memory itself) are given back at the earliest possible time.
                                                                                                                                                                                      -
                                                                                                                                                                                      488 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      490
                                                                                                                                                                                      -
                                                                                                                                                                                      491 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      492 * Equals `m_mq.max_msg_size()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      493 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      494 * It is saved in ctor, instead of invoking `m_mq->max_msg_size()` when needed, to keep the rules for when #m_mq
                                                                                                                                                                                      -
                                                                                                                                                                                      495 * is accessed simple and as described in its doc header. After all this value would never change anyway.
                                                                                                                                                                                      -
                                                                                                                                                                                      496 */
                                                                                                                                                                                      -
                                                                                                                                                                                      497 const size_t m_mq_max_msg_sz;
                                                                                                                                                                                      -
                                                                                                                                                                                      498
                                                                                                                                                                                      -
                                                                                                                                                                                      499 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      500 * Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      -
                                                                                                                                                                                      501 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. The signal byte
                                                                                                                                                                                      -
                                                                                                                                                                                      502 * is read out of #m_mq_ready_reader, making it empty again (the steady-state before the next time would-block
                                                                                                                                                                                      -
                                                                                                                                                                                      503 * occurs, and a byte is written to it making it non-empty).
                                                                                                                                                                                      -
                                                                                                                                                                                      504 *
                                                                                                                                                                                      -
                                                                                                                                                                                      505 * @see #m_mq_ready_writer.
                                                                                                                                                                                      +
                                                                                                                                                                                      486 * ### When is it null? ###
                                                                                                                                                                                      +
                                                                                                                                                                                      487 * See Blob_stream_mq_receiver_impl::m_mq doc header. The same comments apply here.
                                                                                                                                                                                      +
                                                                                                                                                                                      488 *
                                                                                                                                                                                      +
                                                                                                                                                                                      489 * Explicit reminder though: Do not `m_mq.reset()` until dtor, if not null upon exiting ctor!
                                                                                                                                                                                      +
                                                                                                                                                                                      490 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      492
                                                                                                                                                                                      +
                                                                                                                                                                                      493 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      494 * Equals `m_mq.max_msg_size()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      495 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      496 * It is saved in ctor, instead of invoking `m_mq->max_msg_size()` when needed, to keep the rules for when #m_mq
                                                                                                                                                                                      +
                                                                                                                                                                                      497 * is accessed simple and as described in its doc header. After all this value would never change anyway.
                                                                                                                                                                                      +
                                                                                                                                                                                      498 */
                                                                                                                                                                                      +
                                                                                                                                                                                      499 const size_t m_mq_max_msg_sz;
                                                                                                                                                                                      +
                                                                                                                                                                                      500
                                                                                                                                                                                      +
                                                                                                                                                                                      501 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      502 * Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      +
                                                                                                                                                                                      503 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. The signal byte
                                                                                                                                                                                      +
                                                                                                                                                                                      504 * is read out of #m_mq_ready_reader, making it empty again (the steady-state before the next time would-block
                                                                                                                                                                                      +
                                                                                                                                                                                      505 * occurs, and a byte is written to it making it non-empty).
                                                                                                                                                                                      506 *
                                                                                                                                                                                      -
                                                                                                                                                                                      507 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      508 */
                                                                                                                                                                                      -
                                                                                                                                                                                      509 std::optional<util::Pipe_reader> m_mq_ready_reader;
                                                                                                                                                                                      -
                                                                                                                                                                                      510
                                                                                                                                                                                      -
                                                                                                                                                                                      511 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      512 * Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      -
                                                                                                                                                                                      513 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. A signal byte
                                                                                                                                                                                      -
                                                                                                                                                                                      514 * is written to #m_mq_ready_writer, making it non-empty.
                                                                                                                                                                                      -
                                                                                                                                                                                      515 *
                                                                                                                                                                                      -
                                                                                                                                                                                      516 * @see #m_mq_ready_reader.
                                                                                                                                                                                      +
                                                                                                                                                                                      507 * @see #m_mq_ready_writer.
                                                                                                                                                                                      +
                                                                                                                                                                                      508 *
                                                                                                                                                                                      +
                                                                                                                                                                                      509 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      510 */
                                                                                                                                                                                      +
                                                                                                                                                                                      511 std::optional<util::Pipe_reader> m_mq_ready_reader;
                                                                                                                                                                                      +
                                                                                                                                                                                      512
                                                                                                                                                                                      +
                                                                                                                                                                                      513 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      514 * Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has completed,
                                                                                                                                                                                      +
                                                                                                                                                                                      515 * meaning would-block has cleared, and therefore thread U can attempt to nb-transmit again. A signal byte
                                                                                                                                                                                      +
                                                                                                                                                                                      516 * is written to #m_mq_ready_writer, making it non-empty.
                                                                                                                                                                                      517 *
                                                                                                                                                                                      -
                                                                                                                                                                                      518 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      519 */
                                                                                                                                                                                      -
                                                                                                                                                                                      520 std::optional<util::Pipe_writer> m_mq_ready_writer;
                                                                                                                                                                                      -
                                                                                                                                                                                      521
                                                                                                                                                                                      -
                                                                                                                                                                                      522 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      523 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      524 * used to wait on events from) #m_mq_ready_reader; or if #m_mq can be watched directly (known at compile-time)
                                                                                                                                                                                      -
                                                                                                                                                                                      525 * then as `m_mq` itself. Its name suggests it's watching #m_mq (for transmissibility),
                                                                                                                                                                                      -
                                                                                                                                                                                      526 * and that's true: In the latter case one directly watches it for transmissibility in the proper direction;
                                                                                                                                                                                      -
                                                                                                                                                                                      527 * in the former case Persistent_mq_handle lacks a #Native_handle to watch directly -- but we use the
                                                                                                                                                                                      -
                                                                                                                                                                                      528 * `m_mq_ready_*` pipe and a background thread to simulate it having one. Thus in that case #m_mq_ready_reader FD =
                                                                                                                                                                                      -
                                                                                                                                                                                      529 * this FD, and it being transmissible = MQ being transmissible.
                                                                                                                                                                                      -
                                                                                                                                                                                      530 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      532
                                                                                                                                                                                      -
                                                                                                                                                                                      533 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      534 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      -
                                                                                                                                                                                      535 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      -
                                                                                                                                                                                      536 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the auto-ping timer.
                                                                                                                                                                                      -
                                                                                                                                                                                      537 *
                                                                                                                                                                                      -
                                                                                                                                                                                      538 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      -
                                                                                                                                                                                      539 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      541
                                                                                                                                                                                      -
                                                                                                                                                                                      542 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      543 * Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed by
                                                                                                                                                                                      -
                                                                                                                                                                                      544 * the payloads that should be written after that completes, in order.
                                                                                                                                                                                      -
                                                                                                                                                                                      545 *
                                                                                                                                                                                      -
                                                                                                                                                                                      546 * Only touched if would-block is encountered in... well, see Snd_low_lvl_payload doc header (et al).
                                                                                                                                                                                      -
                                                                                                                                                                                      547 */
                                                                                                                                                                                      -
                                                                                                                                                                                      548 std::queue<typename Snd_low_lvl_payload::Ptr> m_pending_payloads_q;
                                                                                                                                                                                      -
                                                                                                                                                                                      549
                                                                                                                                                                                      -
                                                                                                                                                                                      550 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      551 * The first and only connection-hosing error condition detected when attempting to low-level-write on
                                                                                                                                                                                      -
                                                                                                                                                                                      552 * #m_mq; or falsy if no such error has yet been detected. Among possible other uses, it is returned
                                                                                                                                                                                      -
                                                                                                                                                                                      553 * by send_blob() and the completion handler of async_end_sending().
                                                                                                                                                                                      -
                                                                                                                                                                                      554 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      556
                                                                                                                                                                                      -
                                                                                                                                                                                      557 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      558 * `false` at start; set to `true` forever on the first `*end_sending()` invocation;
                                                                                                                                                                                      -
                                                                                                                                                                                      559 * `true` will prevent any subsequent send_blob() calls from proceeding.
                                                                                                                                                                                      -
                                                                                                                                                                                      560 * See class doc header impl section for design discussion.
                                                                                                                                                                                      -
                                                                                                                                                                                      561 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      563
                                                                                                                                                                                      -
                                                                                                                                                                                      564 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      565 * Function passed to async_end_sending(), if it returned `true` and was unable to synchronously flush everything
                                                                                                                                                                                      -
                                                                                                                                                                                      566 * including the graceful-close itself (synchronously detecting new or previous pipe-hosing error *does* entail
                                                                                                                                                                                      -
                                                                                                                                                                                      567 * flushing everything); otherwise `.empty()`. It's the completion handler of that graceful-close-send API.
                                                                                                                                                                                      -
                                                                                                                                                                                      568 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      570
                                                                                                                                                                                      -
                                                                                                                                                                                      571 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      572 * Equals `zero()` before auto_ping(); immutably equals `period` (auto_ping() arg) subsequently to that first
                                                                                                                                                                                      -
                                                                                                                                                                                      573 * successful call (if any).
                                                                                                                                                                                      -
                                                                                                                                                                                      574 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      576
                                                                                                                                                                                      -
                                                                                                                                                                                      577 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      578 * Timer that fires on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always
                                                                                                                                                                                      -
                                                                                                                                                                                      579 * scheduled to fire #m_auto_ping_period after the last send (send_blob(), auto_ping(),
                                                                                                                                                                                      -
                                                                                                                                                                                      580 * on_ev_auto_ping_now_timer_fired() itself). Each of these calls indicates a send occurs, hence
                                                                                                                                                                                      -
                                                                                                                                                                                      581 * at worst the pipe will be idle (in need of auto-ping) in #m_auto_ping_period. Note that
                                                                                                                                                                                      -
                                                                                                                                                                                      582 * `*end_sending()`, while also sending bytes, does not schedule #m_auto_ping_timer, as `*end_sending()`
                                                                                                                                                                                      -
                                                                                                                                                                                      583 * closes the conceptual pipe, and there is no need for auto-pinging (see Blob_receiver::idle_timer_run()).
                                                                                                                                                                                      -
                                                                                                                                                                                      584 *
                                                                                                                                                                                      -
                                                                                                                                                                                      585 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      -
                                                                                                                                                                                      586 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      587 */
                                                                                                                                                                                      -
                                                                                                                                                                                      588 flow::util::Timer m_auto_ping_timer;
                                                                                                                                                                                      -
                                                                                                                                                                                      589
                                                                                                                                                                                      -
                                                                                                                                                                                      590 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      591 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_auto_ping_timer
                                                                                                                                                                                      -
                                                                                                                                                                                      592 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      -
                                                                                                                                                                                      593 *
                                                                                                                                                                                      -
                                                                                                                                                                                      594 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      595 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      597
                                                                                                                                                                                      -
                                                                                                                                                                                      598 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      599 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      600 * used to wait on events from) #m_auto_ping_timer_fired_peer.
                                                                                                                                                                                      -
                                                                                                                                                                                      601 *
                                                                                                                                                                                      -
                                                                                                                                                                                      602 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      603 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      605
                                                                                                                                                                                      -
                                                                                                                                                                                      606 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      607 * Function (set forever in start_send_blob_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      -
                                                                                                                                                                                      608 * async-wait facility for descriptors/events to our ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      -
                                                                                                                                                                                      609 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      -
                                                                                                                                                                                      610 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      612
                                                                                                                                                                                      -
                                                                                                                                                                                      613 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      614 * Worker thread W always in one of 2 states: idle; or (when #m_mq is in would-block condition) executing an
                                                                                                                                                                                      -
                                                                                                                                                                                      615 * indefinite, interrupting blocking wait for transmissibility of #m_mq. When thread U wants to send-out
                                                                                                                                                                                      -
                                                                                                                                                                                      616 * a payload but gets would-block, it issues the wait on this thread W and a `sync_io`-pattern async-wait
                                                                                                                                                                                      -
                                                                                                                                                                                      617 * for #m_ev_wait_hndl_mq; once that wait completes in thread W, it writes a byte to an internal IPC-pipe.
                                                                                                                                                                                      -
                                                                                                                                                                                      618 * #m_ev_wait_hndl_mq becomes readable, the outside event loop lets `*this` know, which completes the async-wait.
                                                                                                                                                                                      -
                                                                                                                                                                                      619 *
                                                                                                                                                                                      -
                                                                                                                                                                                      620 * In dtor we stop thread W, including using Persistent_mq_handle::interrupt_sends() to abort the indefinite
                                                                                                                                                                                      -
                                                                                                                                                                                      621 * wait in thread W, as it will no longer be used once `*this` is destroyed.
                                                                                                                                                                                      -
                                                                                                                                                                                      622 *
                                                                                                                                                                                      -
                                                                                                                                                                                      623 * Ordering: If we want to let things get auto-destroyed without explicit `m_blocking_worker->stop()` or
                                                                                                                                                                                      -
                                                                                                                                                                                      624 * nullifying wrappers in an explicit order, then this must be declared after #m_mq. Otherwise code may still be
                                                                                                                                                                                      -
                                                                                                                                                                                      625 * finishing up in thread W when #m_mq is destroyed already. Anyway -- as long as this is destroyed or `.stop()`ed
                                                                                                                                                                                      -
                                                                                                                                                                                      626 * before #m_mq is gone, you're cool.
                                                                                                                                                                                      -
                                                                                                                                                                                      627 *
                                                                                                                                                                                      -
                                                                                                                                                                                      628 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      -
                                                                                                                                                                                      629 */
                                                                                                                                                                                      -
                                                                                                                                                                                      630 std::optional<flow::async::Single_thread_task_loop> m_blocking_worker;
                                                                                                                                                                                      -
                                                                                                                                                                                      631}; // class Blob_stream_mq_sender_impl
                                                                                                                                                                                      -
                                                                                                                                                                                      632
                                                                                                                                                                                      -
                                                                                                                                                                                      633// Free functions: in *_fwd.hpp.
                                                                                                                                                                                      +
                                                                                                                                                                                      518 * @see #m_mq_ready_reader.
                                                                                                                                                                                      +
                                                                                                                                                                                      519 *
                                                                                                                                                                                      +
                                                                                                                                                                                      520 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      521 */
                                                                                                                                                                                      +
                                                                                                                                                                                      522 std::optional<util::Pipe_writer> m_mq_ready_writer;
                                                                                                                                                                                      +
                                                                                                                                                                                      523
                                                                                                                                                                                      +
                                                                                                                                                                                      524 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      525 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      526 * used to wait on events from) #m_mq_ready_reader; or if #m_mq can be watched directly (known at compile-time)
                                                                                                                                                                                      +
                                                                                                                                                                                      527 * then as `m_mq` itself. Its name suggests it's watching #m_mq (for transmissibility),
                                                                                                                                                                                      +
                                                                                                                                                                                      528 * and that's true: In the latter case one directly watches it for transmissibility in the proper direction;
                                                                                                                                                                                      +
                                                                                                                                                                                      529 * in the former case Persistent_mq_handle lacks a #Native_handle to watch directly -- but we use the
                                                                                                                                                                                      +
                                                                                                                                                                                      530 * `m_mq_ready_*` pipe and a background thread to simulate it having one. Thus in that case #m_mq_ready_reader FD =
                                                                                                                                                                                      +
                                                                                                                                                                                      531 * this FD, and it being transmissible = MQ being transmissible.
                                                                                                                                                                                      +
                                                                                                                                                                                      532 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      534
                                                                                                                                                                                      +
                                                                                                                                                                                      535 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      536 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      +
                                                                                                                                                                                      537 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      +
                                                                                                                                                                                      538 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the auto-ping timer.
                                                                                                                                                                                      +
                                                                                                                                                                                      539 *
                                                                                                                                                                                      +
                                                                                                                                                                                      540 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      +
                                                                                                                                                                                      541 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      543
                                                                                                                                                                                      +
                                                                                                                                                                                      544 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      545 * Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed by
                                                                                                                                                                                      +
                                                                                                                                                                                      546 * the payloads that should be written after that completes, in order.
                                                                                                                                                                                      +
                                                                                                                                                                                      547 *
                                                                                                                                                                                      +
                                                                                                                                                                                      548 * Only touched if would-block is encountered in... well, see Snd_low_lvl_payload doc header (et al).
                                                                                                                                                                                      +
                                                                                                                                                                                      549 */
                                                                                                                                                                                      +
                                                                                                                                                                                      550 std::queue<typename Snd_low_lvl_payload::Ptr> m_pending_payloads_q;
                                                                                                                                                                                      +
                                                                                                                                                                                      551
                                                                                                                                                                                      +
                                                                                                                                                                                      552 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      553 * The first and only connection-hosing error condition detected when attempting to low-level-write on
                                                                                                                                                                                      +
                                                                                                                                                                                      554 * #m_mq; or falsy if no such error has yet been detected. Among possible other uses, it is returned
                                                                                                                                                                                      +
                                                                                                                                                                                      555 * by send_blob() and the completion handler of async_end_sending().
                                                                                                                                                                                      +
                                                                                                                                                                                      556 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      558
                                                                                                                                                                                      +
                                                                                                                                                                                      559 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      560 * `false` at start; set to `true` forever on the first `*end_sending()` invocation;
                                                                                                                                                                                      +
                                                                                                                                                                                      561 * `true` will prevent any subsequent send_blob() calls from proceeding.
                                                                                                                                                                                      +
                                                                                                                                                                                      562 * See class doc header impl section for design discussion.
                                                                                                                                                                                      +
                                                                                                                                                                                      563 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      565
                                                                                                                                                                                      +
                                                                                                                                                                                      566 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      567 * Function passed to async_end_sending(), if it returned `true` and was unable to synchronously flush everything
                                                                                                                                                                                      +
                                                                                                                                                                                      568 * including the graceful-close itself (synchronously detecting new or previous pipe-hosing error *does* entail
                                                                                                                                                                                      +
                                                                                                                                                                                      569 * flushing everything); otherwise `.empty()`. It's the completion handler of that graceful-close-send API.
                                                                                                                                                                                      +
                                                                                                                                                                                      570 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      572
                                                                                                                                                                                      +
                                                                                                                                                                                      573 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      574 * Equals `zero()` before auto_ping(); immutably equals `period` (auto_ping() arg) subsequently to that first
                                                                                                                                                                                      +
                                                                                                                                                                                      575 * successful call (if any).
                                                                                                                                                                                      +
                                                                                                                                                                                      576 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      578
                                                                                                                                                                                      +
                                                                                                                                                                                      579 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      580 * Timer that fires on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always
                                                                                                                                                                                      +
                                                                                                                                                                                      581 * scheduled to fire #m_auto_ping_period after the last send (send_blob(), auto_ping(),
                                                                                                                                                                                      +
                                                                                                                                                                                      582 * on_ev_auto_ping_now_timer_fired() itself). Each of these calls indicates a send occurs, hence
                                                                                                                                                                                      +
                                                                                                                                                                                      583 * at worst the pipe will be idle (in need of auto-ping) in #m_auto_ping_period. Note that
                                                                                                                                                                                      +
                                                                                                                                                                                      584 * `*end_sending()`, while also sending bytes, does not schedule #m_auto_ping_timer, as `*end_sending()`
                                                                                                                                                                                      +
                                                                                                                                                                                      585 * closes the conceptual pipe, and there is no need for auto-pinging (see Blob_receiver::idle_timer_run()).
                                                                                                                                                                                      +
                                                                                                                                                                                      586 *
                                                                                                                                                                                      +
                                                                                                                                                                                      587 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      +
                                                                                                                                                                                      588 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      589 */
                                                                                                                                                                                      +
                                                                                                                                                                                      590 flow::util::Timer m_auto_ping_timer;
                                                                                                                                                                                      +
                                                                                                                                                                                      591
                                                                                                                                                                                      +
                                                                                                                                                                                      592 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      593 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_auto_ping_timer
                                                                                                                                                                                      +
                                                                                                                                                                                      594 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      +
                                                                                                                                                                                      595 *
                                                                                                                                                                                      +
                                                                                                                                                                                      596 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      597 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      599
                                                                                                                                                                                      +
                                                                                                                                                                                      600 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      601 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      602 * used to wait on events from) #m_auto_ping_timer_fired_peer.
                                                                                                                                                                                      +
                                                                                                                                                                                      603 *
                                                                                                                                                                                      +
                                                                                                                                                                                      604 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      605 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      607
                                                                                                                                                                                      +
                                                                                                                                                                                      608 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      609 * Function (set forever in start_send_blob_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      +
                                                                                                                                                                                      610 * async-wait facility for descriptors/events to our ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      +
                                                                                                                                                                                      611 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      +
                                                                                                                                                                                      612 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      614
                                                                                                                                                                                      +
                                                                                                                                                                                      615 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      616 * Worker thread W always in one of 2 states: idle; or (when #m_mq is in would-block condition) executing an
                                                                                                                                                                                      +
                                                                                                                                                                                      617 * indefinite, interrupting blocking wait for transmissibility of #m_mq. When thread U wants to send-out
                                                                                                                                                                                      +
                                                                                                                                                                                      618 * a payload but gets would-block, it issues the wait on this thread W and a `sync_io`-pattern async-wait
                                                                                                                                                                                      +
                                                                                                                                                                                      619 * for #m_ev_wait_hndl_mq; once that wait completes in thread W, it writes a byte to an internal IPC-pipe.
                                                                                                                                                                                      +
                                                                                                                                                                                      620 * #m_ev_wait_hndl_mq becomes readable, the outside event loop lets `*this` know, which completes the async-wait.
                                                                                                                                                                                      +
                                                                                                                                                                                      621 *
                                                                                                                                                                                      +
                                                                                                                                                                                      622 * In dtor we stop thread W, including using Persistent_mq_handle::interrupt_sends() to abort the indefinite
                                                                                                                                                                                      +
                                                                                                                                                                                      623 * wait in thread W, as it will no longer be used once `*this` is destroyed.
                                                                                                                                                                                      +
                                                                                                                                                                                      624 *
                                                                                                                                                                                      +
                                                                                                                                                                                      625 * Ordering: If we want to let things get auto-destroyed without explicit `m_blocking_worker->stop()` or
                                                                                                                                                                                      +
                                                                                                                                                                                      626 * nullifying wrappers in an explicit order, then this must be declared after #m_mq. Otherwise code may still be
                                                                                                                                                                                      +
                                                                                                                                                                                      627 * finishing up in thread W when #m_mq is destroyed already. Anyway -- as long as this is destroyed or `.stop()`ed
                                                                                                                                                                                      +
                                                                                                                                                                                      628 * before #m_mq is gone, you're cool.
                                                                                                                                                                                      +
                                                                                                                                                                                      629 *
                                                                                                                                                                                      +
                                                                                                                                                                                      630 * Never touched if Persistent_mq_handle::S_HAS_NATIVE_HANDLE.
                                                                                                                                                                                      +
                                                                                                                                                                                      631 */
                                                                                                                                                                                      +
                                                                                                                                                                                      632 std::optional<flow::async::Single_thread_task_loop> m_blocking_worker;
                                                                                                                                                                                      +
                                                                                                                                                                                      633}; // class Blob_stream_mq_sender_impl
                                                                                                                                                                                      634
                                                                                                                                                                                      -
                                                                                                                                                                                      635// Template implementations.
                                                                                                                                                                                      +
                                                                                                                                                                                      635// Free functions: in *_fwd.hpp.
                                                                                                                                                                                      636
                                                                                                                                                                                      -
                                                                                                                                                                                      637template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      639 (flow::log::Logger* logger_ptr, util::String_view nickname_str, Mq&& mq,
                                                                                                                                                                                      -
                                                                                                                                                                                      640 Error_code* err_code) :
                                                                                                                                                                                      -
                                                                                                                                                                                      641
                                                                                                                                                                                      -
                                                                                                                                                                                      642 flow::log::Log_context(logger_ptr, Log_component::S_TRANSPORT),
                                                                                                                                                                                      -
                                                                                                                                                                                      643 m_nickname(nickname_str),
                                                                                                                                                                                      -
                                                                                                                                                                                      644 m_protocol_negotiator(get_logger(), nickname(),
                                                                                                                                                                                      -
                                                                                                                                                                                      645 1, 1), // Initial protocol! @todo Magic-number `const`(s), particularly if/when v2 exists.
                                                                                                                                                                                      -
                                                                                                                                                                                      646 m_absolute_name(mq.absolute_name()),
                                                                                                                                                                                      -
                                                                                                                                                                                      647 // m_mq null for now but is set up below.
                                                                                                                                                                                      -
                                                                                                                                                                                      648 m_mq_max_msg_sz(mq.max_msg_size()), // Just grab this now though.
                                                                                                                                                                                      -
                                                                                                                                                                                      649 m_ev_wait_hndl_mq(m_ev_hndl_task_engine_unused), // This needs to be .assign()ed still.
                                                                                                                                                                                      -
                                                                                                                                                                                      650 m_timer_worker(get_logger(), flow::util::ostream_op_string(*this)),
                                                                                                                                                                                      -
                                                                                                                                                                                      651 m_finished(false),
                                                                                                                                                                                      -
                                                                                                                                                                                      652 m_auto_ping_period(util::Fine_duration::zero()), // auto_ping() not yet called.
                                                                                                                                                                                      -
                                                                                                                                                                                      653 m_auto_ping_timer(m_timer_worker.create_timer()), // Inactive timer (auto_ping() not yet called).
                                                                                                                                                                                      -
                                                                                                                                                                                      654 /* If it does become active, we'll use this readable-pipe-peer to get informed by m_timer_worker that
                                                                                                                                                                                      -
                                                                                                                                                                                      655 * m_auto_ping_timer has fired. That way we can use m_ev_wait_func() mechanism to have user
                                                                                                                                                                                      -
                                                                                                                                                                                      656 * ferry timer firings to us. */
                                                                                                                                                                                      -
                                                                                                                                                                                      657 m_auto_ping_timer_fired_peer(m_timer_worker.create_timer_signal_pipe()),
                                                                                                                                                                                      -
                                                                                                                                                                                      658 // And this is its watchee mirror for outside event loop (sync_io pattern).
                                                                                                                                                                                      -
                                                                                                                                                                                      659 m_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      -
                                                                                                                                                                                      660 (m_ev_hndl_task_engine_unused,
                                                                                                                                                                                      -
                                                                                                                                                                                      661 Native_handle(m_auto_ping_timer_fired_peer->native_handle()))
                                                                                                                                                                                      -
                                                                                                                                                                                      662{
                                                                                                                                                                                      -
                                                                                                                                                                                      663 using flow::error::Runtime_error;
                                                                                                                                                                                      -
                                                                                                                                                                                      664 using flow::util::ostream_op_string;
                                                                                                                                                                                      -
                                                                                                                                                                                      665 using boost::asio::connect_pipe;
                                                                                                                                                                                      -
                                                                                                                                                                                      666
                                                                                                                                                                                      -
                                                                                                                                                                                      667 auto& sys_err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      637// Template implementations.
                                                                                                                                                                                      +
                                                                                                                                                                                      638
                                                                                                                                                                                      +
                                                                                                                                                                                      639template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      641 (flow::log::Logger* logger_ptr, util::String_view nickname_str, Mq&& mq,
                                                                                                                                                                                      +
                                                                                                                                                                                      642 Error_code* err_code) :
                                                                                                                                                                                      +
                                                                                                                                                                                      643
                                                                                                                                                                                      +
                                                                                                                                                                                      644 flow::log::Log_context(logger_ptr, Log_component::S_TRANSPORT),
                                                                                                                                                                                      +
                                                                                                                                                                                      645 m_nickname(nickname_str),
                                                                                                                                                                                      +
                                                                                                                                                                                      646 m_protocol_negotiator(get_logger(), nickname(),
                                                                                                                                                                                      +
                                                                                                                                                                                      647 1, 1), // Initial protocol! @todo Magic-number `const`(s), particularly if/when v2 exists.
                                                                                                                                                                                      +
                                                                                                                                                                                      648 m_absolute_name(mq.absolute_name()),
                                                                                                                                                                                      +
                                                                                                                                                                                      649 // m_mq null for now but is set up below.
                                                                                                                                                                                      +
                                                                                                                                                                                      650 m_mq_max_msg_sz(mq.max_msg_size()), // Just grab this now though.
                                                                                                                                                                                      +
                                                                                                                                                                                      651 m_ev_wait_hndl_mq(m_ev_hndl_task_engine_unused), // This needs to be .assign()ed still.
                                                                                                                                                                                      +
                                                                                                                                                                                      652 m_timer_worker(get_logger(), flow::util::ostream_op_string(*this)),
                                                                                                                                                                                      +
                                                                                                                                                                                      653 m_finished(false),
                                                                                                                                                                                      +
                                                                                                                                                                                      654 m_auto_ping_period(util::Fine_duration::zero()), // auto_ping() not yet called.
                                                                                                                                                                                      +
                                                                                                                                                                                      655 m_auto_ping_timer(m_timer_worker.create_timer()), // Inactive timer (auto_ping() not yet called).
                                                                                                                                                                                      +
                                                                                                                                                                                      656 /* If it does become active, we'll use this readable-pipe-peer to get informed by m_timer_worker that
                                                                                                                                                                                      +
                                                                                                                                                                                      657 * m_auto_ping_timer has fired. That way we can use m_ev_wait_func() mechanism to have user
                                                                                                                                                                                      +
                                                                                                                                                                                      658 * ferry timer firings to us. */
                                                                                                                                                                                      +
                                                                                                                                                                                      659 m_auto_ping_timer_fired_peer(m_timer_worker.create_timer_signal_pipe()),
                                                                                                                                                                                      +
                                                                                                                                                                                      660 // And this is its watchee mirror for outside event loop (sync_io pattern).
                                                                                                                                                                                      +
                                                                                                                                                                                      661 m_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      +
                                                                                                                                                                                      662 (m_ev_hndl_task_engine_unused,
                                                                                                                                                                                      +
                                                                                                                                                                                      663 Native_handle(m_auto_ping_timer_fired_peer->native_handle()))
                                                                                                                                                                                      +
                                                                                                                                                                                      664{
                                                                                                                                                                                      +
                                                                                                                                                                                      665 using flow::error::Runtime_error;
                                                                                                                                                                                      +
                                                                                                                                                                                      666 using flow::util::ostream_op_string;
                                                                                                                                                                                      +
                                                                                                                                                                                      667 using boost::asio::connect_pipe;
                                                                                                                                                                                      668
                                                                                                                                                                                      -
                                                                                                                                                                                      669 /* Read class doc header (particularly regarding lifetimes of things); then return here. Summarizing:
                                                                                                                                                                                      -
                                                                                                                                                                                      670 *
                                                                                                                                                                                      -
                                                                                                                                                                                      671 * We've promised to enforce certain semantics, namely that a given MQ can be accessed, ever, by
                                                                                                                                                                                      -
                                                                                                                                                                                      672 * at most 1 Blob_stream_mq_sender (and 1 _receiver) -- across all processes, not just this one.
                                                                                                                                                                                      -
                                                                                                                                                                                      673 * All that is involved in setting up m_mq (which is null at the moment) and related/derived items
                                                                                                                                                                                      -
                                                                                                                                                                                      674 * mentioned as not-yet-set-up above. */
                                                                                                                                                                                      -
                                                                                                                                                                                      675 m_mq = Base::ensure_unique_peer(get_logger(),
                                                                                                                                                                                      -
                                                                                                                                                                                      676 std::move(mq), true /* sender */, &sys_err_code); // Does not throw.
                                                                                                                                                                                      -
                                                                                                                                                                                      677 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      -
                                                                                                                                                                                      678 // On error *err_code will be truthy, and it will have returned null.
                                                                                                                                                                                      -
                                                                                                                                                                                      679
                                                                                                                                                                                      -
                                                                                                                                                                                      680 /* Home free w/r/t m_mq. No longer need to worry about anything but *this and other-side single _receiver.
                                                                                                                                                                                      -
                                                                                                                                                                                      681 * Not even dtor has to worry (due to that deleter up there). */
                                                                                                                                                                                      -
                                                                                                                                                                                      682
                                                                                                                                                                                      -
                                                                                                                                                                                      683 if (!sys_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      684 {
                                                                                                                                                                                      -
                                                                                                                                                                                      685 /* So that leaves the setup of, ultimately, m_ev_wait_hndl_mq -- which outside event loop, via sync_io pattern,
                                                                                                                                                                                      -
                                                                                                                                                                                      686 * will async-wait-on for us to detect m_mq transmissibility. As noted in some data member doc headers, et al,
                                                                                                                                                                                      -
                                                                                                                                                                                      687 * we can't watch m_mq through an FD directly; but we can simulate it by running the waits in thread W
                                                                                                                                                                                      -
                                                                                                                                                                                      688 * (which is why it exists) and then simulate the active FD using a pipe whose read end m_mq_ready_reader
                                                                                                                                                                                      -
                                                                                                                                                                                      689 * exports the sync_io-watched FD.
                                                                                                                                                                                      -
                                                                                                                                                                                      690 *
                                                                                                                                                                                      -
                                                                                                                                                                                      691 * However! Delightfully if the particular Mq has Mq::native_handle(), then we *can* watch m_mq
                                                                                                                                                                                      -
                                                                                                                                                                                      692 * through an FD. This is known at compile-time, so in that case we can skip the above stuff entirely. */
                                                                                                                                                                                      -
                                                                                                                                                                                      693 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      694 {
                                                                                                                                                                                      -
                                                                                                                                                                                      695 // Load up the FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      -
                                                                                                                                                                                      696 m_ev_wait_hndl_mq.assign(m_mq->native_handle());
                                                                                                                                                                                      -
                                                                                                                                                                                      697 } // if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      698 else // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      699 {
                                                                                                                                                                                      -
                                                                                                                                                                                      700 m_nb_task_engine.emplace();
                                                                                                                                                                                      -
                                                                                                                                                                                      701 m_mq_ready_reader.emplace(*m_nb_task_engine); // No handle inside but will be set-up soon below.
                                                                                                                                                                                      -
                                                                                                                                                                                      702 m_mq_ready_writer.emplace(*m_nb_task_engine); // Ditto.
                                                                                                                                                                                      -
                                                                                                                                                                                      703
                                                                                                                                                                                      -
                                                                                                                                                                                      704 // Start thread W, for when we (and if) we need to use it to async-wait for transmissibility.
                                                                                                                                                                                      -
                                                                                                                                                                                      705 m_blocking_worker.emplace(get_logger(),
                                                                                                                                                                                      -
                                                                                                                                                                                      706 ostream_op_string("mq_snd-", nickname())); // Thread W started just below.
                                                                                                                                                                                      -
                                                                                                                                                                                      707 m_blocking_worker->start();
                                                                                                                                                                                      -
                                                                                                                                                                                      708
                                                                                                                                                                                      -
                                                                                                                                                                                      709 // For now we just set up the IPC-pipe and the sync_io-watched FD mirror. First things first... err, second....
                                                                                                                                                                                      -
                                                                                                                                                                                      710 connect_pipe(*m_mq_ready_reader, *m_mq_ready_writer, sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      711 if (sys_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      712 {
                                                                                                                                                                                      -
                                                                                                                                                                                      713 FLOW_LOG_WARNING
                                                                                                                                                                                      -
                                                                                                                                                                                      714 ("Blob_stream_mq_sender [" << *this << "]: Constructing: connect-pipe failed. Details follow.");
                                                                                                                                                                                      -
                                                                                                                                                                                      715 FLOW_ERROR_SYS_ERROR_LOG_WARNING();
                                                                                                                                                                                      -
                                                                                                                                                                                      716
                                                                                                                                                                                      -
                                                                                                                                                                                      717 m_mq.reset(); // Undo this.
                                                                                                                                                                                      -
                                                                                                                                                                                      718 }
                                                                                                                                                                                      -
                                                                                                                                                                                      719 else
                                                                                                                                                                                      -
                                                                                                                                                                                      720 {
                                                                                                                                                                                      -
                                                                                                                                                                                      721 // Lastly load up the read-end FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      - -
                                                                                                                                                                                      723 }
                                                                                                                                                                                      -
                                                                                                                                                                                      724 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      725 } // if (!sys_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      -
                                                                                                                                                                                      726
                                                                                                                                                                                      -
                                                                                                                                                                                      727 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      669 auto& sys_err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      670
                                                                                                                                                                                      +
                                                                                                                                                                                      671 /* Read class doc header (particularly regarding lifetimes of things); then return here. Summarizing:
                                                                                                                                                                                      +
                                                                                                                                                                                      672 *
                                                                                                                                                                                      +
                                                                                                                                                                                      673 * We've promised to enforce certain semantics, namely that a given MQ can be accessed, ever, by
                                                                                                                                                                                      +
                                                                                                                                                                                      674 * at most 1 Blob_stream_mq_sender (and 1 _receiver) -- across all processes, not just this one.
                                                                                                                                                                                      +
                                                                                                                                                                                      675 * All that is involved in setting up m_mq (which is null at the moment) and related/derived items
                                                                                                                                                                                      +
                                                                                                                                                                                      676 * mentioned as not-yet-set-up above. */
                                                                                                                                                                                      +
                                                                                                                                                                                      677 m_mq = Base::ensure_unique_peer(get_logger(),
                                                                                                                                                                                      +
                                                                                                                                                                                      678 std::move(mq), true /* sender */, &sys_err_code); // Does not throw.
                                                                                                                                                                                      +
                                                                                                                                                                                      679 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      680 // On error *err_code will be truthy, and it will have returned null.
                                                                                                                                                                                      +
                                                                                                                                                                                      681
                                                                                                                                                                                      +
                                                                                                                                                                                      682 /* Home free w/r/t m_mq. No longer need to worry about anything but *this and other-side single _receiver.
                                                                                                                                                                                      +
                                                                                                                                                                                      683 * Not even dtor has to worry (due to that deleter up there). */
                                                                                                                                                                                      +
                                                                                                                                                                                      684
                                                                                                                                                                                      +
                                                                                                                                                                                      685 if (!sys_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      686 {
                                                                                                                                                                                      +
                                                                                                                                                                                      687 /* So that leaves the setup of, ultimately, m_ev_wait_hndl_mq -- which outside event loop, via sync_io pattern,
                                                                                                                                                                                      +
                                                                                                                                                                                      688 * will async-wait-on for us to detect m_mq transmissibility. As noted in some data member doc headers, et al,
                                                                                                                                                                                      +
                                                                                                                                                                                      689 * we can't watch m_mq through an FD directly; but we can simulate it by running the waits in thread W
                                                                                                                                                                                      +
                                                                                                                                                                                      690 * (which is why it exists) and then simulate the active FD using a pipe whose read end m_mq_ready_reader
                                                                                                                                                                                      +
                                                                                                                                                                                      691 * exports the sync_io-watched FD.
                                                                                                                                                                                      +
                                                                                                                                                                                      692 *
                                                                                                                                                                                      +
                                                                                                                                                                                      693 * However! Delightfully if the particular Mq has Mq::native_handle(), then we *can* watch m_mq
                                                                                                                                                                                      +
                                                                                                                                                                                      694 * through an FD. This is known at compile-time, so in that case we can skip the above stuff entirely. */
                                                                                                                                                                                      +
                                                                                                                                                                                      695 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      696 {
                                                                                                                                                                                      +
                                                                                                                                                                                      697 // Load up the FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      +
                                                                                                                                                                                      698 m_ev_wait_hndl_mq.assign(m_mq->native_handle());
                                                                                                                                                                                      +
                                                                                                                                                                                      699 } // if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      700 else // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      701 {
                                                                                                                                                                                      +
                                                                                                                                                                                      702 m_nb_task_engine.emplace();
                                                                                                                                                                                      +
                                                                                                                                                                                      703 m_mq_ready_reader.emplace(*m_nb_task_engine); // No handle inside but will be set-up soon below.
                                                                                                                                                                                      +
                                                                                                                                                                                      704 m_mq_ready_writer.emplace(*m_nb_task_engine); // Ditto.
                                                                                                                                                                                      +
                                                                                                                                                                                      705
                                                                                                                                                                                      +
                                                                                                                                                                                      706 // Start thread W, for when we (and if) we need to use it to async-wait for transmissibility.
                                                                                                                                                                                      +
                                                                                                                                                                                      707 m_blocking_worker.emplace(get_logger(),
                                                                                                                                                                                      +
                                                                                                                                                                                      708 ostream_op_string("mq_snd-", nickname())); // Thread W started just below.
                                                                                                                                                                                      +
                                                                                                                                                                                      709 m_blocking_worker->start();
                                                                                                                                                                                      +
                                                                                                                                                                                      710
                                                                                                                                                                                      +
                                                                                                                                                                                      711 // For now we just set up the IPC-pipe and the sync_io-watched FD mirror. First things first... err, second....
                                                                                                                                                                                      +
                                                                                                                                                                                      712 connect_pipe(*m_mq_ready_reader, *m_mq_ready_writer, sys_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      713 if (sys_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      714 {
                                                                                                                                                                                      +
                                                                                                                                                                                      715 FLOW_LOG_WARNING
                                                                                                                                                                                      +
                                                                                                                                                                                      716 ("Blob_stream_mq_sender [" << *this << "]: Constructing: connect-pipe failed. Details follow.");
                                                                                                                                                                                      +
                                                                                                                                                                                      717 FLOW_ERROR_SYS_ERROR_LOG_WARNING();
                                                                                                                                                                                      +
                                                                                                                                                                                      718
                                                                                                                                                                                      +
                                                                                                                                                                                      719 m_mq.reset(); // Undo this.
                                                                                                                                                                                      +
                                                                                                                                                                                      720 }
                                                                                                                                                                                      +
                                                                                                                                                                                      721 else
                                                                                                                                                                                      +
                                                                                                                                                                                      722 {
                                                                                                                                                                                      +
                                                                                                                                                                                      723 // Lastly load up the read-end FD into the watchee mirror. See also replace_event_wait_handles().
                                                                                                                                                                                      + +
                                                                                                                                                                                      725 }
                                                                                                                                                                                      +
                                                                                                                                                                                      726 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      727 } // if (!sys_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      728
                                                                                                                                                                                      -
                                                                                                                                                                                      729 if (!m_mq)
                                                                                                                                                                                      -
                                                                                                                                                                                      730 {
                                                                                                                                                                                      -
                                                                                                                                                                                      731 // `mq` is untouched. m_pending_err_code will cause that to be emitted on send_blob() and such.
                                                                                                                                                                                      -
                                                                                                                                                                                      732 assert(sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      733
                                                                                                                                                                                      -
                                                                                                                                                                                      734 if (err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      735 {
                                                                                                                                                                                      -
                                                                                                                                                                                      736 *err_code = sys_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      737 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      738 }
                                                                                                                                                                                      -
                                                                                                                                                                                      739 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      740 throw Runtime_error(sys_err_code, "Blob_stream_mq_sender(): ensure_unique_peer()");
                                                                                                                                                                                      -
                                                                                                                                                                                      741 }
                                                                                                                                                                                      -
                                                                                                                                                                                      742 // else: took over `mq` ownership.
                                                                                                                                                                                      -
                                                                                                                                                                                      743 assert(!sys_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      744
                                                                                                                                                                                      -
                                                                                                                                                                                      745 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: MQ-handle-watching apparatus ready including running "
                                                                                                                                                                                      -
                                                                                                                                                                                      746 "blocking worker thread for would-block situations if necessary "
                                                                                                                                                                                      -
                                                                                                                                                                                      747 "(is it? = [" << (!Mq::S_HAS_NATIVE_HANDLE) << "]).");
                                                                                                                                                                                      -
                                                                                                                                                                                      748} // Blob_stream_mq_sender_impl::Blob_stream_mq_sender()
                                                                                                                                                                                      -
                                                                                                                                                                                      749
                                                                                                                                                                                      -
                                                                                                                                                                                      750template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      752{
                                                                                                                                                                                      -
                                                                                                                                                                                      753 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      754 {
                                                                                                                                                                                      -
                                                                                                                                                                                      755 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Shutting down. "
                                                                                                                                                                                      -
                                                                                                                                                                                      756 "Async-wait worker thread and timer thread will shut down/be joined shortly; but "
                                                                                                                                                                                      -
                                                                                                                                                                                      757 "we must interrupt any currently-running async-wait to ensure "
                                                                                                                                                                                      -
                                                                                                                                                                                      758 "async-wait worker thread actually exits.");
                                                                                                                                                                                      -
                                                                                                                                                                                      759
                                                                                                                                                                                      -
                                                                                                                                                                                      760 /* No-op if no send is pending; but it'd be boring worrying about checking m_pending_payloads_q.empty() just
                                                                                                                                                                                      -
                                                                                                                                                                                      761 * to avoid a no-op. It's harmless (not *exactly* a no-op, but m_mq is not long for this world -- so who cares
                                                                                                                                                                                      -
                                                                                                                                                                                      762 * if it dies while in interrupted-sends mode or otherwise?). */
                                                                                                                                                                                      -
                                                                                                                                                                                      763
                                                                                                                                                                                      -
                                                                                                                                                                                      764 if (m_mq)
                                                                                                                                                                                      -
                                                                                                                                                                                      765 {
                                                                                                                                                                                      -
                                                                                                                                                                                      766 m_mq->interrupt_sends();
                                                                                                                                                                                      -
                                                                                                                                                                                      767 }
                                                                                                                                                                                      -
                                                                                                                                                                                      768
                                                                                                                                                                                      -
                                                                                                                                                                                      769 /* That's it: If there was a (blocking) task on m_blocking_worker, then it has or will have stopped soon;
                                                                                                                                                                                      -
                                                                                                                                                                                      770 * the m_timer_worker thread, at worst, might harmlessly fire auto-ping timer and signal that pipe -- which
                                                                                                                                                                                      -
                                                                                                                                                                                      771 * we won't check or do anything about. Now m_blocking_worker and m_timer_worker dtors will run in opposite
                                                                                                                                                                                      -
                                                                                                                                                                                      772 * order, ending/joining those threads, and then this dtor will return. Oh, and then m_mq is safely destroyed
                                                                                                                                                                                      -
                                                                                                                                                                                      773 * too. */
                                                                                                                                                                                      -
                                                                                                                                                                                      774 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      775} // Blob_stream_mq_sender_impl::~Blob_stream_mq_sender_impl()
                                                                                                                                                                                      -
                                                                                                                                                                                      776
                                                                                                                                                                                      -
                                                                                                                                                                                      777template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      778template<typename Create_ev_wait_hndl_func>
                                                                                                                                                                                      - -
                                                                                                                                                                                      780 (const Create_ev_wait_hndl_func& create_ev_wait_hndl_func)
                                                                                                                                                                                      -
                                                                                                                                                                                      781{
                                                                                                                                                                                      -
                                                                                                                                                                                      782 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      783 {
                                                                                                                                                                                      -
                                                                                                                                                                                      784 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles after "
                                                                                                                                                                                      -
                                                                                                                                                                                      785 "a start-*-ops procedure has been executed. Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      786 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      787 }
                                                                                                                                                                                      -
                                                                                                                                                                                      788 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      789
                                                                                                                                                                                      -
                                                                                                                                                                                      790 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      791 {
                                                                                                                                                                                      -
                                                                                                                                                                                      792 /* Ctor failed (without throwing, meaning they used the non-null-err_code semantic).
                                                                                                                                                                                      -
                                                                                                                                                                                      793 * It is tempting to `return false` here, but that complicates our contract and breaks the concept contract
                                                                                                                                                                                      -
                                                                                                                                                                                      794 * for our method. Actually, *this will work "fine": it'll report m_pending_err_code if you try any transmission;
                                                                                                                                                                                      -
                                                                                                                                                                                      795 * it won't trigger any async-waits -- so the below not running does not matter. So it is enough to WARN
                                                                                                                                                                                      -
                                                                                                                                                                                      796 * but carry on. */
                                                                                                                                                                                      -
                                                                                                                                                                                      797 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles as requested: "
                                                                                                                                                                                      -
                                                                                                                                                                                      798 "ctor failed earlier ([" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      799 "Any transmission attempts will fail in civilized fashion, so we will just no-op here.");
                                                                                                                                                                                      -
                                                                                                                                                                                      800 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      801 }
                                                                                                                                                                                      -
                                                                                                                                                                                      802 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      803
                                                                                                                                                                                      -
                                                                                                                                                                                      804 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Replacing event-wait handles (probably to replace "
                                                                                                                                                                                      -
                                                                                                                                                                                      805 "underlying execution context without outside event loop's boost.asio Task_engine or similar).");
                                                                                                                                                                                      -
                                                                                                                                                                                      806
                                                                                                                                                                                      -
                                                                                                                                                                                      807 assert(m_ev_wait_hndl_mq.is_open());
                                                                                                                                                                                      -
                                                                                                                                                                                      808 assert(m_ev_wait_hndl_auto_ping_timer_fired_peer.is_open());
                                                                                                                                                                                      -
                                                                                                                                                                                      809
                                                                                                                                                                                      -
                                                                                                                                                                                      810 Native_handle saved(m_ev_wait_hndl_mq.release());
                                                                                                                                                                                      -
                                                                                                                                                                                      811 m_ev_wait_hndl_mq = create_ev_wait_hndl_func();
                                                                                                                                                                                      -
                                                                                                                                                                                      812 m_ev_wait_hndl_mq.assign(saved);
                                                                                                                                                                                      -
                                                                                                                                                                                      813
                                                                                                                                                                                      -
                                                                                                                                                                                      814 saved.m_native_handle = m_ev_wait_hndl_auto_ping_timer_fired_peer.release();
                                                                                                                                                                                      -
                                                                                                                                                                                      815 m_ev_wait_hndl_auto_ping_timer_fired_peer = create_ev_wait_hndl_func();
                                                                                                                                                                                      -
                                                                                                                                                                                      816 m_ev_wait_hndl_auto_ping_timer_fired_peer.assign(saved);
                                                                                                                                                                                      -
                                                                                                                                                                                      817
                                                                                                                                                                                      -
                                                                                                                                                                                      818 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      819} // Blob_stream_mq_sender_impl::replace_event_wait_handles()
                                                                                                                                                                                      -
                                                                                                                                                                                      820
                                                                                                                                                                                      -
                                                                                                                                                                                      821template<typename Persistent_mq_handle>
                                                                                                                                                                                      - - -
                                                                                                                                                                                      824{
                                                                                                                                                                                      -
                                                                                                                                                                                      825 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      826 {
                                                                                                                                                                                      -
                                                                                                                                                                                      827 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Start-ops requested, "
                                                                                                                                                                                      -
                                                                                                                                                                                      828 "but we are already started. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      829 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      830 }
                                                                                                                                                                                      -
                                                                                                                                                                                      831 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      832
                                                                                                                                                                                      -
                                                                                                                                                                                      833 m_ev_wait_func = std::move(ev_wait_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      729 assert(bool(m_mq) == (!sys_err_code));
                                                                                                                                                                                      +
                                                                                                                                                                                      730
                                                                                                                                                                                      +
                                                                                                                                                                                      731 if (!m_mq)
                                                                                                                                                                                      +
                                                                                                                                                                                      732 {
                                                                                                                                                                                      +
                                                                                                                                                                                      733 // `mq` is untouched. m_pending_err_code will cause that to be emitted on send_blob() and such.
                                                                                                                                                                                      +
                                                                                                                                                                                      734 assert(sys_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      735
                                                                                                                                                                                      +
                                                                                                                                                                                      736 if (err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      737 {
                                                                                                                                                                                      +
                                                                                                                                                                                      738 *err_code = sys_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      739 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      740 }
                                                                                                                                                                                      +
                                                                                                                                                                                      741 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      742 throw Runtime_error(sys_err_code, "Blob_stream_mq_sender(): ensure_unique_peer()");
                                                                                                                                                                                      +
                                                                                                                                                                                      743 }
                                                                                                                                                                                      +
                                                                                                                                                                                      744 // else: took over `mq` ownership.
                                                                                                                                                                                      +
                                                                                                                                                                                      745 assert(!sys_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      746
                                                                                                                                                                                      +
                                                                                                                                                                                      747 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: MQ-handle-watching apparatus ready including running "
                                                                                                                                                                                      +
                                                                                                                                                                                      748 "blocking worker thread for would-block situations if necessary "
                                                                                                                                                                                      +
                                                                                                                                                                                      749 "(is it? = [" << (!Mq::S_HAS_NATIVE_HANDLE) << "]).");
                                                                                                                                                                                      +
                                                                                                                                                                                      750} // Blob_stream_mq_sender_impl::Blob_stream_mq_sender()
                                                                                                                                                                                      +
                                                                                                                                                                                      751
                                                                                                                                                                                      +
                                                                                                                                                                                      752template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      754{
                                                                                                                                                                                      +
                                                                                                                                                                                      755 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      756 {
                                                                                                                                                                                      +
                                                                                                                                                                                      757 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Shutting down. "
                                                                                                                                                                                      +
                                                                                                                                                                                      758 "Async-wait worker thread and timer thread will shut down/be joined shortly; but "
                                                                                                                                                                                      +
                                                                                                                                                                                      759 "we must interrupt any currently-running async-wait to ensure "
                                                                                                                                                                                      +
                                                                                                                                                                                      760 "async-wait worker thread actually exits.");
                                                                                                                                                                                      +
                                                                                                                                                                                      761
                                                                                                                                                                                      +
                                                                                                                                                                                      762 /* No-op if no send is pending; but it'd be boring worrying about checking m_pending_payloads_q.empty() just
                                                                                                                                                                                      +
                                                                                                                                                                                      763 * to avoid a no-op. It's harmless (not *exactly* a no-op, but m_mq is not long for this world -- so who cares
                                                                                                                                                                                      +
                                                                                                                                                                                      764 * if it dies while in interrupted-sends mode or otherwise?). */
                                                                                                                                                                                      +
                                                                                                                                                                                      765
                                                                                                                                                                                      +
                                                                                                                                                                                      766 if (m_mq)
                                                                                                                                                                                      +
                                                                                                                                                                                      767 {
                                                                                                                                                                                      +
                                                                                                                                                                                      768 m_mq->interrupt_sends();
                                                                                                                                                                                      +
                                                                                                                                                                                      769 }
                                                                                                                                                                                      +
                                                                                                                                                                                      770
                                                                                                                                                                                      +
                                                                                                                                                                                      771 /* That's it: If there was a (blocking) task on m_blocking_worker, then it has or will have stopped soon;
                                                                                                                                                                                      +
                                                                                                                                                                                      772 * the m_timer_worker thread, at worst, might harmlessly fire auto-ping timer and signal that pipe -- which
                                                                                                                                                                                      +
                                                                                                                                                                                      773 * we won't check or do anything about. Now m_blocking_worker and m_timer_worker dtors will run in opposite
                                                                                                                                                                                      +
                                                                                                                                                                                      774 * order, ending/joining those threads, and then this dtor will return. Oh, and then m_mq is safely destroyed
                                                                                                                                                                                      +
                                                                                                                                                                                      775 * too. */
                                                                                                                                                                                      +
                                                                                                                                                                                      776 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      777} // Blob_stream_mq_sender_impl::~Blob_stream_mq_sender_impl()
                                                                                                                                                                                      +
                                                                                                                                                                                      778
                                                                                                                                                                                      +
                                                                                                                                                                                      779template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      780template<typename Create_ev_wait_hndl_func>
                                                                                                                                                                                      + +
                                                                                                                                                                                      782 (const Create_ev_wait_hndl_func& create_ev_wait_hndl_func)
                                                                                                                                                                                      +
                                                                                                                                                                                      783{
                                                                                                                                                                                      +
                                                                                                                                                                                      784 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      785 {
                                                                                                                                                                                      +
                                                                                                                                                                                      786 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles after "
                                                                                                                                                                                      +
                                                                                                                                                                                      787 "a start-*-ops procedure has been executed. Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      788 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      789 }
                                                                                                                                                                                      +
                                                                                                                                                                                      790 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      791
                                                                                                                                                                                      +
                                                                                                                                                                                      792 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      793 {
                                                                                                                                                                                      +
                                                                                                                                                                                      794 /* Ctor failed (without throwing, meaning they used the non-null-err_code semantic).
                                                                                                                                                                                      +
                                                                                                                                                                                      795 * It is tempting to `return false` here, but that complicates our contract and breaks the concept contract
                                                                                                                                                                                      +
                                                                                                                                                                                      796 * for our method. Actually, *this will work "fine": it'll report m_pending_err_code if you try any transmission;
                                                                                                                                                                                      +
                                                                                                                                                                                      797 * it won't trigger any async-waits -- so the below not running does not matter. So it is enough to WARN
                                                                                                                                                                                      +
                                                                                                                                                                                      798 * but carry on. */
                                                                                                                                                                                      +
                                                                                                                                                                                      799 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Cannot replace event-wait handles as requested: "
                                                                                                                                                                                      +
                                                                                                                                                                                      800 "ctor failed earlier ([" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      801 "Any transmission attempts will fail in civilized fashion, so we will just no-op here.");
                                                                                                                                                                                      +
                                                                                                                                                                                      802 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      803 }
                                                                                                                                                                                      +
                                                                                                                                                                                      804 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      805
                                                                                                                                                                                      +
                                                                                                                                                                                      806 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Replacing event-wait handles (probably to replace "
                                                                                                                                                                                      +
                                                                                                                                                                                      807 "underlying execution context without outside event loop's boost.asio Task_engine or similar).");
                                                                                                                                                                                      +
                                                                                                                                                                                      808
                                                                                                                                                                                      +
                                                                                                                                                                                      809 assert(m_ev_wait_hndl_mq.is_open());
                                                                                                                                                                                      +
                                                                                                                                                                                      810 assert(m_ev_wait_hndl_auto_ping_timer_fired_peer.is_open());
                                                                                                                                                                                      +
                                                                                                                                                                                      811
                                                                                                                                                                                      +
                                                                                                                                                                                      812 Native_handle saved(m_ev_wait_hndl_mq.release());
                                                                                                                                                                                      +
                                                                                                                                                                                      813 m_ev_wait_hndl_mq = create_ev_wait_hndl_func();
                                                                                                                                                                                      +
                                                                                                                                                                                      814 m_ev_wait_hndl_mq.assign(saved);
                                                                                                                                                                                      +
                                                                                                                                                                                      815
                                                                                                                                                                                      +
                                                                                                                                                                                      816 saved.m_native_handle = m_ev_wait_hndl_auto_ping_timer_fired_peer.release();
                                                                                                                                                                                      +
                                                                                                                                                                                      817 m_ev_wait_hndl_auto_ping_timer_fired_peer = create_ev_wait_hndl_func();
                                                                                                                                                                                      +
                                                                                                                                                                                      818 m_ev_wait_hndl_auto_ping_timer_fired_peer.assign(saved);
                                                                                                                                                                                      +
                                                                                                                                                                                      819
                                                                                                                                                                                      +
                                                                                                                                                                                      820 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      821} // Blob_stream_mq_sender_impl::replace_event_wait_handles()
                                                                                                                                                                                      +
                                                                                                                                                                                      822
                                                                                                                                                                                      +
                                                                                                                                                                                      823template<typename Persistent_mq_handle>
                                                                                                                                                                                      + + +
                                                                                                                                                                                      826{
                                                                                                                                                                                      +
                                                                                                                                                                                      827 if (!m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      828 {
                                                                                                                                                                                      +
                                                                                                                                                                                      829 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Start-ops requested, "
                                                                                                                                                                                      +
                                                                                                                                                                                      830 "but we are already started. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      831 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      832 }
                                                                                                                                                                                      +
                                                                                                                                                                                      833 // else
                                                                                                                                                                                      834
                                                                                                                                                                                      -
                                                                                                                                                                                      835 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Start-ops requested. Done.");
                                                                                                                                                                                      +
                                                                                                                                                                                      835 m_ev_wait_func = std::move(ev_wait_func);
                                                                                                                                                                                      836
                                                                                                                                                                                      -
                                                                                                                                                                                      837 if (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      838 {
                                                                                                                                                                                      -
                                                                                                                                                                                      839 const auto protocol_ver_to_send = m_protocol_negotiator.local_max_proto_ver_for_sending();
                                                                                                                                                                                      -
                                                                                                                                                                                      840 assert((protocol_ver_to_send != Protocol_negotiator::S_VER_UNKNOWN)
                                                                                                                                                                                      -
                                                                                                                                                                                      841 && "How'd we get to this line twice? Or Protocol_negotiator bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      842 assert((m_protocol_negotiator.local_max_proto_ver_for_sending() == Protocol_negotiator::S_VER_UNKNOWN)
                                                                                                                                                                                      -
                                                                                                                                                                                      843 && "Protocol_negotiator not properly marking the once-only sending-out of protocol version?");
                                                                                                                                                                                      -
                                                                                                                                                                                      844
                                                                                                                                                                                      -
                                                                                                                                                                                      845 /* As discussed in m_protocol_negotiator doc header and class doc header "Protocol negotiation" section:
                                                                                                                                                                                      -
                                                                                                                                                                                      846 * send a special CONTROL message; opposing side expects it as the first in-message.
                                                                                                                                                                                      -
                                                                                                                                                                                      847 * By the way m_protocol_negotiator logged about the fact we're about to send it, so we can be pretty quiet. */
                                                                                                                                                                                      -
                                                                                                                                                                                      848 sync_write_or_q_ctl_cmd_impl(-protocol_ver_to_send);
                                                                                                                                                                                      -
                                                                                                                                                                                      849 /* m_pending_err_code may have become truthy; just means next send_blob()/whatever will emit that error.
                                                                                                                                                                                      -
                                                                                                                                                                                      850 *
                                                                                                                                                                                      -
                                                                                                                                                                                      851 * Otherwise: Either it inline-sent it (very likely), or it got queued.
                                                                                                                                                                                      -
                                                                                                                                                                                      852 * Either way: no error; let's get on with queuing-or-sending real stuff like send_blob() payloads.
                                                                                                                                                                                      -
                                                                                                                                                                                      853 * P.S. There's only 1 protocol version as of this writing, so there's no ambiguity, and we can just get on with
                                                                                                                                                                                      -
                                                                                                                                                                                      854 * sending stuff right away. This could change in the future. See m_protocol_negotiator doc header for more. */
                                                                                                                                                                                      -
                                                                                                                                                                                      855 }
                                                                                                                                                                                      -
                                                                                                                                                                                      856 // else { Ctor must have failed without throwing exception (non-null err_code). }
                                                                                                                                                                                      -
                                                                                                                                                                                      857
                                                                                                                                                                                      -
                                                                                                                                                                                      858 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      859} // Blob_stream_mq_sender_impl::start_send_blob_ops()
                                                                                                                                                                                      -
                                                                                                                                                                                      860
                                                                                                                                                                                      -
                                                                                                                                                                                      861template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      863{
                                                                                                                                                                                      -
                                                                                                                                                                                      864 if (m_ev_wait_func.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      865 {
                                                                                                                                                                                      -
                                                                                                                                                                                      866 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      867 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      -
                                                                                                                                                                                      868 "but we are not. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      869 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      870 }
                                                                                                                                                                                      -
                                                                                                                                                                                      871 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      872 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      873}
                                                                                                                                                                                      -
                                                                                                                                                                                      874
                                                                                                                                                                                      -
                                                                                                                                                                                      875template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      877{
                                                                                                                                                                                      -
                                                                                                                                                                                      878 using flow::util::buffers_dump_string;
                                                                                                                                                                                      - -
                                                                                                                                                                                      880 using boost::chrono::round;
                                                                                                                                                                                      -
                                                                                                                                                                                      881 using boost::chrono::milliseconds;
                                                                                                                                                                                      -
                                                                                                                                                                                      882
                                                                                                                                                                                      -
                                                                                                                                                                                      883 FLOW_ERROR_EXEC_AND_THROW_ON_ERROR(bool, Blob_stream_mq_sender_impl<Persistent_mq_handle>::send_blob,
                                                                                                                                                                                      -
                                                                                                                                                                                      884 flow::util::bind_ns::cref(blob), _1);
                                                                                                                                                                                      -
                                                                                                                                                                                      885 // ^-- Call ourselves and return if err_code is null. If got to present line, err_code is not null.
                                                                                                                                                                                      -
                                                                                                                                                                                      886
                                                                                                                                                                                      -
                                                                                                                                                                                      887 assert((blob.size() != 0) && "Do not send_blob() empty blobs.");
                                                                                                                                                                                      +
                                                                                                                                                                                      837 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Start-ops requested. Done.");
                                                                                                                                                                                      +
                                                                                                                                                                                      838
                                                                                                                                                                                      +
                                                                                                                                                                                      839 if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      840 {
                                                                                                                                                                                      +
                                                                                                                                                                                      841 const auto protocol_ver_to_send = m_protocol_negotiator.local_max_proto_ver_for_sending();
                                                                                                                                                                                      +
                                                                                                                                                                                      842 assert((protocol_ver_to_send != Protocol_negotiator::S_VER_UNKNOWN)
                                                                                                                                                                                      +
                                                                                                                                                                                      843 && "How'd we get to this line twice? Or Protocol_negotiator bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      844 assert((m_protocol_negotiator.local_max_proto_ver_for_sending() == Protocol_negotiator::S_VER_UNKNOWN)
                                                                                                                                                                                      +
                                                                                                                                                                                      845 && "Protocol_negotiator not properly marking the once-only sending-out of protocol version?");
                                                                                                                                                                                      +
                                                                                                                                                                                      846
                                                                                                                                                                                      +
                                                                                                                                                                                      847 /* As discussed in m_protocol_negotiator doc header and class doc header "Protocol negotiation" section:
                                                                                                                                                                                      +
                                                                                                                                                                                      848 * send a special CONTROL message; opposing side expects it as the first in-message.
                                                                                                                                                                                      +
                                                                                                                                                                                      849 * By the way m_protocol_negotiator logged about the fact we're about to send it, so we can be pretty quiet. */
                                                                                                                                                                                      +
                                                                                                                                                                                      850 sync_write_or_q_ctl_cmd_impl(-protocol_ver_to_send);
                                                                                                                                                                                      +
                                                                                                                                                                                      851 /* m_pending_err_code may have become truthy; just means next send_blob()/whatever will emit that error.
                                                                                                                                                                                      +
                                                                                                                                                                                      852 *
                                                                                                                                                                                      +
                                                                                                                                                                                      853 * Otherwise: Either it inline-sent it (very likely), or it got queued.
                                                                                                                                                                                      +
                                                                                                                                                                                      854 * Either way: no error; let's get on with queuing-or-sending real stuff like send_blob() payloads.
                                                                                                                                                                                      +
                                                                                                                                                                                      855 * P.S. There's only 1 protocol version as of this writing, so there's no ambiguity, and we can just get on with
                                                                                                                                                                                      +
                                                                                                                                                                                      856 * sending stuff right away. This could change in the future. See m_protocol_negotiator doc header for more. */
                                                                                                                                                                                      +
                                                                                                                                                                                      857 }
                                                                                                                                                                                      +
                                                                                                                                                                                      858 // else { Ctor must have failed without throwing exception (non-null err_code). }
                                                                                                                                                                                      +
                                                                                                                                                                                      859
                                                                                                                                                                                      +
                                                                                                                                                                                      860 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      861} // Blob_stream_mq_sender_impl::start_send_blob_ops()
                                                                                                                                                                                      +
                                                                                                                                                                                      862
                                                                                                                                                                                      +
                                                                                                                                                                                      863template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      865{
                                                                                                                                                                                      +
                                                                                                                                                                                      866 if (m_ev_wait_func.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      867 {
                                                                                                                                                                                      +
                                                                                                                                                                                      868 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      869 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      +
                                                                                                                                                                                      870 "but we are not. Probably a user bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      871 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      872 }
                                                                                                                                                                                      +
                                                                                                                                                                                      873 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      874 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      875}
                                                                                                                                                                                      +
                                                                                                                                                                                      876
                                                                                                                                                                                      +
                                                                                                                                                                                      877template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      879{
                                                                                                                                                                                      +
                                                                                                                                                                                      880 using flow::util::buffers_dump_string;
                                                                                                                                                                                      + +
                                                                                                                                                                                      882 using boost::chrono::round;
                                                                                                                                                                                      +
                                                                                                                                                                                      883 using boost::chrono::milliseconds;
                                                                                                                                                                                      +
                                                                                                                                                                                      884
                                                                                                                                                                                      +
                                                                                                                                                                                      885 FLOW_ERROR_EXEC_AND_THROW_ON_ERROR(bool, Blob_stream_mq_sender_impl<Persistent_mq_handle>::send_blob,
                                                                                                                                                                                      +
                                                                                                                                                                                      886 flow::util::bind_ns::cref(blob), _1);
                                                                                                                                                                                      +
                                                                                                                                                                                      887 // ^-- Call ourselves and return if err_code is null. If got to present line, err_code is not null.
                                                                                                                                                                                      888
                                                                                                                                                                                      -
                                                                                                                                                                                      889 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      890 *
                                                                                                                                                                                      -
                                                                                                                                                                                      891 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::send_native_handle().
                                                                                                                                                                                      -
                                                                                                                                                                                      892 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      -
                                                                                                                                                                                      893 * Yet there are enough differences to where code reuse isn't really obviously achievable.
                                                                                                                                                                                      -
                                                                                                                                                                                      894 * @todo Look into it. It would be nice to avoid 2x the maintenance and ~copy/pasted comments. */
                                                                                                                                                                                      -
                                                                                                                                                                                      895
                                                                                                                                                                                      -
                                                                                                                                                                                      896 if (!op_started("send_blob()"))
                                                                                                                                                                                      -
                                                                                                                                                                                      897 {
                                                                                                                                                                                      -
                                                                                                                                                                                      898 err_code->clear();
                                                                                                                                                                                      -
                                                                                                                                                                                      899 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      900 }
                                                                                                                                                                                      -
                                                                                                                                                                                      901 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      902
                                                                                                                                                                                      -
                                                                                                                                                                                      903 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Will send blob of size [" << blob.size() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      904 // Verbose and slow (100% skipped unless log filter passes).
                                                                                                                                                                                      -
                                                                                                                                                                                      905 FLOW_LOG_DATA("Blob_stream_mq_sender [" << *this << "]: Blob contents are "
                                                                                                                                                                                      -
                                                                                                                                                                                      906 "[\n" << buffers_dump_string(blob, " ") << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      907
                                                                                                                                                                                      -
                                                                                                                                                                                      908 if (m_finished)
                                                                                                                                                                                      -
                                                                                                                                                                                      909 {
                                                                                                                                                                                      -
                                                                                                                                                                                      910 /* If they called *end_sending() before, then by definition (see doc header impl discussion)
                                                                                                                                                                                      -
                                                                                                                                                                                      911 * any future send attempt is to be ignored with this error. Even though previously queued stuff can and should
                                                                                                                                                                                      -
                                                                                                                                                                                      912 * keep being sent, once that's done this clause will prevent any more from being initiated.
                                                                                                                                                                                      -
                                                                                                                                                                                      913 *
                                                                                                                                                                                      -
                                                                                                                                                                                      914 * Corner case: If those queued sends indeed exist (are ongoing) then user should have a way of knowing when it's
                                                                                                                                                                                      -
                                                                                                                                                                                      915 * done. That isn't the case for regular send_blob() calls which are silently queued up as-needed,
                                                                                                                                                                                      -
                                                                                                                                                                                      916 * which is why I mention it here. So that's why in *end_sending() there's a way for
                                                                                                                                                                                      -
                                                                                                                                                                                      917 * user to be informed (via sync callback) when everything has been sent through, or if an error stops it
                                                                                                                                                                                      -
                                                                                                                                                                                      918 * from happening. None of our business here though: we just refuse to do anything and emit this error. */
                                                                                                                                                                                      - -
                                                                                                                                                                                      920 // Note that this clause will always be reached subsequently also.
                                                                                                                                                                                      -
                                                                                                                                                                                      921 }
                                                                                                                                                                                      -
                                                                                                                                                                                      922 else
                                                                                                                                                                                      -
                                                                                                                                                                                      923 /* Check for message size limit. Just catch it immediately and bail out; and no harm (to pipe) done otherwise.
                                                                                                                                                                                      -
                                                                                                                                                                                      924 *
                                                                                                                                                                                      -
                                                                                                                                                                                      925 * This is a subtler decision than it might seem. If we simply skipped this, things would still work:
                                                                                                                                                                                      -
                                                                                                                                                                                      926 * An immediate try_send() would yield S_MQ_MESSAGE_SIZE_OVER_OR_UNDERFLOW error; and if the send had
                                                                                                                                                                                      -
                                                                                                                                                                                      927 * to be queued, then a post-async-wait try_send() would yield that same thing later.
                                                                                                                                                                                      -
                                                                                                                                                                                      928 * However that would hose the pipe, as it is a low-level error. The Blob_sender concept allows this: it says
                                                                                                                                                                                      -
                                                                                                                                                                                      929 * a blob size limit *may* be imposed and yield INVALID_ARGUMENT, which shall not hose the pipe.
                                                                                                                                                                                      -
                                                                                                                                                                                      930 * It's "may" -- not "shall" -- so we're just being nice and usable. The only caveat is we're kinda preempting
                                                                                                                                                                                      -
                                                                                                                                                                                      931 * the MQ's low-level check by doing it manually ourselves, querying/caching MQ's max_msg_size(). Arguably not
                                                                                                                                                                                      -
                                                                                                                                                                                      932 * the prettiest, but the effect is correct (at least with Posix_mq_handle and Bipc_mq_handle anyway).
                                                                                                                                                                                      -
                                                                                                                                                                                      933 *
                                                                                                                                                                                      -
                                                                                                                                                                                      934 * We could also catch S_MQ_MESSAGE_SIZE_OVER_OR_UNDERFLOW and transform it to INVALID_ARGUMENT... but if it
                                                                                                                                                                                      -
                                                                                                                                                                                      935 * has to be queued, then things get complicated or inconsistent; it would be reported in a later
                                                                                                                                                                                      -
                                                                                                                                                                                      936 * user API call. So let's not. This way the behavior is same as with Native_socket_stream; not required by
                                                                                                                                                                                      -
                                                                                                                                                                                      937 * the concept but good nevertheless. */
                                                                                                                                                                                      -
                                                                                                                                                                                      938 if (blob.size() > m_mq_max_msg_sz) // && (!m_finished)
                                                                                                                                                                                      -
                                                                                                                                                                                      939 {
                                                                                                                                                                                      - -
                                                                                                                                                                                      941 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Send: "
                                                                                                                                                                                      -
                                                                                                                                                                                      942 "User argument length [" << blob.size() << "] exceeds limit [" << send_blob_max_size() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      943 "Emitting error immediately; but pipe continues. Note that if we don't do this, "
                                                                                                                                                                                      -
                                                                                                                                                                                      944 "then the low-level MQ will behave this way anyway.");
                                                                                                                                                                                      -
                                                                                                                                                                                      945 }
                                                                                                                                                                                      -
                                                                                                                                                                                      946 else if (m_pending_err_code) // && (!m_finished) && (blob.size() OK)
                                                                                                                                                                                      -
                                                                                                                                                                                      947 {
                                                                                                                                                                                      -
                                                                                                                                                                                      948 /* This --^ holds either the last inline-completed send_blob() (or protocol-negotiation-send in
                                                                                                                                                                                      -
                                                                                                                                                                                      949 * start_send_blob_ops()) call's emitted Error_code, or (~rarely) one
                                                                                                                                                                                      -
                                                                                                                                                                                      950 * that was found while attempting to dequeue previously-would-blocked queued-up (due to incomplete s_blob())
                                                                                                                                                                                      -
                                                                                                                                                                                      951 * payload(s). This may seem odd, but that's part of the design of the send interface which we wanted to be
                                                                                                                                                                                      -
                                                                                                                                                                                      952 * as close to looking like a series of synchronous always-inline-completed send_blob() calls as humanly possible,
                                                                                                                                                                                      -
                                                                                                                                                                                      953 * especially given that 99.9999% of the time that will indeed occur given proper behavior by the opposing
                                                                                                                                                                                      -
                                                                                                                                                                                      954 * receiver. */
                                                                                                                                                                                      -
                                                                                                                                                                                      955
                                                                                                                                                                                      -
                                                                                                                                                                                      956 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: An error was detected earlier and saved for any "
                                                                                                                                                                                      -
                                                                                                                                                                                      957 "subsequent send attempts like this. Will not proceed with send. More info in WARNING below.");
                                                                                                                                                                                      -
                                                                                                                                                                                      958 *err_code = m_pending_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      959 }
                                                                                                                                                                                      -
                                                                                                                                                                                      960 else // if (!m_finished) && (blob.size() OK) && (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      961 {
                                                                                                                                                                                      -
                                                                                                                                                                                      962 /* As the name indicates this may synchronously finish it or queue it up instead to be done once
                                                                                                                                                                                      -
                                                                                                                                                                                      963 * a would-block clears, when user informs of this past the present function's return.
                                                                                                                                                                                      -
                                                                                                                                                                                      964 *
                                                                                                                                                                                      -
                                                                                                                                                                                      965 * Send-or-queue the 1 message, as-is. There's a very high chance it is done inline;
                                                                                                                                                                                      -
                                                                                                                                                                                      966 * but there's a small chance either there's either stuff queued already (we've delegated waiting for would-block
                                                                                                                                                                                      -
                                                                                                                                                                                      967 * to clear to user), or not but this can't be pushed (encountered would-block). We don't care here per
                                                                                                                                                                                      -
                                                                                                                                                                                      968 * se; I am just saying for context, to clarify what "send-or-queue" means. */
                                                                                                                                                                                      -
                                                                                                                                                                                      969 sync_write_or_q_payload(blob, nullptr);
                                                                                                                                                                                      -
                                                                                                                                                                                      970 /* That may have returned `true` indicating everything (up to and including our payload) was synchronously
                                                                                                                                                                                      -
                                                                                                                                                                                      971 * given to kernel successfuly; or this will never occur, because outgoing-pipe-ending error was encountered.
                                                                                                                                                                                      -
                                                                                                                                                                                      972 * Since this is send_blob(), we do not care: there is no on-done
                                                                                                                                                                                      -
                                                                                                                                                                                      973 * callback to invoke, as m_finished is false, as *end_sending() has not been called yet. */
                                                                                                                                                                                      -
                                                                                                                                                                                      974
                                                                                                                                                                                      -
                                                                                                                                                                                      975 /* No new error: Emit to user that this op did not emit error (m_pending_err_code is still falsy).
                                                                                                                                                                                      -
                                                                                                                                                                                      976 * New error: Any subsequent attempt will emit this truthy value; do not forget to emit it now via *err_code. */
                                                                                                                                                                                      -
                                                                                                                                                                                      977 *err_code = m_pending_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      978
                                                                                                                                                                                      -
                                                                                                                                                                                      979 // Did it generate a new error?
                                                                                                                                                                                      -
                                                                                                                                                                                      980 if (*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      981 {
                                                                                                                                                                                      -
                                                                                                                                                                                      982 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Wanted to send user message but detected error "
                                                                                                                                                                                      -
                                                                                                                                                                                      983 "synchronously. "
                                                                                                                                                                                      -
                                                                                                                                                                                      984 "Error code details follow: [" << *err_code << "] [" << err_code->message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      985 "Saved error code to return in next user send attempt if any, after this attempt also "
                                                                                                                                                                                      -
                                                                                                                                                                                      986 "returns that error code synchronously first.");
                                                                                                                                                                                      -
                                                                                                                                                                                      987 }
                                                                                                                                                                                      -
                                                                                                                                                                                      988 else if (m_auto_ping_period != Fine_duration::zero()) // && (!*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      989 {
                                                                                                                                                                                      -
                                                                                                                                                                                      990 /* Send requested, and there was no error; that represents non-idleness. If auto_ping() has been called
                                                                                                                                                                                      -
                                                                                                                                                                                      991 * (the feature is engaged), idleness shall occur at worst in m_auto_ping_period; hence reschedule
                                                                                                                                                                                      -
                                                                                                                                                                                      992 * on_ev_auto_ping_now_timer_fired(). */
                                                                                                                                                                                      -
                                                                                                                                                                                      993
                                                                                                                                                                                      -
                                                                                                                                                                                      994 const size_t n_canceled = m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      +
                                                                                                                                                                                      889 assert((blob.size() != 0) && "Do not send_blob() empty blobs.");
                                                                                                                                                                                      +
                                                                                                                                                                                      890
                                                                                                                                                                                      +
                                                                                                                                                                                      891 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      892 *
                                                                                                                                                                                      +
                                                                                                                                                                                      893 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::send_native_handle().
                                                                                                                                                                                      +
                                                                                                                                                                                      894 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      +
                                                                                                                                                                                      895 * Yet there are enough differences to where code reuse isn't really obviously achievable.
                                                                                                                                                                                      +
                                                                                                                                                                                      896 * @todo Look into it. It would be nice to avoid 2x the maintenance and ~copy/pasted comments. */
                                                                                                                                                                                      +
                                                                                                                                                                                      897
                                                                                                                                                                                      +
                                                                                                                                                                                      898 if (!op_started("send_blob()"))
                                                                                                                                                                                      +
                                                                                                                                                                                      899 {
                                                                                                                                                                                      +
                                                                                                                                                                                      900 err_code->clear();
                                                                                                                                                                                      +
                                                                                                                                                                                      901 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      902 }
                                                                                                                                                                                      +
                                                                                                                                                                                      903 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      904
                                                                                                                                                                                      +
                                                                                                                                                                                      905 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Will send blob of size [" << blob.size() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      906 // Verbose and slow (100% skipped unless log filter passes).
                                                                                                                                                                                      +
                                                                                                                                                                                      907 FLOW_LOG_DATA("Blob_stream_mq_sender [" << *this << "]: Blob contents are "
                                                                                                                                                                                      +
                                                                                                                                                                                      908 "[\n" << buffers_dump_string(blob, " ") << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      909
                                                                                                                                                                                      +
                                                                                                                                                                                      910 if (m_finished)
                                                                                                                                                                                      +
                                                                                                                                                                                      911 {
                                                                                                                                                                                      +
                                                                                                                                                                                      912 /* If they called *end_sending() before, then by definition (see doc header impl discussion)
                                                                                                                                                                                      +
                                                                                                                                                                                      913 * any future send attempt is to be ignored with this error. Even though previously queued stuff can and should
                                                                                                                                                                                      +
                                                                                                                                                                                      914 * keep being sent, once that's done this clause will prevent any more from being initiated.
                                                                                                                                                                                      +
                                                                                                                                                                                      915 *
                                                                                                                                                                                      +
                                                                                                                                                                                      916 * Corner case: If those queued sends indeed exist (are ongoing) then user should have a way of knowing when it's
                                                                                                                                                                                      +
                                                                                                                                                                                      917 * done. That isn't the case for regular send_blob() calls which are silently queued up as-needed,
                                                                                                                                                                                      +
                                                                                                                                                                                      918 * which is why I mention it here. So that's why in *end_sending() there's a way for
                                                                                                                                                                                      +
                                                                                                                                                                                      919 * user to be informed (via sync callback) when everything has been sent through, or if an error stops it
                                                                                                                                                                                      +
                                                                                                                                                                                      920 * from happening. None of our business here though: we just refuse to do anything and emit this error. */
                                                                                                                                                                                      + +
                                                                                                                                                                                      922 // Note that this clause will always be reached subsequently also.
                                                                                                                                                                                      +
                                                                                                                                                                                      923 }
                                                                                                                                                                                      +
                                                                                                                                                                                      924 else
                                                                                                                                                                                      +
                                                                                                                                                                                      925 /* Check for message size limit. Just catch it immediately and bail out; and no harm (to pipe) done otherwise.
                                                                                                                                                                                      +
                                                                                                                                                                                      926 *
                                                                                                                                                                                      +
                                                                                                                                                                                      927 * This is a subtler decision than it might seem. If we simply skipped this, things would still work:
                                                                                                                                                                                      +
                                                                                                                                                                                      928 * An immediate try_send() would yield S_MQ_MESSAGE_SIZE_OVER_OR_UNDERFLOW error; and if the send had
                                                                                                                                                                                      +
                                                                                                                                                                                      929 * to be queued, then a post-async-wait try_send() would yield that same thing later.
                                                                                                                                                                                      +
                                                                                                                                                                                      930 * However that would hose the pipe, as it is a low-level error. The Blob_sender concept allows this: it says
                                                                                                                                                                                      +
                                                                                                                                                                                      931 * a blob size limit *may* be imposed and yield INVALID_ARGUMENT, which shall not hose the pipe.
                                                                                                                                                                                      +
                                                                                                                                                                                      932 * It's "may" -- not "shall" -- so we're just being nice and usable. The only caveat is we're kinda preempting
                                                                                                                                                                                      +
                                                                                                                                                                                      933 * the MQ's low-level check by doing it manually ourselves, querying/caching MQ's max_msg_size(). Arguably not
                                                                                                                                                                                      +
                                                                                                                                                                                      934 * the prettiest, but the effect is correct (at least with Posix_mq_handle and Bipc_mq_handle anyway).
                                                                                                                                                                                      +
                                                                                                                                                                                      935 *
                                                                                                                                                                                      +
                                                                                                                                                                                      936 * We could also catch S_MQ_MESSAGE_SIZE_OVER_OR_UNDERFLOW and transform it to INVALID_ARGUMENT... but if it
                                                                                                                                                                                      +
                                                                                                                                                                                      937 * has to be queued, then things get complicated or inconsistent; it would be reported in a later
                                                                                                                                                                                      +
                                                                                                                                                                                      938 * user API call. So let's not. This way the behavior is same as with Native_socket_stream; not required by
                                                                                                                                                                                      +
                                                                                                                                                                                      939 * the concept but good nevertheless. */
                                                                                                                                                                                      +
                                                                                                                                                                                      940 if (blob.size() > m_mq_max_msg_sz) // && (!m_finished)
                                                                                                                                                                                      +
                                                                                                                                                                                      941 {
                                                                                                                                                                                      + +
                                                                                                                                                                                      943 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Send: "
                                                                                                                                                                                      +
                                                                                                                                                                                      944 "User argument length [" << blob.size() << "] exceeds limit [" << send_blob_max_size() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      945 "Emitting error immediately; but pipe continues. Note that if we don't do this, "
                                                                                                                                                                                      +
                                                                                                                                                                                      946 "then the low-level MQ will behave this way anyway.");
                                                                                                                                                                                      +
                                                                                                                                                                                      947 }
                                                                                                                                                                                      +
                                                                                                                                                                                      948 else if (m_pending_err_code) // && (!m_finished) && (blob.size() OK)
                                                                                                                                                                                      +
                                                                                                                                                                                      949 {
                                                                                                                                                                                      +
                                                                                                                                                                                      950 /* This --^ holds either the last inline-completed send_blob() (or protocol-negotiation-send in
                                                                                                                                                                                      +
                                                                                                                                                                                      951 * start_send_blob_ops()) call's emitted Error_code, or (~rarely) one
                                                                                                                                                                                      +
                                                                                                                                                                                      952 * that was found while attempting to dequeue previously-would-blocked queued-up (due to incomplete s_blob())
                                                                                                                                                                                      +
                                                                                                                                                                                      953 * payload(s). This may seem odd, but that's part of the design of the send interface which we wanted to be
                                                                                                                                                                                      +
                                                                                                                                                                                      954 * as close to looking like a series of synchronous always-inline-completed send_blob() calls as humanly possible,
                                                                                                                                                                                      +
                                                                                                                                                                                      955 * especially given that 99.9999% of the time that will indeed occur given proper behavior by the opposing
                                                                                                                                                                                      +
                                                                                                                                                                                      956 * receiver. */
                                                                                                                                                                                      +
                                                                                                                                                                                      957
                                                                                                                                                                                      +
                                                                                                                                                                                      958 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: An error was detected earlier and saved for any "
                                                                                                                                                                                      +
                                                                                                                                                                                      959 "subsequent send attempts like this. Will not proceed with send. More info in WARNING below.");
                                                                                                                                                                                      +
                                                                                                                                                                                      960 *err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      961 }
                                                                                                                                                                                      +
                                                                                                                                                                                      962 else // if (!m_finished) && (blob.size() OK) && (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      963 {
                                                                                                                                                                                      +
                                                                                                                                                                                      964 /* As the name indicates this may synchronously finish it or queue it up instead to be done once
                                                                                                                                                                                      +
                                                                                                                                                                                      965 * a would-block clears, when user informs of this past the present function's return.
                                                                                                                                                                                      +
                                                                                                                                                                                      966 *
                                                                                                                                                                                      +
                                                                                                                                                                                      967 * Send-or-queue the 1 message, as-is. There's a very high chance it is done inline;
                                                                                                                                                                                      +
                                                                                                                                                                                      968 * but there's a small chance either there's either stuff queued already (we've delegated waiting for would-block
                                                                                                                                                                                      +
                                                                                                                                                                                      969 * to clear to user), or not but this can't be pushed (encountered would-block). We don't care here per
                                                                                                                                                                                      +
                                                                                                                                                                                      970 * se; I am just saying for context, to clarify what "send-or-queue" means. */
                                                                                                                                                                                      +
                                                                                                                                                                                      971 sync_write_or_q_payload(blob, nullptr);
                                                                                                                                                                                      +
                                                                                                                                                                                      972 /* That may have returned `true` indicating everything (up to and including our payload) was synchronously
                                                                                                                                                                                      +
                                                                                                                                                                                      973 * given to kernel successfuly; or this will never occur, because outgoing-pipe-ending error was encountered.
                                                                                                                                                                                      +
                                                                                                                                                                                      974 * Since this is send_blob(), we do not care: there is no on-done
                                                                                                                                                                                      +
                                                                                                                                                                                      975 * callback to invoke, as m_finished is false, as *end_sending() has not been called yet. */
                                                                                                                                                                                      +
                                                                                                                                                                                      976
                                                                                                                                                                                      +
                                                                                                                                                                                      977 /* No new error: Emit to user that this op did not emit error (m_pending_err_code is still falsy).
                                                                                                                                                                                      +
                                                                                                                                                                                      978 * New error: Any subsequent attempt will emit this truthy value; do not forget to emit it now via *err_code. */
                                                                                                                                                                                      +
                                                                                                                                                                                      979 *err_code = m_pending_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      980
                                                                                                                                                                                      +
                                                                                                                                                                                      981 // Did it generate a new error?
                                                                                                                                                                                      +
                                                                                                                                                                                      982 if (*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      983 {
                                                                                                                                                                                      +
                                                                                                                                                                                      984 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Wanted to send user message but detected error "
                                                                                                                                                                                      +
                                                                                                                                                                                      985 "synchronously. "
                                                                                                                                                                                      +
                                                                                                                                                                                      986 "Error code details follow: [" << *err_code << "] [" << err_code->message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      987 "Saved error code to return in next user send attempt if any, after this attempt also "
                                                                                                                                                                                      +
                                                                                                                                                                                      988 "returns that error code synchronously first.");
                                                                                                                                                                                      +
                                                                                                                                                                                      989 }
                                                                                                                                                                                      +
                                                                                                                                                                                      990 else if (m_auto_ping_period != Fine_duration::zero()) // && (!*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      991 {
                                                                                                                                                                                      +
                                                                                                                                                                                      992 /* Send requested, and there was no error; that represents non-idleness. If auto_ping() has been called
                                                                                                                                                                                      +
                                                                                                                                                                                      993 * (the feature is engaged), idleness shall occur at worst in m_auto_ping_period; hence reschedule
                                                                                                                                                                                      +
                                                                                                                                                                                      994 * on_ev_auto_ping_now_timer_fired(). */
                                                                                                                                                                                      995
                                                                                                                                                                                      -
                                                                                                                                                                                      996 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Send request from user; hence rescheduled "
                                                                                                                                                                                      -
                                                                                                                                                                                      997 "auto-ping to occur in "
                                                                                                                                                                                      -
                                                                                                                                                                                      998 "[" << round<milliseconds>(m_auto_ping_period) << "] (will re-reschedule "
                                                                                                                                                                                      -
                                                                                                                                                                                      999 "again upon any other outgoing traffic that might be requested before then). As a result "
                                                                                                                                                                                      -
                                                                                                                                                                                      1000 "[" << n_canceled << "] previously scheduled auto-pings have been canceled; 1 is most likely; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1001 "0 means an auto-ping is *just* about to fire (we lost the race -- which is fine).");
                                                                                                                                                                                      -
                                                                                                                                                                                      1002 if (n_canceled == 1)
                                                                                                                                                                                      -
                                                                                                                                                                                      1003 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1004 /* m_timer_worker will m_auto_ping_timer.async_wait(F), where F() will signal through pipe,
                                                                                                                                                                                      -
                                                                                                                                                                                      1005 * making *m_auto_ping_timer_fired_peer readable. We've already used m_ev_wait_func() to start
                                                                                                                                                                                      -
                                                                                                                                                                                      1006 * wait on it being readable and invoke on_ev_auto_ping_now_timer_fired() in that case; but we've
                                                                                                                                                                                      -
                                                                                                                                                                                      1007 * canceled the previous .async_wait() that would make it readable; so just redo that part. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1008 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      -
                                                                                                                                                                                      1009 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1010 else
                                                                                                                                                                                      -
                                                                                                                                                                                      1011 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1012 assert((n_canceled == 0) && "We only invoke one timer async_wait() at a time.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1013
                                                                                                                                                                                      -
                                                                                                                                                                                      1014 /* Too late to cancel on_ev_auto_ping_now_timer_fired(), so it'll just schedule next one itself.
                                                                                                                                                                                      -
                                                                                                                                                                                      1015 * Note that in practice the effect is about the same. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1016 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1017 } // else if (m_auto_ping_period != zero) && (!*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1018 // else if (m_auto_ping_period == zero) && (!*err_code) { Auto-ping feature not engaged. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1019 } /* else if (!m_finished) && (blob.size() OK) && (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1020 * (but m_pending_err_code may have become truthy inside) */
                                                                                                                                                                                      -
                                                                                                                                                                                      1021
                                                                                                                                                                                      -
                                                                                                                                                                                      1022 if (*err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1023 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1024 // At the end try to categorize nature of error.
                                                                                                                                                                                      -
                                                                                                                                                                                      1025 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Wanted to send blob of size "
                                                                                                                                                                                      -
                                                                                                                                                                                      1026 "[" << blob.size() << "], but an error (not necessarily new error) "
                                                                                                                                                                                      -
                                                                                                                                                                                      1027 "encountered on pipe or in user API args. Error code details follow: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1028 "[" << *err_code << "] [" << err_code->message() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1029 "pipe hosed (sys/protocol error)? = "
                                                                                                                                                                                      -
                                                                                                                                                                                      1030 "[" << ((*err_code != error::Code::S_INVALID_ARGUMENT)
                                                                                                                                                                                      -
                                                                                                                                                                                      1031 && (*err_code != error::Code::S_SENDS_FINISHED_CANNOT_SEND)) << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1032 "sending disabled by user? = "
                                                                                                                                                                                      -
                                                                                                                                                                                      1033 "[" << (*err_code == error::Code::S_SENDS_FINISHED_CANNOT_SEND) << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1034 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1035
                                                                                                                                                                                      -
                                                                                                                                                                                      1036 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1037} // Blob_stream_mq_sender_impl::send_blob()
                                                                                                                                                                                      -
                                                                                                                                                                                      1038
                                                                                                                                                                                      -
                                                                                                                                                                                      1039template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1041{
                                                                                                                                                                                      -
                                                                                                                                                                                      1042 return async_end_sending_impl(nullptr, flow::async::Task_asio_err());
                                                                                                                                                                                      -
                                                                                                                                                                                      1043}
                                                                                                                                                                                      -
                                                                                                                                                                                      1044
                                                                                                                                                                                      -
                                                                                                                                                                                      1045template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      1046template<typename Task_err>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1048 Task_err&& on_done_func)
                                                                                                                                                                                      -
                                                                                                                                                                                      1049{
                                                                                                                                                                                      -
                                                                                                                                                                                      1050 Error_code sync_err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      1051 // This guy either takes null/.empty(), or non-null/non-.empty(): it doesn't do the Flow-style error emission itself.
                                                                                                                                                                                      -
                                                                                                                                                                                      1052 const bool ok = async_end_sending_impl(&sync_err_code, flow::async::Task_asio_err(std::move(on_done_func)));
                                                                                                                                                                                      -
                                                                                                                                                                                      1053
                                                                                                                                                                                      -
                                                                                                                                                                                      1054 if (!ok)
                                                                                                                                                                                      -
                                                                                                                                                                                      1055 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1056 return false; // False start.
                                                                                                                                                                                      -
                                                                                                                                                                                      1057 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1058 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1059
                                                                                                                                                                                      -
                                                                                                                                                                                      1060 // Standard error-reporting semantics.
                                                                                                                                                                                      -
                                                                                                                                                                                      1061 if ((!sync_err_code_ptr) && sync_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1062 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1063 throw flow::error::Runtime_error(sync_err_code, "Blob_stream_mq_sender_impl::async_end_sending()");
                                                                                                                                                                                      -
                                                                                                                                                                                      1064 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1065 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1066 sync_err_code_ptr && (*sync_err_code_ptr = sync_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1067 // And if (!sync_err_code_ptr) + no error => no throw.
                                                                                                                                                                                      -
                                                                                                                                                                                      1068
                                                                                                                                                                                      -
                                                                                                                                                                                      1069 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1070} // Blob_stream_mq_sender_impl::async_end_sending()
                                                                                                                                                                                      -
                                                                                                                                                                                      1071
                                                                                                                                                                                      -
                                                                                                                                                                                      1072template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1074 (Error_code* sync_err_code_ptr_or_null, flow::async::Task_asio_err&& on_done_func_or_empty)
                                                                                                                                                                                      -
                                                                                                                                                                                      1075{
                                                                                                                                                                                      -
                                                                                                                                                                                      1076 using flow::async::Task_asio_err;
                                                                                                                                                                                      -
                                                                                                                                                                                      1077
                                                                                                                                                                                      -
                                                                                                                                                                                      1078 assert((bool(sync_err_code_ptr_or_null) == (!on_done_func_or_empty.empty()))
                                                                                                                                                                                      -
                                                                                                                                                                                      1079 && "Our contract: indicate whether we care about completion at all -- or not at all -- no in-between.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1080
                                                                                                                                                                                      -
                                                                                                                                                                                      1081 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      1082 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1083 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::async_end_sending[_impl]().
                                                                                                                                                                                      -
                                                                                                                                                                                      1084 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      -
                                                                                                                                                                                      1085 * Yet there are enough differences to where code reuse isn't really obviously achievable.
                                                                                                                                                                                      -
                                                                                                                                                                                      1086 * @todo Look into it. Don't forget async_end_sending() that calls us: also quite similar to their counterpart. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1087
                                                                                                                                                                                      -
                                                                                                                                                                                      1088 if (!op_started("async_end_sending()"))
                                                                                                                                                                                      -
                                                                                                                                                                                      1089 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1090 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1091 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1092 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1093
                                                                                                                                                                                      -
                                                                                                                                                                                      1094 if (m_finished)
                                                                                                                                                                                      -
                                                                                                                                                                                      1095 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1096 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to end sending; we're in sends-finished "
                                                                                                                                                                                      -
                                                                                                                                                                                      1097 "state already. Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1098 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1099 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1100 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1101 m_finished = true; // Cause future send_blob() to emit S_SENDS_FINISHED_CANNOT_SEND and return.
                                                                                                                                                                                      -
                                                                                                                                                                                      1102
                                                                                                                                                                                      -
                                                                                                                                                                                      1103 bool qd; // Set to false to report results *now*: basically true <=> stuff is still queued to send.
                                                                                                                                                                                      -
                                                                                                                                                                                      1104 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1105 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1106 qd = false; // There was outgoing-pipe-ending error detected before us; so should immediately report.
                                                                                                                                                                                      -
                                                                                                                                                                                      1107 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1108 else
                                                                                                                                                                                      -
                                                                                                                                                                                      1109 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1110 /* Send the payloads per aforementioned (class doc header) strategy:
                                                                                                                                                                                      -
                                                                                                                                                                                      1111 * I.e., send empty message (receiver enters CONTROL state) and immediately Control_cmd::S_END_SENDING-bearing
                                                                                                                                                                                      -
                                                                                                                                                                                      1112 * message. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1113
                                                                                                                                                                                      -
                                                                                                                                                                                      1114 // Queue has been entirely flushed (encountering error counts as: yes, flushed) <=> qd = false.
                                                                                                                                                                                      -
                                                                                                                                                                                      1115 qd = !sync_write_or_q_ctl_cmd(Control_cmd::S_END_SENDING);
                                                                                                                                                                                      -
                                                                                                                                                                                      1116 if (qd && sync_err_code_ptr_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      1117 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1118 /* It has not been flushed (we will return would-block).
                                                                                                                                                                                      -
                                                                                                                                                                                      1119 * Save this to emit once everything (including the thing we just made) has been sent off, since
                                                                                                                                                                                      -
                                                                                                                                                                                      1120 * they care about completion (sync_err_code_ptr_or_null not null). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1121 assert(m_pending_on_last_send_done_func_or_empty.empty());
                                                                                                                                                                                      -
                                                                                                                                                                                      1122 m_pending_on_last_send_done_func_or_empty = std::move(on_done_func_or_empty);
                                                                                                                                                                                      -
                                                                                                                                                                                      1123 // on_done_func_or_empty is potentially hosed now.
                                                                                                                                                                                      -
                                                                                                                                                                                      1124 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1125 /* else if (qd && (!sync_err_code_ptr_or_null))
                                                                                                                                                                                      -
                                                                                                                                                                                      1126 * { on_done_func_or_empty is .empty() anyway. Anyway they don't care about emitting result. Done:
                                                                                                                                                                                      -
                                                                                                                                                                                      1127 * It'll be async-sent when/if possible. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1128 * else if (!qd)
                                                                                                                                                                                      -
                                                                                                                                                                                      1129 * { All flushed synchronously. We will emit it synchronously, if they're interested in that. } */
                                                                                                                                                                                      -
                                                                                                                                                                                      1130 } // if (!m_pending_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      -
                                                                                                                                                                                      1131
                                                                                                                                                                                      -
                                                                                                                                                                                      1132 // Log the error, if any; report the result synchronously if applicable.
                                                                                                                                                                                      +
                                                                                                                                                                                      996 const size_t n_canceled = m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      +
                                                                                                                                                                                      997
                                                                                                                                                                                      +
                                                                                                                                                                                      998 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Send request from user; hence rescheduled "
                                                                                                                                                                                      +
                                                                                                                                                                                      999 "auto-ping to occur in "
                                                                                                                                                                                      +
                                                                                                                                                                                      1000 "[" << round<milliseconds>(m_auto_ping_period) << "] (will re-reschedule "
                                                                                                                                                                                      +
                                                                                                                                                                                      1001 "again upon any other outgoing traffic that might be requested before then). As a result "
                                                                                                                                                                                      +
                                                                                                                                                                                      1002 "[" << n_canceled << "] previously scheduled auto-pings have been canceled; 1 is most likely; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1003 "0 means an auto-ping is *just* about to fire (we lost the race -- which is fine).");
                                                                                                                                                                                      +
                                                                                                                                                                                      1004 if (n_canceled == 1)
                                                                                                                                                                                      +
                                                                                                                                                                                      1005 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1006 /* m_timer_worker will m_auto_ping_timer.async_wait(F), where F() will signal through pipe,
                                                                                                                                                                                      +
                                                                                                                                                                                      1007 * making *m_auto_ping_timer_fired_peer readable. We've already used m_ev_wait_func() to start
                                                                                                                                                                                      +
                                                                                                                                                                                      1008 * wait on it being readable and invoke on_ev_auto_ping_now_timer_fired() in that case; but we've
                                                                                                                                                                                      +
                                                                                                                                                                                      1009 * canceled the previous .async_wait() that would make it readable; so just redo that part. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1010 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      1011 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1012 else
                                                                                                                                                                                      +
                                                                                                                                                                                      1013 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1014 assert((n_canceled == 0) && "We only invoke one timer async_wait() at a time.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1015
                                                                                                                                                                                      +
                                                                                                                                                                                      1016 /* Too late to cancel on_ev_auto_ping_now_timer_fired(), so it'll just schedule next one itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      1017 * Note that in practice the effect is about the same. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1018 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1019 } // else if (m_auto_ping_period != zero) && (!*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1020 // else if (m_auto_ping_period == zero) && (!*err_code) { Auto-ping feature not engaged. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1021 } /* else if (!m_finished) && (blob.size() OK) && (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1022 * (but m_pending_err_code may have become truthy inside) */
                                                                                                                                                                                      +
                                                                                                                                                                                      1023
                                                                                                                                                                                      +
                                                                                                                                                                                      1024 if (*err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1025 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1026 // At the end try to categorize nature of error.
                                                                                                                                                                                      +
                                                                                                                                                                                      1027 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Wanted to send blob of size "
                                                                                                                                                                                      +
                                                                                                                                                                                      1028 "[" << blob.size() << "], but an error (not necessarily new error) "
                                                                                                                                                                                      +
                                                                                                                                                                                      1029 "encountered on pipe or in user API args. Error code details follow: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1030 "[" << *err_code << "] [" << err_code->message() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1031 "pipe hosed (sys/protocol error)? = "
                                                                                                                                                                                      +
                                                                                                                                                                                      1032 "[" << ((*err_code != error::Code::S_INVALID_ARGUMENT)
                                                                                                                                                                                      +
                                                                                                                                                                                      1033 && (*err_code != error::Code::S_SENDS_FINISHED_CANNOT_SEND)) << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1034 "sending disabled by user? = "
                                                                                                                                                                                      +
                                                                                                                                                                                      1035 "[" << (*err_code == error::Code::S_SENDS_FINISHED_CANNOT_SEND) << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1036 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1037
                                                                                                                                                                                      +
                                                                                                                                                                                      1038 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1039} // Blob_stream_mq_sender_impl::send_blob()
                                                                                                                                                                                      +
                                                                                                                                                                                      1040
                                                                                                                                                                                      +
                                                                                                                                                                                      1041template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1043{
                                                                                                                                                                                      +
                                                                                                                                                                                      1044 return async_end_sending_impl(nullptr, flow::async::Task_asio_err());
                                                                                                                                                                                      +
                                                                                                                                                                                      1045}
                                                                                                                                                                                      +
                                                                                                                                                                                      1046
                                                                                                                                                                                      +
                                                                                                                                                                                      1047template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      1048template<typename Task_err>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1050 Task_err&& on_done_func)
                                                                                                                                                                                      +
                                                                                                                                                                                      1051{
                                                                                                                                                                                      +
                                                                                                                                                                                      1052 Error_code sync_err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      1053 // This guy either takes null/.empty(), or non-null/non-.empty(): it doesn't do the Flow-style error emission itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      1054 const bool ok = async_end_sending_impl(&sync_err_code, flow::async::Task_asio_err(std::move(on_done_func)));
                                                                                                                                                                                      +
                                                                                                                                                                                      1055
                                                                                                                                                                                      +
                                                                                                                                                                                      1056 if (!ok)
                                                                                                                                                                                      +
                                                                                                                                                                                      1057 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1058 return false; // False start.
                                                                                                                                                                                      +
                                                                                                                                                                                      1059 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1060 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1061
                                                                                                                                                                                      +
                                                                                                                                                                                      1062 // Standard error-reporting semantics.
                                                                                                                                                                                      +
                                                                                                                                                                                      1063 if ((!sync_err_code_ptr) && sync_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1064 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1065 throw flow::error::Runtime_error(sync_err_code, "Blob_stream_mq_sender_impl::async_end_sending()");
                                                                                                                                                                                      +
                                                                                                                                                                                      1066 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1067 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1068 sync_err_code_ptr && (*sync_err_code_ptr = sync_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1069 // And if (!sync_err_code_ptr) + no error => no throw.
                                                                                                                                                                                      +
                                                                                                                                                                                      1070
                                                                                                                                                                                      +
                                                                                                                                                                                      1071 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1072} // Blob_stream_mq_sender_impl::async_end_sending()
                                                                                                                                                                                      +
                                                                                                                                                                                      1073
                                                                                                                                                                                      +
                                                                                                                                                                                      1074template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1076 (Error_code* sync_err_code_ptr_or_null, flow::async::Task_asio_err&& on_done_func_or_empty)
                                                                                                                                                                                      +
                                                                                                                                                                                      1077{
                                                                                                                                                                                      +
                                                                                                                                                                                      1078 using flow::async::Task_asio_err;
                                                                                                                                                                                      +
                                                                                                                                                                                      1079
                                                                                                                                                                                      +
                                                                                                                                                                                      1080 assert((bool(sync_err_code_ptr_or_null) == (!on_done_func_or_empty.empty()))
                                                                                                                                                                                      +
                                                                                                                                                                                      1081 && "Our contract: indicate whether we care about completion at all -- or not at all -- no in-between.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1082
                                                                                                                                                                                      +
                                                                                                                                                                                      1083 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      1084 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1085 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::async_end_sending[_impl]().
                                                                                                                                                                                      +
                                                                                                                                                                                      1086 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      +
                                                                                                                                                                                      1087 * Yet there are enough differences to where code reuse isn't really obviously achievable.
                                                                                                                                                                                      +
                                                                                                                                                                                      1088 * @todo Look into it. Don't forget async_end_sending() that calls us: also quite similar to their counterpart. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1089
                                                                                                                                                                                      +
                                                                                                                                                                                      1090 if (!op_started("async_end_sending()"))
                                                                                                                                                                                      +
                                                                                                                                                                                      1091 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1092 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1093 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1094 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1095
                                                                                                                                                                                      +
                                                                                                                                                                                      1096 if (m_finished)
                                                                                                                                                                                      +
                                                                                                                                                                                      1097 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1098 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to end sending; we're in sends-finished "
                                                                                                                                                                                      +
                                                                                                                                                                                      1099 "state already. Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1100 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1101 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1102 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1103 m_finished = true; // Cause future send_blob() to emit S_SENDS_FINISHED_CANNOT_SEND and return.
                                                                                                                                                                                      +
                                                                                                                                                                                      1104
                                                                                                                                                                                      +
                                                                                                                                                                                      1105 bool qd; // Set to false to report results *now*: basically true <=> stuff is still queued to send.
                                                                                                                                                                                      +
                                                                                                                                                                                      1106 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1107 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1108 qd = false; // There was outgoing-pipe-ending error detected before us; so should immediately report.
                                                                                                                                                                                      +
                                                                                                                                                                                      1109 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1110 else
                                                                                                                                                                                      +
                                                                                                                                                                                      1111 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1112 /* Send the payloads per aforementioned (class doc header) strategy:
                                                                                                                                                                                      +
                                                                                                                                                                                      1113 * I.e., send empty message (receiver enters CONTROL state) and immediately Control_cmd::S_END_SENDING-bearing
                                                                                                                                                                                      +
                                                                                                                                                                                      1114 * message. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1115
                                                                                                                                                                                      +
                                                                                                                                                                                      1116 // Queue has been entirely flushed (encountering error counts as: yes, flushed) <=> qd = false.
                                                                                                                                                                                      +
                                                                                                                                                                                      1117 qd = !sync_write_or_q_ctl_cmd(Control_cmd::S_END_SENDING);
                                                                                                                                                                                      +
                                                                                                                                                                                      1118 if (qd && sync_err_code_ptr_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      1119 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1120 /* It has not been flushed (we will return would-block).
                                                                                                                                                                                      +
                                                                                                                                                                                      1121 * Save this to emit once everything (including the thing we just made) has been sent off, since
                                                                                                                                                                                      +
                                                                                                                                                                                      1122 * they care about completion (sync_err_code_ptr_or_null not null). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1123 assert(m_pending_on_last_send_done_func_or_empty.empty());
                                                                                                                                                                                      +
                                                                                                                                                                                      1124 m_pending_on_last_send_done_func_or_empty = std::move(on_done_func_or_empty);
                                                                                                                                                                                      +
                                                                                                                                                                                      1125 // on_done_func_or_empty is potentially hosed now.
                                                                                                                                                                                      +
                                                                                                                                                                                      1126 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1127 /* else if (qd && (!sync_err_code_ptr_or_null))
                                                                                                                                                                                      +
                                                                                                                                                                                      1128 * { on_done_func_or_empty is .empty() anyway. Anyway they don't care about emitting result. Done:
                                                                                                                                                                                      +
                                                                                                                                                                                      1129 * It'll be async-sent when/if possible. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1130 * else if (!qd)
                                                                                                                                                                                      +
                                                                                                                                                                                      1131 * { All flushed synchronously. We will emit it synchronously, if they're interested in that. } */
                                                                                                                                                                                      +
                                                                                                                                                                                      1132 } // if (!m_pending_err_code) (but it may have become truthy inside)
                                                                                                                                                                                      1133
                                                                                                                                                                                      -
                                                                                                                                                                                      1134 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1135 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1136 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending, but error (not "
                                                                                                                                                                                      -
                                                                                                                                                                                      1137 "necessarily new error) encountered on pipe synchronously when trying to send graceful-close. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1138 "Nevertheless locally sends-finished state is now active. Will report completion via "
                                                                                                                                                                                      -
                                                                                                                                                                                      1139 "sync-args (if any). Error code details follow: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1140 "[" << m_pending_err_code << "] [" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1141 assert(!qd);
                                                                                                                                                                                      -
                                                                                                                                                                                      1142 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1143 else if (qd)
                                                                                                                                                                                      -
                                                                                                                                                                                      1144 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1145 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending. Success so far but "
                                                                                                                                                                                      -
                                                                                                                                                                                      1146 "out-queue has payloads -- at least the graceful-close payload -- still pending while waiting for "
                                                                                                                                                                                      -
                                                                                                                                                                                      1147 "writability. Locally sends-finished state is now active, and the other side will be informed "
                                                                                                                                                                                      -
                                                                                                                                                                                      1148 "of this barring subsequent system errors. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1149 "We cannot report completion via sync-args (if any).");
                                                                                                                                                                                      -
                                                                                                                                                                                      1150 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1151 else // if ((!m_pending_err_code) && (!qd))
                                                                                                                                                                                      -
                                                                                                                                                                                      1152 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1153 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending. Immediate success: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1154 "out-queue flushed permanently. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1155 "Locally sends-finished state is now active, and the other side will be informed of this. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1156 "Locally will report completion via sync-args (if any).");
                                                                                                                                                                                      -
                                                                                                                                                                                      1157 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1158
                                                                                                                                                                                      -
                                                                                                                                                                                      1159 if (sync_err_code_ptr_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      1160 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1161 *sync_err_code_ptr_or_null = qd ? error::Code::S_SYNC_IO_WOULD_BLOCK
                                                                                                                                                                                      -
                                                                                                                                                                                      1162 : m_pending_err_code; // Could be falsy (probably is usually).
                                                                                                                                                                                      -
                                                                                                                                                                                      1163 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1164 // else { Don't care about completion. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1165
                                                                                                                                                                                      -
                                                                                                                                                                                      1166 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1167} // Blob_stream_mq_sender_impl::async_end_sending_impl()
                                                                                                                                                                                      -
                                                                                                                                                                                      1168
                                                                                                                                                                                      -
                                                                                                                                                                                      1169template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1171{
                                                                                                                                                                                      -
                                                                                                                                                                                      1172 using util::Fine_duration;
                                                                                                                                                                                      -
                                                                                                                                                                                      1173 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      1174 using boost::chrono::round;
                                                                                                                                                                                      -
                                                                                                                                                                                      1175 using boost::chrono::milliseconds;
                                                                                                                                                                                      -
                                                                                                                                                                                      1176
                                                                                                                                                                                      -
                                                                                                                                                                                      1177 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      1178 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1179 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::auto_ping().
                                                                                                                                                                                      -
                                                                                                                                                                                      1180 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      -
                                                                                                                                                                                      1181 * Yet there are enough differences to where code reuse isn't really obviously achievable. @todo Look into it. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1182
                                                                                                                                                                                      -
                                                                                                                                                                                      1183 if (!op_started("auto_ping()"))
                                                                                                                                                                                      -
                                                                                                                                                                                      1184 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1185 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1186 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1187 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1188
                                                                                                                                                                                      -
                                                                                                                                                                                      1189 assert(period.count() > 0);
                                                                                                                                                                                      +
                                                                                                                                                                                      1134 // Log the error, if any; report the result synchronously if applicable.
                                                                                                                                                                                      +
                                                                                                                                                                                      1135
                                                                                                                                                                                      +
                                                                                                                                                                                      1136 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1137 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1138 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending, but error (not "
                                                                                                                                                                                      +
                                                                                                                                                                                      1139 "necessarily new error) encountered on pipe synchronously when trying to send graceful-close. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1140 "Nevertheless locally sends-finished state is now active. Will report completion via "
                                                                                                                                                                                      +
                                                                                                                                                                                      1141 "sync-args (if any). Error code details follow: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1142 "[" << m_pending_err_code << "] [" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1143 assert(!qd);
                                                                                                                                                                                      +
                                                                                                                                                                                      1144 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1145 else if (qd)
                                                                                                                                                                                      +
                                                                                                                                                                                      1146 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1147 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending. Success so far but "
                                                                                                                                                                                      +
                                                                                                                                                                                      1148 "out-queue has payloads -- at least the graceful-close payload -- still pending while waiting for "
                                                                                                                                                                                      +
                                                                                                                                                                                      1149 "writability. Locally sends-finished state is now active, and the other side will be informed "
                                                                                                                                                                                      +
                                                                                                                                                                                      1150 "of this barring subsequent system errors. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1151 "We cannot report completion via sync-args (if any).");
                                                                                                                                                                                      +
                                                                                                                                                                                      1152 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1153 else // if ((!m_pending_err_code) && (!qd))
                                                                                                                                                                                      +
                                                                                                                                                                                      1154 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1155 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wanted to end sending. Immediate success: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1156 "out-queue flushed permanently. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1157 "Locally sends-finished state is now active, and the other side will be informed of this. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1158 "Locally will report completion via sync-args (if any).");
                                                                                                                                                                                      +
                                                                                                                                                                                      1159 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1160
                                                                                                                                                                                      +
                                                                                                                                                                                      1161 if (sync_err_code_ptr_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      1162 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1163 *sync_err_code_ptr_or_null = qd ? error::Code::S_SYNC_IO_WOULD_BLOCK
                                                                                                                                                                                      +
                                                                                                                                                                                      1164 : m_pending_err_code; // Could be falsy (probably is usually).
                                                                                                                                                                                      +
                                                                                                                                                                                      1165 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1166 // else { Don't care about completion. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1167
                                                                                                                                                                                      +
                                                                                                                                                                                      1168 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1169} // Blob_stream_mq_sender_impl::async_end_sending_impl()
                                                                                                                                                                                      +
                                                                                                                                                                                      1170
                                                                                                                                                                                      +
                                                                                                                                                                                      1171template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1173{
                                                                                                                                                                                      +
                                                                                                                                                                                      1174 using util::Fine_duration;
                                                                                                                                                                                      +
                                                                                                                                                                                      1175 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      1176 using boost::chrono::round;
                                                                                                                                                                                      +
                                                                                                                                                                                      1177 using boost::chrono::milliseconds;
                                                                                                                                                                                      +
                                                                                                                                                                                      1178
                                                                                                                                                                                      +
                                                                                                                                                                                      1179 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      1180 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1181 * There is a *lot* of similarity between this and sync_io::Native_socket_stream::Impl::auto_ping().
                                                                                                                                                                                      +
                                                                                                                                                                                      1182 * In fact I (ygoldfel) wrote that guy's send stuff first, then I based this off it.
                                                                                                                                                                                      +
                                                                                                                                                                                      1183 * Yet there are enough differences to where code reuse isn't really obviously achievable. @todo Look into it. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1184
                                                                                                                                                                                      +
                                                                                                                                                                                      1185 if (!op_started("auto_ping()"))
                                                                                                                                                                                      +
                                                                                                                                                                                      1186 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1187 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1188 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1189 // else
                                                                                                                                                                                      1190
                                                                                                                                                                                      -
                                                                                                                                                                                      1191 if (m_finished)
                                                                                                                                                                                      -
                                                                                                                                                                                      1192 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1193 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings, but we're in "
                                                                                                                                                                                      -
                                                                                                                                                                                      1194 "sends-finished state already. Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1195 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1196 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1197 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1198
                                                                                                                                                                                      -
                                                                                                                                                                                      1199 /* By concept requirements we are to do 2 things: send an auto-ping now as a baseline; and then make it so
                                                                                                                                                                                      -
                                                                                                                                                                                      1200 * *some* message (auto-ping or otherwise) is sent at least every `period` until *end_sending() or error. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1201
                                                                                                                                                                                      -
                                                                                                                                                                                      1202 /* Prepare/send the payload per class doc header strategy.
                                                                                                                                                                                      -
                                                                                                                                                                                      1203 * Keeping comments somewhat light, as this is essentially a much simplified version of send_blob()
                                                                                                                                                                                      -
                                                                                                                                                                                      1204 * and is very similar to what async_end_sending() does in this spot. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1205
                                                                                                                                                                                      -
                                                                                                                                                                                      1206 if (m_auto_ping_period != Fine_duration::zero())
                                                                                                                                                                                      -
                                                                                                                                                                                      1207 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1208 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings, but this "
                                                                                                                                                                                      -
                                                                                                                                                                                      1209 "has already been engaged earlier. Ignoring.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1210 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1211 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1212 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1213 m_auto_ping_period = period; // Remember this, both as flag (non-zero()) and to know how often to reschedule it.
                                                                                                                                                                                      -
                                                                                                                                                                                      1214
                                                                                                                                                                                      -
                                                                                                                                                                                      1215 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings so that there are "
                                                                                                                                                                                      -
                                                                                                                                                                                      1216 "outgoing messages at least as frequently as every "
                                                                                                                                                                                      -
                                                                                                                                                                                      1217 "[" << round<milliseconds>(m_auto_ping_period) << "]. Sending baseline auto-ping and scheduling "
                                                                                                                                                                                      -
                                                                                                                                                                                      1218 "first subsequent auto-ping; it may be rescheduled if more user traffic occurs before then.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1219
                                                                                                                                                                                      -
                                                                                                                                                                                      1220 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1221 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1222 /* Concept does not require us to report any error via auto_ping() itself. It's for receiver's benefit anyway.
                                                                                                                                                                                      -
                                                                                                                                                                                      1223 * The local user will discover it, assuming they have interest, via the next send_*() or *end_sending(). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1224 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wanted to start auto-pings, but an error was "
                                                                                                                                                                                      -
                                                                                                                                                                                      1225 "previously encountered on pipe; so will not auto-ping. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1226 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1227 "[" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1228 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1229 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1230 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1231
                                                                                                                                                                                      -
                                                                                                                                                                                      1232 sync_write_or_q_ctl_cmd(Control_cmd::S_PING);
                                                                                                                                                                                      -
                                                                                                                                                                                      1233 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1234 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1235 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Wanted to send initial auto-ping but "
                                                                                                                                                                                      -
                                                                                                                                                                                      1236 "detected error synchronously. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1237 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1238 "[" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1239 "Saved error code to return in next user send attempt if any; otherwise ignoring; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1240 "will not schedule periodic auto-pings.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1241 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1242 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1243 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1244
                                                                                                                                                                                      -
                                                                                                                                                                                      1245 // Initial auto-ping partially- or fully-sent fine (anything unsent was queued). Now schedule next one per above.
                                                                                                                                                                                      +
                                                                                                                                                                                      1191 assert(period.count() > 0);
                                                                                                                                                                                      +
                                                                                                                                                                                      1192
                                                                                                                                                                                      +
                                                                                                                                                                                      1193 if (m_finished)
                                                                                                                                                                                      +
                                                                                                                                                                                      1194 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1195 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings, but we're in "
                                                                                                                                                                                      +
                                                                                                                                                                                      1196 "sends-finished state already. Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1197 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1198 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1199 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1200
                                                                                                                                                                                      +
                                                                                                                                                                                      1201 /* By concept requirements we are to do 2 things: send an auto-ping now as a baseline; and then make it so
                                                                                                                                                                                      +
                                                                                                                                                                                      1202 * *some* message (auto-ping or otherwise) is sent at least every `period` until *end_sending() or error. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1203
                                                                                                                                                                                      +
                                                                                                                                                                                      1204 /* Prepare/send the payload per class doc header strategy.
                                                                                                                                                                                      +
                                                                                                                                                                                      1205 * Keeping comments somewhat light, as this is essentially a much simplified version of send_blob()
                                                                                                                                                                                      +
                                                                                                                                                                                      1206 * and is very similar to what async_end_sending() does in this spot. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1207
                                                                                                                                                                                      +
                                                                                                                                                                                      1208 if (m_auto_ping_period != Fine_duration::zero())
                                                                                                                                                                                      +
                                                                                                                                                                                      1209 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1210 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings, but this "
                                                                                                                                                                                      +
                                                                                                                                                                                      1211 "has already been engaged earlier. Ignoring.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1212 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1213 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1214 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1215 m_auto_ping_period = period; // Remember this, both as flag (non-zero()) and to know how often to reschedule it.
                                                                                                                                                                                      +
                                                                                                                                                                                      1216
                                                                                                                                                                                      +
                                                                                                                                                                                      1217 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: User wants to start auto-pings so that there are "
                                                                                                                                                                                      +
                                                                                                                                                                                      1218 "outgoing messages at least as frequently as every "
                                                                                                                                                                                      +
                                                                                                                                                                                      1219 "[" << round<milliseconds>(m_auto_ping_period) << "]. Sending baseline auto-ping and scheduling "
                                                                                                                                                                                      +
                                                                                                                                                                                      1220 "first subsequent auto-ping; it may be rescheduled if more user traffic occurs before then.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1221
                                                                                                                                                                                      +
                                                                                                                                                                                      1222 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1223 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1224 /* Concept does not require us to report any error via auto_ping() itself. It's for receiver's benefit anyway.
                                                                                                                                                                                      +
                                                                                                                                                                                      1225 * The local user will discover it, assuming they have interest, via the next send_*() or *end_sending(). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1226 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User wanted to start auto-pings, but an error was "
                                                                                                                                                                                      +
                                                                                                                                                                                      1227 "previously encountered on pipe; so will not auto-ping. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1228 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1229 "[" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1230 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1231 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1232 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1233
                                                                                                                                                                                      +
                                                                                                                                                                                      1234 sync_write_or_q_ctl_cmd(Control_cmd::S_PING);
                                                                                                                                                                                      +
                                                                                                                                                                                      1235 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1236 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1237 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Wanted to send initial auto-ping but "
                                                                                                                                                                                      +
                                                                                                                                                                                      1238 "detected error synchronously. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1239 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1240 "[" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1241 "Saved error code to return in next user send attempt if any; otherwise ignoring; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1242 "will not schedule periodic auto-pings.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1243 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1244 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1245 // else
                                                                                                                                                                                      1246
                                                                                                                                                                                      -
                                                                                                                                                                                      1247 /* Now we can schedule it, similarly to send_blob() and on_ev_auto_ping_now_timer_fired() itself.
                                                                                                                                                                                      -
                                                                                                                                                                                      1248 * Recall that we can't simply .async_wait(F) on some timer and have the desired code --
                                                                                                                                                                                      -
                                                                                                                                                                                      1249 * on_ev_auto_ping_now_timer_fired() which sends the ping -- be the handler F. We have to use the sync_io
                                                                                                                                                                                      -
                                                                                                                                                                                      1250 * pattern, where the user waits on events for us... but there's no timer FD, so we do it in the separate thread and
                                                                                                                                                                                      -
                                                                                                                                                                                      1251 * then ping via a pipe. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1252
                                                                                                                                                                                      -
                                                                                                                                                                                      1253 m_ev_wait_func(&m_ev_wait_hndl_auto_ping_timer_fired_peer,
                                                                                                                                                                                      -
                                                                                                                                                                                      1254 false, // Wait for read.
                                                                                                                                                                                      -
                                                                                                                                                                                      1255 // Once readable do this: pop pipe; send ping; schedule again.
                                                                                                                                                                                      -
                                                                                                                                                                                      1256 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      1257 ([this]() { on_ev_auto_ping_now_timer_fired(); }));
                                                                                                                                                                                      -
                                                                                                                                                                                      1258 /* Reminder: That has no effect (other than user recording stuff) until this method returns.
                                                                                                                                                                                      -
                                                                                                                                                                                      1259 * So it cannot execute concurrently or anything. They'd need to do their poll()/epoll_wait() or do so
                                                                                                                                                                                      -
                                                                                                                                                                                      1260 * indirectly by returning from the present boost.asio task (if they're running a boost.asio event loop). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1261
                                                                                                                                                                                      -
                                                                                                                                                                                      1262 /* Set up the actual timer. The second call really does m_auto_ping_timer.async_wait().
                                                                                                                                                                                      -
                                                                                                                                                                                      1263 * Note that could fire immediately, even concurrently (if m_auto_ping_period is somehow insanely short,
                                                                                                                                                                                      -
                                                                                                                                                                                      1264 * and the timer resolution is amazing)... but it would only cause on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      -
                                                                                                                                                                                      1265 * once they detect the pipe-readable event, which (again) can only happen after we return. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1266 m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      -
                                                                                                                                                                                      1267 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      -
                                                                                                                                                                                      1268
                                                                                                                                                                                      -
                                                                                                                                                                                      1269 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1270} // Blob_stream_mq_sender_impl::auto_ping()
                                                                                                                                                                                      -
                                                                                                                                                                                      1271
                                                                                                                                                                                      -
                                                                                                                                                                                      1272template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1274{
                                                                                                                                                                                      -
                                                                                                                                                                                      1275 using util::Blob_const;
                                                                                                                                                                                      -
                                                                                                                                                                                      1276 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      1277
                                                                                                                                                                                      -
                                                                                                                                                                                      1278 /* This is an event handler! Specifically for the *m_auto_ping_timer_fired_peer pipe reader being
                                                                                                                                                                                      -
                                                                                                                                                                                      1279 * readable. To avoid infinite-loopiness, we'd best pop the thing that was written there. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1280 m_timer_worker.consume_timer_firing_signal(m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      -
                                                                                                                                                                                      1281
                                                                                                                                                                                      -
                                                                                                                                                                                      1282 // Now do the auto-ping itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      1247 // Initial auto-ping partially- or fully-sent fine (anything unsent was queued). Now schedule next one per above.
                                                                                                                                                                                      +
                                                                                                                                                                                      1248
                                                                                                                                                                                      +
                                                                                                                                                                                      1249 /* Now we can schedule it, similarly to send_blob() and on_ev_auto_ping_now_timer_fired() itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      1250 * Recall that we can't simply .async_wait(F) on some timer and have the desired code --
                                                                                                                                                                                      +
                                                                                                                                                                                      1251 * on_ev_auto_ping_now_timer_fired() which sends the ping -- be the handler F. We have to use the sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      1252 * pattern, where the user waits on events for us... but there's no timer FD, so we do it in the separate thread and
                                                                                                                                                                                      +
                                                                                                                                                                                      1253 * then ping via a pipe. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1254
                                                                                                                                                                                      +
                                                                                                                                                                                      1255 m_ev_wait_func(&m_ev_wait_hndl_auto_ping_timer_fired_peer,
                                                                                                                                                                                      +
                                                                                                                                                                                      1256 false, // Wait for read.
                                                                                                                                                                                      +
                                                                                                                                                                                      1257 // Once readable do this: pop pipe; send ping; schedule again.
                                                                                                                                                                                      +
                                                                                                                                                                                      1258 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      1259 ([this]() { on_ev_auto_ping_now_timer_fired(); }));
                                                                                                                                                                                      +
                                                                                                                                                                                      1260 /* Reminder: That has no effect (other than user recording stuff) until this method returns.
                                                                                                                                                                                      +
                                                                                                                                                                                      1261 * So it cannot execute concurrently or anything. They'd need to do their poll()/epoll_wait() or do so
                                                                                                                                                                                      +
                                                                                                                                                                                      1262 * indirectly by returning from the present boost.asio task (if they're running a boost.asio event loop). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1263
                                                                                                                                                                                      +
                                                                                                                                                                                      1264 /* Set up the actual timer. The second call really does m_auto_ping_timer.async_wait().
                                                                                                                                                                                      +
                                                                                                                                                                                      1265 * Note that could fire immediately, even concurrently (if m_auto_ping_period is somehow insanely short,
                                                                                                                                                                                      +
                                                                                                                                                                                      1266 * and the timer resolution is amazing)... but it would only cause on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      +
                                                                                                                                                                                      1267 * once they detect the pipe-readable event, which (again) can only happen after we return. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1268 m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      +
                                                                                                                                                                                      1269 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      1270
                                                                                                                                                                                      +
                                                                                                                                                                                      1271 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1272} // Blob_stream_mq_sender_impl::auto_ping()
                                                                                                                                                                                      +
                                                                                                                                                                                      1273
                                                                                                                                                                                      +
                                                                                                                                                                                      1274template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1276{
                                                                                                                                                                                      +
                                                                                                                                                                                      1277 using util::Blob_const;
                                                                                                                                                                                      +
                                                                                                                                                                                      1278 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      1279
                                                                                                                                                                                      +
                                                                                                                                                                                      1280 /* This is an event handler! Specifically for the *m_auto_ping_timer_fired_peer pipe reader being
                                                                                                                                                                                      +
                                                                                                                                                                                      1281 * readable. To avoid infinite-loopiness, we'd best pop the thing that was written there. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1282 m_timer_worker.consume_timer_firing_signal(m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      1283
                                                                                                                                                                                      -
                                                                                                                                                                                      1284 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1285 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1286 /* Concept does not require us to report any error via auto_ping() itself. It's for receiver's benefit anyway.
                                                                                                                                                                                      -
                                                                                                                                                                                      1287 * The local user will discover it, assuming they have interest, via the next send_*() or *end_sending(). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1288 FLOW_LOG_WARNING("Blob_stream_mq_sender_impl [" << *this << "]: Auto-ping timer fired, but an error was "
                                                                                                                                                                                      -
                                                                                                                                                                                      1289 "previously encountered in 2-way pipe; so will neither auto-ping nor schedule next auto-ping. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1290 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1291 "[" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1292 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      1293 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1294 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1295
                                                                                                                                                                                      -
                                                                                                                                                                                      1296 if (m_finished)
                                                                                                                                                                                      -
                                                                                                                                                                                      1297 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1298 // This is liable to be quite common and not of much interest at the INFO level; though it's not that verbose.
                                                                                                                                                                                      -
                                                                                                                                                                                      1299 FLOW_LOG_TRACE("Blob_stream_mq_sender_impl [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1300 "Auto-ping timer fired; but graceful-close API earlier instructed us to no-op. No-op.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1301 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      1302 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1303 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1304
                                                                                                                                                                                      -
                                                                                                                                                                                      1305 // This may be of some interest sufficient for INFO. @todo Reconsider due to non-trivial verbosity possibly.
                                                                                                                                                                                      -
                                                                                                                                                                                      1306 FLOW_LOG_INFO("Blob_stream_mq_sender_impl [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1307 "Auto-ping timer fired; sending/queueing auto-ping; scheduling for next time; it may be "
                                                                                                                                                                                      -
                                                                                                                                                                                      1308 "rescheduled if more user traffic occurs before then.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1309
                                                                                                                                                                                      -
                                                                                                                                                                                      1310 // The next code is similar to the initial auto_ping().
                                                                                                                                                                                      +
                                                                                                                                                                                      1284 // Now do the auto-ping itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      1285
                                                                                                                                                                                      +
                                                                                                                                                                                      1286 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1287 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1288 /* Concept does not require us to report any error via auto_ping() itself. It's for receiver's benefit anyway.
                                                                                                                                                                                      +
                                                                                                                                                                                      1289 * The local user will discover it, assuming they have interest, via the next send_*() or *end_sending(). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1290 FLOW_LOG_WARNING("Blob_stream_mq_sender_impl [" << *this << "]: Auto-ping timer fired, but an error was "
                                                                                                                                                                                      +
                                                                                                                                                                                      1291 "previously encountered in 2-way pipe; so will neither auto-ping nor schedule next auto-ping. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1292 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1293 "[" << m_pending_err_code.message() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1294 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      1295 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1296 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1297
                                                                                                                                                                                      +
                                                                                                                                                                                      1298 if (m_finished)
                                                                                                                                                                                      +
                                                                                                                                                                                      1299 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1300 // This is liable to be quite common and not of much interest at the INFO level; though it's not that verbose.
                                                                                                                                                                                      +
                                                                                                                                                                                      1301 FLOW_LOG_TRACE("Blob_stream_mq_sender_impl [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1302 "Auto-ping timer fired; but graceful-close API earlier instructed us to no-op. No-op.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1303 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      1304 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1305 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1306
                                                                                                                                                                                      +
                                                                                                                                                                                      1307 // This may be of some interest sufficient for INFO. @todo Reconsider due to non-trivial verbosity possibly.
                                                                                                                                                                                      +
                                                                                                                                                                                      1308 FLOW_LOG_INFO("Blob_stream_mq_sender_impl [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1309 "Auto-ping timer fired; sending/queueing auto-ping; scheduling for next time; it may be "
                                                                                                                                                                                      +
                                                                                                                                                                                      1310 "rescheduled if more user traffic occurs before then.");
                                                                                                                                                                                      1311
                                                                                                                                                                                      -
                                                                                                                                                                                      1312 sync_write_or_q_ctl_cmd(Control_cmd::S_PING);
                                                                                                                                                                                      -
                                                                                                                                                                                      1313 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1314 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1315 FLOW_LOG_WARNING("Blob_stream_mq_sender_impl [" << *this << "]: Wanted to send non-initial auto-ping "
                                                                                                                                                                                      -
                                                                                                                                                                                      1316 "but detected error synchronously. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1317 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1318 "[" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1319 "Saved error code to return in next user send attempt if any; otherwise ignoring; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1320 "will not continue scheduling periodic auto-pings.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1321 return;
                                                                                                                                                                                      -
                                                                                                                                                                                      1322 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1323 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1324
                                                                                                                                                                                      -
                                                                                                                                                                                      1325 m_ev_wait_func(&m_ev_wait_hndl_auto_ping_timer_fired_peer,
                                                                                                                                                                                      -
                                                                                                                                                                                      1326 false, // Wait for read.
                                                                                                                                                                                      -
                                                                                                                                                                                      1327 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      1328 ([this]() { on_ev_auto_ping_now_timer_fired(); }));
                                                                                                                                                                                      -
                                                                                                                                                                                      1329 m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      -
                                                                                                                                                                                      1330 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      -
                                                                                                                                                                                      1331} // Blob_stream_mq_sender_impl::on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      -
                                                                                                                                                                                      1332
                                                                                                                                                                                      -
                                                                                                                                                                                      1333template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1335 bool* avoided_qing_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      1336{
                                                                                                                                                                                      -
                                                                                                                                                                                      1337 using flow::util::Blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      1338 using util::Blob_const;
                                                                                                                                                                                      -
                                                                                                                                                                                      1339
                                                                                                                                                                                      -
                                                                                                                                                                                      1340 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      1341 * This one is actually fairly different from sync_io::Native_socket_stream::Impl::snd_sync_write_or_q_payload(),
                                                                                                                                                                                      -
                                                                                                                                                                                      1342 * as we are dealing with a message boundary-preserving low-level transport among other differences. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1343
                                                                                                                                                                                      -
                                                                                                                                                                                      1344 assert((!m_pending_err_code) && "After m_mq is hosed, no point in trying to do anything; pre-condition violated.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1312 // The next code is similar to the initial auto_ping().
                                                                                                                                                                                      +
                                                                                                                                                                                      1313
                                                                                                                                                                                      +
                                                                                                                                                                                      1314 sync_write_or_q_ctl_cmd(Control_cmd::S_PING);
                                                                                                                                                                                      +
                                                                                                                                                                                      1315 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1316 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1317 FLOW_LOG_WARNING("Blob_stream_mq_sender_impl [" << *this << "]: Wanted to send non-initial auto-ping "
                                                                                                                                                                                      +
                                                                                                                                                                                      1318 "but detected error synchronously. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1319 "Error code details follow: [" << m_pending_err_code << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1320 "[" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1321 "Saved error code to return in next user send attempt if any; otherwise ignoring; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1322 "will not continue scheduling periodic auto-pings.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1323 return;
                                                                                                                                                                                      +
                                                                                                                                                                                      1324 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1325 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1326
                                                                                                                                                                                      +
                                                                                                                                                                                      1327 m_ev_wait_func(&m_ev_wait_hndl_auto_ping_timer_fired_peer,
                                                                                                                                                                                      +
                                                                                                                                                                                      1328 false, // Wait for read.
                                                                                                                                                                                      +
                                                                                                                                                                                      1329 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      1330 ([this]() { on_ev_auto_ping_now_timer_fired(); }));
                                                                                                                                                                                      +
                                                                                                                                                                                      1331 m_auto_ping_timer.expires_after(m_auto_ping_period);
                                                                                                                                                                                      +
                                                                                                                                                                                      1332 m_timer_worker.timer_async_wait(&m_auto_ping_timer, m_auto_ping_timer_fired_peer);
                                                                                                                                                                                      +
                                                                                                                                                                                      1333} // Blob_stream_mq_sender_impl::on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      +
                                                                                                                                                                                      1334
                                                                                                                                                                                      +
                                                                                                                                                                                      1335template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1337 bool* avoided_qing_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      1338{
                                                                                                                                                                                      +
                                                                                                                                                                                      1339 using flow::util::Blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      1340 using util::Blob_const;
                                                                                                                                                                                      +
                                                                                                                                                                                      1341
                                                                                                                                                                                      +
                                                                                                                                                                                      1342 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      1343 * This one is actually fairly different from sync_io::Native_socket_stream::Impl::snd_sync_write_or_q_payload(),
                                                                                                                                                                                      +
                                                                                                                                                                                      1344 * as we are dealing with a message boundary-preserving low-level transport among other differences. */
                                                                                                                                                                                      1345
                                                                                                                                                                                      -
                                                                                                                                                                                      1346 if (m_pending_payloads_q.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1347 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1348 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Want to send low-level payload: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1349 "blob of size [" << orig_blob.size() << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1350 "located @ [" << orig_blob.data() << "]; no write is pending so proceeding immediately. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1351 "Will drop if would-block? = [" << bool(avoided_qing_or_null) << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1352
                                                                                                                                                                                      -
                                                                                                                                                                                      1353 const bool sent = m_mq->try_send(orig_blob, &m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1354 if (m_pending_err_code) // It will *not* emit would-block (will just return false but no error).
                                                                                                                                                                                      -
                                                                                                                                                                                      1355 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1356 m_mq.reset();
                                                                                                                                                                                      -
                                                                                                                                                                                      1357 // Return resources. (->try_send() logged WARNING sufficiently.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1358
                                                                                                                                                                                      -
                                                                                                                                                                                      1359 assert(!sent);
                                                                                                                                                                                      -
                                                                                                                                                                                      1360 avoided_qing_or_null && (*avoided_qing_or_null = false);
                                                                                                                                                                                      -
                                                                                                                                                                                      1361 return true; // Pipe-direction-ending error encountered; outgoing-direction pipe is finished forevermore.
                                                                                                                                                                                      -
                                                                                                                                                                                      1362 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1363 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1364
                                                                                                                                                                                      -
                                                                                                                                                                                      1365 if (sent)
                                                                                                                                                                                      -
                                                                                                                                                                                      1366 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1367 // Awesome: Mainstream case: We wrote the whole thing synchronously.
                                                                                                                                                                                      -
                                                                                                                                                                                      1368 avoided_qing_or_null && (*avoided_qing_or_null = false);
                                                                                                                                                                                      -
                                                                                                                                                                                      1369 return true; // Outgoing-direction pipe flushed.
                                                                                                                                                                                      -
                                                                                                                                                                                      1370 // ^-- No error. Logged about success in ->try_send().
                                                                                                                                                                                      -
                                                                                                                                                                                      1371 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1372 // else if (!sent): Fall through.
                                                                                                                                                                                      -
                                                                                                                                                                                      1373 } // if (m_pending_payloads_q.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1374 /* else if (!m_pending_payloads_q.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1375 * { Other stuff is currently being asynchronously sent, so we can only queue our payload behind all that. } */
                                                                                                                                                                                      -
                                                                                                                                                                                      1376
                                                                                                                                                                                      -
                                                                                                                                                                                      1377 /* At this point the payload could not be sent (either because another async write-op is in progress,
                                                                                                                                                                                      -
                                                                                                                                                                                      1378 * or not but it would-block if we tried to send now).
                                                                                                                                                                                      -
                                                                                                                                                                                      1379 * Per algorithm, we shall now have to queue it up to be sent (and if nothing is currently pending begin
                                                                                                                                                                                      -
                                                                                                                                                                                      1380 * asynchronously sending it ASAP).
                                                                                                                                                                                      -
                                                                                                                                                                                      1381 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1382 * avoided_qing_or_null!=null, as of this writing used for auto-pings only, affects
                                                                                                                                                                                      -
                                                                                                                                                                                      1383 * the above as follows: As *all* of orig_blob would need to be queued (queue was already non-empty, or it
                                                                                                                                                                                      -
                                                                                                                                                                                      1384 * was empty, and ->try_send() yielded would-block, by definition for *all* of orig_blob.size()), then:
                                                                                                                                                                                      -
                                                                                                                                                                                      1385 * simply pretend like it was sent fine; and continue like nothing happened. (See our doc header for
                                                                                                                                                                                      -
                                                                                                                                                                                      1386 * rationale.) */
                                                                                                                                                                                      -
                                                                                                                                                                                      1387 if (avoided_qing_or_null)
                                                                                                                                                                                      -
                                                                                                                                                                                      1388 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1389 *avoided_qing_or_null = true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1390
                                                                                                                                                                                      -
                                                                                                                                                                                      1391 /* This would happen at most every few sec (with auto-pings) and is definitely a rather interesting
                                                                                                                                                                                      -
                                                                                                                                                                                      1392 * situation though not an error; INFO is suitable. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1393 const auto q_size = m_pending_payloads_q.size();
                                                                                                                                                                                      -
                                                                                                                                                                                      1394 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Wanted to send low-level payload: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1395 "blob of size [" << orig_blob.size() << "] located @ [" << orig_blob.data() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1396 "result was would-block for all of its bytes (either because blocked-queue was non-empty "
                                                                                                                                                                                      -
                                                                                                                                                                                      1397 "already, or it was empty, but payload-message would-block at this time). "
                                                                                                                                                                                      -
                                                                                                                                                                                      1398 "Therefore dropping payload (done for auto-pings at least). Out-queue size remains "
                                                                                                                                                                                      -
                                                                                                                                                                                      1399 "[" << q_size << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1400
                                                                                                                                                                                      -
                                                                                                                                                                                      1401 /* We won't enqueue it, so there's nothing more to do, but careful in deciding what to return:
                                                                                                                                                                                      -
                                                                                                                                                                                      1402 * If the queue is empty, we promised we would return true. If the queue is not empty, we promised
                                                                                                                                                                                      -
                                                                                                                                                                                      1403 * we would return false. Whether that's what we should do is subtly questionable, but as of this
                                                                                                                                                                                      -
                                                                                                                                                                                      1404 * writing what we return when avoided_qing_or_null!=null is immaterial (is ignored). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1405 return q_size == 0;
                                                                                                                                                                                      -
                                                                                                                                                                                      1406 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1407 // else if (!avoided_qing_or_null): Would-block, so queue it up.
                                                                                                                                                                                      -
                                                                                                                                                                                      1408
                                                                                                                                                                                      -
                                                                                                                                                                                      1409 auto new_low_lvl_payload = boost::movelib::make_unique<Snd_low_lvl_payload>();
                                                                                                                                                                                      -
                                                                                                                                                                                      1410
                                                                                                                                                                                      -
                                                                                                                                                                                      1411 /* Allocate N bytes; copy N bytes into that area.
                                                                                                                                                                                      -
                                                                                                                                                                                      1412 * This is the first and only place we copy the source blob (not counting the transmission into m_mq); we
                                                                                                                                                                                      -
                                                                                                                                                                                      1413 * have tried our best to synchronously send all of it, which would've avoided getting here and this copy.
                                                                                                                                                                                      -
                                                                                                                                                                                      1414 * Now we have no choice. As discussed in the class doc header, probabilistically speaking we should rarely (if
                                                                                                                                                                                      -
                                                                                                                                                                                      1415 * ever) get here (and do this annoying alloc, and copy, and later dealloc) under normal operation of both sides. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1416
                                                                                                                                                                                      -
                                                                                                                                                                                      1417 auto& new_blob = new_low_lvl_payload->m_blob = Blob(get_logger());
                                                                                                                                                                                      -
                                                                                                                                                                                      1418 if (orig_blob.size() != 0)
                                                                                                                                                                                      -
                                                                                                                                                                                      1419 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1420 new_blob.assign_copy(orig_blob);
                                                                                                                                                                                      -
                                                                                                                                                                                      1421 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1422
                                                                                                                                                                                      -
                                                                                                                                                                                      1423 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Want to send pending-from-would-block low-level "
                                                                                                                                                                                      -
                                                                                                                                                                                      1424 "payload: blob of size [" << new_low_lvl_payload->m_blob.size() << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1425 "located @ [" << orig_blob.data() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1426 "created blob copy @ [" << new_blob.const_buffer().data() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1427 "enqueued to out-queue which is now of size [" << (m_pending_payloads_q.size() + 1) << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1428
                                                                                                                                                                                      -
                                                                                                                                                                                      1429 m_pending_payloads_q.emplace(std::move(new_low_lvl_payload)); // Push a new Snd_low_lvl_payload::Ptr.
                                                                                                                                                                                      -
                                                                                                                                                                                      1430
                                                                                                                                                                                      -
                                                                                                                                                                                      1431 if (m_pending_payloads_q.size() == 1)
                                                                                                                                                                                      -
                                                                                                                                                                                      1432 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1433 /* Queue was empty; now it isn't; so start the chain of async send head=>dequeue=>async send head=>dequeue=>....
                                                                                                                                                                                      -
                                                                                                                                                                                      1434 * (In our case "async send head" means asking (via m_ev_wait_func) user to inform (via callback we pass
                                                                                                                                                                                      -
                                                                                                                                                                                      1435 * to m_ev_wait_func) us when would-block has cleared, call m_mq->try_send() again....
                                                                                                                                                                                      -
                                                                                                                                                                                      1436 * If we were operating directly as a boost.asio async loop then the first part would just be
                                                                                                                                                                                      -
                                                                                                                                                                                      1437 * m_mq->async_wait(); but we cannot do that; user does it for us, controlling what gets called when
                                                                                                                                                                                      -
                                                                                                                                                                                      1438 * synchronously.) */
                                                                                                                                                                                      -
                                                                                                                                                                                      1439 async_write_q_head_payload();
                                                                                                                                                                                      -
                                                                                                                                                                                      1440 // Queue has stuff in it now. Return false.
                                                                                                                                                                                      -
                                                                                                                                                                                      1441 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1442 // else { Queue has even more stuff in it now. Return false. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1443
                                                                                                                                                                                      -
                                                                                                                                                                                      1444 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1445} // Blob_stream_mq_sender_impl::sync_write_or_q_payload()
                                                                                                                                                                                      -
                                                                                                                                                                                      1446
                                                                                                                                                                                      -
                                                                                                                                                                                      1447template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1449{
                                                                                                                                                                                      -
                                                                                                                                                                                      1450 return sync_write_or_q_ctl_cmd_impl(static_cast<std::underlying_type_t<Control_cmd>>(cmd));
                                                                                                                                                                                      -
                                                                                                                                                                                      1451}
                                                                                                                                                                                      -
                                                                                                                                                                                      1452
                                                                                                                                                                                      -
                                                                                                                                                                                      1453template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1455 (std::underlying_type_t<Control_cmd> raw_cmd)
                                                                                                                                                                                      -
                                                                                                                                                                                      1456{
                                                                                                                                                                                      -
                                                                                                                                                                                      1457 using util::Blob_const;
                                                                                                                                                                                      -
                                                                                                                                                                                      1458
                                                                                                                                                                                      -
                                                                                                                                                                                      1459 /* Important: For PING avoided_qing != null; for reasons explained in its doc header. Namely:
                                                                                                                                                                                      -
                                                                                                                                                                                      1460 * Consider S_PING.
                                                                                                                                                                                      -
                                                                                                                                                                                      1461 * If both payloads (empty msg, the enum) would-block, then there are already data that would
                                                                                                                                                                                      -
                                                                                                                                                                                      1462 * signal non-idleness sitting in the kernel buffer, so the auto-ping can be safely dropped in that case.
                                                                                                                                                                                      -
                                                                                                                                                                                      1463 * If 1 was flushed, while 2 would normally be queued, then dropping the latter would make the
                                                                                                                                                                                      -
                                                                                                                                                                                      1464 * protocol stream malformed from the opposing side's point of view; so we can't just drop it. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1465 bool avoided_qing = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1466 bool* const avoided_qing_or_null = ((raw_cmd >= 0) && (Control_cmd(raw_cmd) == Control_cmd::S_PING))
                                                                                                                                                                                      -
                                                                                                                                                                                      1467 ? &avoided_qing : nullptr;
                                                                                                                                                                                      -
                                                                                                                                                                                      1468
                                                                                                                                                                                      -
                                                                                                                                                                                      1469 // Payload 1 first.
                                                                                                                                                                                      -
                                                                                                                                                                                      1470 bool q_is_flushed = sync_write_or_q_payload(Blob_const(), avoided_qing_or_null);
                                                                                                                                                                                      -
                                                                                                                                                                                      1471
                                                                                                                                                                                      -
                                                                                                                                                                                      1472 /* Returned true => out-queue flushed fully or dropped PING-payload-1 (avoided_qing)
                                                                                                                                                                                      -
                                                                                                                                                                                      1473 * or new error found (depending on m_pending_err_code).
                                                                                                                                                                                      -
                                                                                                                                                                                      1474 * Returned false => out-queue has stuff in it and will until transport writable. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1475 if (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1476 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1477 /* No error => flushed fully (so flush or queue payload 2); or queued (so queue payload 2);
                                                                                                                                                                                      -
                                                                                                                                                                                      1478 * or avoided_qing (dropped PING-payload-1). */
                                                                                                                                                                                      -
                                                                                                                                                                                      1479 if (!avoided_qing)
                                                                                                                                                                                      -
                                                                                                                                                                                      1480 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1481 // No error, not avoided_quing => flushed fully (so flush or queue payload 2); or queued (so queue payload 2).
                                                                                                                                                                                      -
                                                                                                                                                                                      1482 q_is_flushed
                                                                                                                                                                                      -
                                                                                                                                                                                      1483 = sync_write_or_q_payload(Blob_const(&raw_cmd, sizeof(raw_cmd)), nullptr);
                                                                                                                                                                                      -
                                                                                                                                                                                      1484 assert(!(m_pending_err_code && (!q_is_flushed)));
                                                                                                                                                                                      -
                                                                                                                                                                                      1485 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1486 /* else if (avoided_qing)
                                                                                                                                                                                      -
                                                                                                                                                                                      1487 * {
                                                                                                                                                                                      -
                                                                                                                                                                                      1488 * No error, avoided_quing => dropped payload 1 due to would-block (so drop payload 2 too: do nothing).
                                                                                                                                                                                      -
                                                                                                                                                                                      1489 * q_is_flushed is set to this or that depending on queue size (as of this writing PINGing code does not care).
                                                                                                                                                                                      -
                                                                                                                                                                                      1490 * } */
                                                                                                                                                                                      -
                                                                                                                                                                                      1491 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1492 else // if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1493 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1494 assert(q_is_flushed);
                                                                                                                                                                                      -
                                                                                                                                                                                      1495 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1496 /* To summarize:
                                                                                                                                                                                      -
                                                                                                                                                                                      1497 * - Found error via payload 1, or not but did find error via payload 2 => q_is_flushed.
                                                                                                                                                                                      -
                                                                                                                                                                                      1498 * - Found no error, and flushed payload 1 and payload 2 => q_is_flushed.
                                                                                                                                                                                      -
                                                                                                                                                                                      1499 * - Found no error, but had to queue payload 1 or both payloads => !q_is_flushed.
                                                                                                                                                                                      -
                                                                                                                                                                                      1500 * - Dropped both payloads due to their comprising PING in a would-block situation when payload 1 was tried
                                                                                                                                                                                      -
                                                                                                                                                                                      1501 * => depends on whether queue was (and thus remains) empty at the time payload 1 was tried. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1502
                                                                                                                                                                                      -
                                                                                                                                                                                      1503 return q_is_flushed;
                                                                                                                                                                                      -
                                                                                                                                                                                      1504} // Blob_stream_mq_sender_impl::sync_write_or_q_ctl_cmd_impl()
                                                                                                                                                                                      -
                                                                                                                                                                                      1505
                                                                                                                                                                                      -
                                                                                                                                                                                      1506template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1508{
                                                                                                                                                                                      -
                                                                                                                                                                                      1509 using util::Task;
                                                                                                                                                                                      -
                                                                                                                                                                                      1510 using flow::util::Lock_guard;
                                                                                                                                                                                      -
                                                                                                                                                                                      1511 using boost::asio::async_write;
                                                                                                                                                                                      -
                                                                                                                                                                                      1512
                                                                                                                                                                                      -
                                                                                                                                                                                      1513 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      1514 * This one is actually fairly different from sync_io::Native_socket_stream::Impl::async_write_q_head_payload(),
                                                                                                                                                                                      -
                                                                                                                                                                                      1515 * as we are dealing with a message boundary-preserving low-level transport among other differences. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1516
                                                                                                                                                                                      -
                                                                                                                                                                                      1517 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      -
                                                                                                                                                                                      1518
                                                                                                                                                                                      -
                                                                                                                                                                                      1519 assert((!m_pending_payloads_q.empty()) && "Contract is stuff is queued to be async-sent. Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      1520
                                                                                                                                                                                      -
                                                                                                                                                                                      1521 /* Conceptually we'd like to do m_mq->async_wait(writable, F), where F() would perform
                                                                                                                                                                                      -
                                                                                                                                                                                      1522 * m_mq->try_send() (nb-send). However this is the sync_io pattern, so
                                                                                                                                                                                      -
                                                                                                                                                                                      1523 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      -
                                                                                                                                                                                      1524 * via m_ev_wait_func(), giving them m_mq's FD -- m_ev_wait_hndl_mq -- to wait-on. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1525
                                                                                                                                                                                      -
                                                                                                                                                                                      1526 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1527 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1528 /* In this case, though, m_mq has no FD; so we simulate it by awaiting writability in thread W
                                                                                                                                                                                      -
                                                                                                                                                                                      1529 * (which exists only for this purpose and is currently idle); and once that is detected we make the
                                                                                                                                                                                      -
                                                                                                                                                                                      1530 * pipe-read-end m_mq_ready_reader readable (by writing to write end):
                                                                                                                                                                                      -
                                                                                                                                                                                      1531 * *that* is watched by m_ev_wait_hndl_mq. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1532
                                                                                                                                                                                      -
                                                                                                                                                                                      1533 // So step 1 then; start the blocking wait in thread W.
                                                                                                                                                                                      -
                                                                                                                                                                                      1534 m_blocking_worker->post([this]()
                                                                                                                                                                                      -
                                                                                                                                                                                      1535 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1536 // We are in thread W (the one and only code snippet that runs there).
                                                                                                                                                                                      -
                                                                                                                                                                                      1537
                                                                                                                                                                                      -
                                                                                                                                                                                      1538 /* m_mq thread safety: See its doc header. Spoiler alert: m_pending_payloads_q not empty, so by posting
                                                                                                                                                                                      -
                                                                                                                                                                                      1539 * this onto thread W, thread U promises not to touch m_mq until *we* tell it to via m_ev_wait_hndl_mq.
                                                                                                                                                                                      -
                                                                                                                                                                                      1540 * send_blob() will see queue is non-empty and enqueue more; similarly for *end_sending();
                                                                                                                                                                                      -
                                                                                                                                                                                      1541 * auto-ping-firing will no-op (since queue is non-empty). The only other thing that would touch m_mq
                                                                                                                                                                                      -
                                                                                                                                                                                      1542 * (outside of dtor's m_mq->interrupt_sends()) is the async-wait-handler below -- but that will only run
                                                                                                                                                                                      -
                                                                                                                                                                                      1543 * if *we* signal it to. So it's safe. (That spoiler was very spoiler-y. More of a restatement.) */
                                                                                                                                                                                      -
                                                                                                                                                                                      1544
                                                                                                                                                                                      -
                                                                                                                                                                                      1545 Error_code err_code;
                                                                                                                                                                                      -
                                                                                                                                                                                      1546 m_mq->wait_sendable(&err_code); // This will TRACE-log plenty.
                                                                                                                                                                                      -
                                                                                                                                                                                      1547 if (err_code == error::Code::S_INTERRUPTED)
                                                                                                                                                                                      -
                                                                                                                                                                                      1548 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1549 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Blocking-worker was awaiting MQ transmissibility; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1550 "interrupted (presumably by dtor). Bailing out.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1551 return; // Dtor is shutting is down. GTFO.
                                                                                                                                                                                      -
                                                                                                                                                                                      1552 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1553 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1554
                                                                                                                                                                                      -
                                                                                                                                                                                      1555 if (err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1556 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1557 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      -
                                                                                                                                                                                      1558 "transmissibility; yield error (not interrupted) -- details likely in WARNING above. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1559 "We lack the means (well, the will mostly) to transmit the fact of the error "
                                                                                                                                                                                      -
                                                                                                                                                                                      1560 "to user-land; so we will just report MQ-writability and let "
                                                                                                                                                                                      -
                                                                                                                                                                                      1561 "user-land code uncover whatever is wrong with the MQ. This is unusual generally.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1562 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1563 // else { No problem! It logged enough; let us signal it. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1564 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      -
                                                                                                                                                                                      1565 "transmissibility; success; now pinging user-land via IPC-pipe.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1566
                                                                                                                                                                                      -
                                                                                                                                                                                      1567 util::pipe_produce(get_logger(), &(*m_mq_ready_writer));
                                                                                                                                                                                      -
                                                                                                                                                                                      1568 // m_mq_read_reader now has a byte to read! m_ev_wait_hndl_mq will be event-active.
                                                                                                                                                                                      -
                                                                                                                                                                                      1569 }); // m_blocking_worker->post()
                                                                                                                                                                                      -
                                                                                                                                                                                      1570 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1571 // else if (Mq::S_HAS_NATIVE_HANDLE) { m_ev_wait_hndl_mq has the MQ's kernel-waitable handle! Sw33t! }
                                                                                                                                                                                      -
                                                                                                                                                                                      1572
                                                                                                                                                                                      -
                                                                                                                                                                                      1573 bool snd_else_rcv;
                                                                                                                                                                                      -
                                                                                                                                                                                      1574 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1575 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1576 snd_else_rcv = true; // Wait for write (actual MQ!).
                                                                                                                                                                                      -
                                                                                                                                                                                      1577 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1578 else
                                                                                                                                                                                      -
                                                                                                                                                                                      1579 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1580 snd_else_rcv = false; // Wait for read (pipe! not actual MQ!).
                                                                                                                                                                                      -
                                                                                                                                                                                      1581 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1582
                                                                                                                                                                                      -
                                                                                                                                                                                      1583 m_ev_wait_func(&m_ev_wait_hndl_mq,
                                                                                                                                                                                      -
                                                                                                                                                                                      1584 snd_else_rcv,
                                                                                                                                                                                      -
                                                                                                                                                                                      1585 // Once readable do this:
                                                                                                                                                                                      -
                                                                                                                                                                                      1586 boost::make_shared<Task>
                                                                                                                                                                                      -
                                                                                                                                                                                      1587 ([this]()
                                                                                                                                                                                      -
                                                                                                                                                                                      1588 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1589 // We are back in *not* thread W!
                                                                                                                                                                                      -
                                                                                                                                                                                      1590
                                                                                                                                                                                      -
                                                                                                                                                                                      1591 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: User-performed wait-for-writable finished "
                                                                                                                                                                                      -
                                                                                                                                                                                      1592 "(writable or error, we do not know which yet). We endeavour to send->pop->send->... as much "
                                                                                                                                                                                      -
                                                                                                                                                                                      1593 "of the queue as we can until would-block or total success.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1594
                                                                                                                                                                                      -
                                                                                                                                                                                      1595 assert((!m_pending_payloads_q.empty()) && "Send-queue shouldn't be touched while async-write of head is going.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1596 assert((!m_pending_err_code) && "Send error would only be detected by us. Bug?");
                                                                                                                                                                                      -
                                                                                                                                                                                      1597
                                                                                                                                                                                      -
                                                                                                                                                                                      1598 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      -
                                                                                                                                                                                      1599 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1600 util::pipe_consume(get_logger(), &(*m_mq_ready_reader)); // Consume the byte to get to steady-state.
                                                                                                                                                                                      -
                                                                                                                                                                                      1601 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1602 // else { No byte was written. In fact there's no pipe even. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1603
                                                                                                                                                                                      -
                                                                                                                                                                                      1604 // Let's do as much as we can.
                                                                                                                                                                                      -
                                                                                                                                                                                      1605 bool would_block_or_error;
                                                                                                                                                                                      -
                                                                                                                                                                                      1606 do
                                                                                                                                                                                      -
                                                                                                                                                                                      1607 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1608 auto& low_lvl_payload = *m_pending_payloads_q.front();
                                                                                                                                                                                      -
                                                                                                                                                                                      1609 auto& low_lvl_blob = low_lvl_payload.m_blob;
                                                                                                                                                                                      -
                                                                                                                                                                                      1610 auto low_lvl_blob_view = low_lvl_blob.const_buffer();
                                                                                                                                                                                      -
                                                                                                                                                                                      1611
                                                                                                                                                                                      -
                                                                                                                                                                                      1612 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1613 "Out-queue size is [" << m_pending_payloads_q.size() << "]; "
                                                                                                                                                                                      -
                                                                                                                                                                                      1614 "want to send blob of size [" << low_lvl_blob_view.size() << "] "
                                                                                                                                                                                      -
                                                                                                                                                                                      1615 "located @ [" << low_lvl_blob_view.data() << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1616 would_block_or_error = !m_mq->try_send(low_lvl_blob_view, &m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1617 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1618 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1619 assert(would_block_or_error);
                                                                                                                                                                                      -
                                                                                                                                                                                      1620 assert((m_pending_err_code != error::Code::S_INTERRUPTED) &&
                                                                                                                                                                                      -
                                                                                                                                                                                      1621 "That should affect only blocking/timed-blocking MQ ops + is_*able(); not try_*().");
                                                                                                                                                                                      -
                                                                                                                                                                                      1622 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1623 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1624 if (!would_block_or_error)
                                                                                                                                                                                      -
                                                                                                                                                                                      1625 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1626 m_pending_payloads_q.pop(); // Nice; dealloc Blob into the aether.
                                                                                                                                                                                      -
                                                                                                                                                                                      1627 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1628 // else { That's it: party's over. Exit loop. }
                                                                                                                                                                                      -
                                                                                                                                                                                      1629 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1630 while ((!m_pending_payloads_q.empty()) && (!would_block_or_error));
                                                                                                                                                                                      -
                                                                                                                                                                                      1631
                                                                                                                                                                                      -
                                                                                                                                                                                      1632 /* Deal with continuing async-write if necessary.
                                                                                                                                                                                      -
                                                                                                                                                                                      1633 * Deal with possibly having to fire async_end_sending() completion handler. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1634
                                                                                                                                                                                      -
                                                                                                                                                                                      1635 bool invoke_on_done = false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1636 if (m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1637 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1638 invoke_on_done = !m_pending_on_last_send_done_func_or_empty.empty();
                                                                                                                                                                                      -
                                                                                                                                                                                      1639 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User-performed wait-for-writable reported "
                                                                                                                                                                                      -
                                                                                                                                                                                      1640 "completion; wanted to nb-send any queued data and possibly initiated another "
                                                                                                                                                                                      -
                                                                                                                                                                                      1641 "wait-for-writable; got error during an nb-send; TRACE details above. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1642 "Error code details follow: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1643 "[" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1644 "Saved error code to return in next user send attempt if any. "
                                                                                                                                                                                      -
                                                                                                                                                                                      1645 "Will run graceful-sends-close completion handler? = [" << invoke_on_done << "].");
                                                                                                                                                                                      -
                                                                                                                                                                                      1646
                                                                                                                                                                                      -
                                                                                                                                                                                      1647 assert((!m_pending_payloads_q.empty()) && "Opportunistic sanity check.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1648 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1649 else if (m_pending_payloads_q.empty()) // && (!m_pending_err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      1650 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1651 FLOW_LOG_TRACE("Out-queue has been emptied.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1652
                                                                                                                                                                                      -
                                                                                                                                                                                      1653 if (!m_pending_on_last_send_done_func_or_empty.empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1654 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1655 // INFO-log is okay, as this occurs at most once per *this.
                                                                                                                                                                                      -
                                                                                                                                                                                      1656 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1657 "We sent graceful-close and any preceding user messages with success. Will now inform user via "
                                                                                                                                                                                      -
                                                                                                                                                                                      1658 "graceful-sends-close completion handler.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1659 invoke_on_done = true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1660 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1661 } // else if (m_pending_payloads_q.empty() && (!m_pending_err_code))
                                                                                                                                                                                      -
                                                                                                                                                                                      1662 else // if ((!m_pending_payloads_q.empty()) && (!m_pending_err_code))
                                                                                                                                                                                      -
                                                                                                                                                                                      1663 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1664 FLOW_LOG_TRACE("Out-queue has not been emptied. Must keep async-send chain going.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1665
                                                                                                                                                                                      -
                                                                                                                                                                                      1666 // Continue the chain (this guy "asynchronously" brought us here in the first place).
                                                                                                                                                                                      -
                                                                                                                                                                                      1667 async_write_q_head_payload();
                                                                                                                                                                                      -
                                                                                                                                                                                      1668 // To be clear: queue can now only become empty in "async" handler, not synchronously here.
                                                                                                                                                                                      -
                                                                                                                                                                                      1669 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1670
                                                                                                                                                                                      -
                                                                                                                                                                                      1671 if (invoke_on_done)
                                                                                                                                                                                      -
                                                                                                                                                                                      1672 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1673 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Executing end-sending completion handler now.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1674 auto on_done_func = std::move(m_pending_on_last_send_done_func_or_empty);
                                                                                                                                                                                      -
                                                                                                                                                                                      1675 m_pending_on_last_send_done_func_or_empty.clear(); // For cleanliness, in case move() didn't do it.
                                                                                                                                                                                      -
                                                                                                                                                                                      1676
                                                                                                                                                                                      -
                                                                                                                                                                                      1677 on_done_func(m_pending_err_code);
                                                                                                                                                                                      -
                                                                                                                                                                                      1678 FLOW_LOG_TRACE("Handler completed.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1679 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1680 })); // m_ev_wait_func(): on_active_ev_func arg
                                                                                                                                                                                      -
                                                                                                                                                                                      1681} // Blob_stream_mq_sender_impl::async_write_q_head_payload()
                                                                                                                                                                                      -
                                                                                                                                                                                      1682
                                                                                                                                                                                      -
                                                                                                                                                                                      1683template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1685{
                                                                                                                                                                                      -
                                                                                                                                                                                      1686 return m_mq_max_msg_sz; // As promised in concept API: never changes in PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      1687}
                                                                                                                                                                                      -
                                                                                                                                                                                      1688
                                                                                                                                                                                      -
                                                                                                                                                                                      1689template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1691{
                                                                                                                                                                                      -
                                                                                                                                                                                      1692 return m_absolute_name;
                                                                                                                                                                                      -
                                                                                                                                                                                      1693}
                                                                                                                                                                                      -
                                                                                                                                                                                      1694
                                                                                                                                                                                      -
                                                                                                                                                                                      1695template<typename Persistent_mq_handle>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1697{
                                                                                                                                                                                      -
                                                                                                                                                                                      1698 return m_nickname;
                                                                                                                                                                                      -
                                                                                                                                                                                      1699}
                                                                                                                                                                                      -
                                                                                                                                                                                      1700
                                                                                                                                                                                      -
                                                                                                                                                                                      1701template<typename Persistent_mq_handle>
                                                                                                                                                                                      -
                                                                                                                                                                                      1702std::ostream& operator<<(std::ostream& os, const Blob_stream_mq_sender_impl<Persistent_mq_handle>& val)
                                                                                                                                                                                      -
                                                                                                                                                                                      1703{
                                                                                                                                                                                      -
                                                                                                                                                                                      1704 /* Tempting to just print val.m_mq and all those goodies, which include val.absolute_name() too among others,
                                                                                                                                                                                      -
                                                                                                                                                                                      1705 * as opposed to sh_name[] only; however m_mq might get hosed during this call and become null; a lock would be
                                                                                                                                                                                      -
                                                                                                                                                                                      1706 * required; not worth it. */
                                                                                                                                                                                      -
                                                                                                                                                                                      1707 return
                                                                                                                                                                                      -
                                                                                                                                                                                      1708 os << "SIO["
                                                                                                                                                                                      -
                                                                                                                                                                                      1709 << val.nickname() << "]@" << static_cast<const void*>(&val) << " sh_name[" << val.absolute_name() << ']';
                                                                                                                                                                                      -
                                                                                                                                                                                      1710}
                                                                                                                                                                                      -
                                                                                                                                                                                      1711
                                                                                                                                                                                      -
                                                                                                                                                                                      1712} // namespace ipc::transport::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      1346 assert((!m_pending_err_code) && "After m_mq is hosed, no point in trying to do anything; pre-condition violated.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1347
                                                                                                                                                                                      +
                                                                                                                                                                                      1348 if (m_pending_payloads_q.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1349 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1350 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Want to send low-level payload: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1351 "blob of size [" << orig_blob.size() << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1352 "located @ [" << orig_blob.data() << "]; no write is pending so proceeding immediately. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1353 "Will drop if would-block? = [" << bool(avoided_qing_or_null) << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1354
                                                                                                                                                                                      +
                                                                                                                                                                                      1355 const bool sent = m_mq->try_send(orig_blob, &m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1356 if (m_pending_err_code) // It will *not* emit would-block (will just return false but no error).
                                                                                                                                                                                      +
                                                                                                                                                                                      1357 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1358 // ->try_send() logged WARNING sufficiently.
                                                                                                                                                                                      +
                                                                                                                                                                                      1359
                                                                                                                                                                                      +
                                                                                                                                                                                      1360 assert(!sent);
                                                                                                                                                                                      +
                                                                                                                                                                                      1361 avoided_qing_or_null && (*avoided_qing_or_null = false);
                                                                                                                                                                                      +
                                                                                                                                                                                      1362 return true; // Pipe-direction-ending error encountered; outgoing-direction pipe is finished forevermore.
                                                                                                                                                                                      +
                                                                                                                                                                                      1363 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1364 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1365
                                                                                                                                                                                      +
                                                                                                                                                                                      1366 if (sent)
                                                                                                                                                                                      +
                                                                                                                                                                                      1367 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1368 // Awesome: Mainstream case: We wrote the whole thing synchronously.
                                                                                                                                                                                      +
                                                                                                                                                                                      1369 avoided_qing_or_null && (*avoided_qing_or_null = false);
                                                                                                                                                                                      +
                                                                                                                                                                                      1370 return true; // Outgoing-direction pipe flushed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1371 // ^-- No error. Logged about success in ->try_send().
                                                                                                                                                                                      +
                                                                                                                                                                                      1372 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1373 // else if (!sent): Fall through.
                                                                                                                                                                                      +
                                                                                                                                                                                      1374 } // if (m_pending_payloads_q.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1375 /* else if (!m_pending_payloads_q.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1376 * { Other stuff is currently being asynchronously sent, so we can only queue our payload behind all that. } */
                                                                                                                                                                                      +
                                                                                                                                                                                      1377
                                                                                                                                                                                      +
                                                                                                                                                                                      1378 /* At this point the payload could not be sent (either because another async write-op is in progress,
                                                                                                                                                                                      +
                                                                                                                                                                                      1379 * or not but it would-block if we tried to send now).
                                                                                                                                                                                      +
                                                                                                                                                                                      1380 * Per algorithm, we shall now have to queue it up to be sent (and if nothing is currently pending begin
                                                                                                                                                                                      +
                                                                                                                                                                                      1381 * asynchronously sending it ASAP).
                                                                                                                                                                                      +
                                                                                                                                                                                      1382 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1383 * avoided_qing_or_null!=null, as of this writing used for auto-pings only, affects
                                                                                                                                                                                      +
                                                                                                                                                                                      1384 * the above as follows: As *all* of orig_blob would need to be queued (queue was already non-empty, or it
                                                                                                                                                                                      +
                                                                                                                                                                                      1385 * was empty, and ->try_send() yielded would-block, by definition for *all* of orig_blob.size()), then:
                                                                                                                                                                                      +
                                                                                                                                                                                      1386 * simply pretend like it was sent fine; and continue like nothing happened. (See our doc header for
                                                                                                                                                                                      +
                                                                                                                                                                                      1387 * rationale.) */
                                                                                                                                                                                      +
                                                                                                                                                                                      1388 if (avoided_qing_or_null)
                                                                                                                                                                                      +
                                                                                                                                                                                      1389 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1390 *avoided_qing_or_null = true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1391
                                                                                                                                                                                      +
                                                                                                                                                                                      1392 /* This would happen at most every few sec (with auto-pings) and is definitely a rather interesting
                                                                                                                                                                                      +
                                                                                                                                                                                      1393 * situation though not an error; INFO is suitable. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1394 const auto q_size = m_pending_payloads_q.size();
                                                                                                                                                                                      +
                                                                                                                                                                                      1395 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Wanted to send low-level payload: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1396 "blob of size [" << orig_blob.size() << "] located @ [" << orig_blob.data() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1397 "result was would-block for all of its bytes (either because blocked-queue was non-empty "
                                                                                                                                                                                      +
                                                                                                                                                                                      1398 "already, or it was empty, but payload-message would-block at this time). "
                                                                                                                                                                                      +
                                                                                                                                                                                      1399 "Therefore dropping payload (done for auto-pings at least). Out-queue size remains "
                                                                                                                                                                                      +
                                                                                                                                                                                      1400 "[" << q_size << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1401
                                                                                                                                                                                      +
                                                                                                                                                                                      1402 /* We won't enqueue it, so there's nothing more to do, but careful in deciding what to return:
                                                                                                                                                                                      +
                                                                                                                                                                                      1403 * If the queue is empty, we promised we would return true. If the queue is not empty, we promised
                                                                                                                                                                                      +
                                                                                                                                                                                      1404 * we would return false. Whether that's what we should do is subtly questionable, but as of this
                                                                                                                                                                                      +
                                                                                                                                                                                      1405 * writing what we return when avoided_qing_or_null!=null is immaterial (is ignored). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1406 return q_size == 0;
                                                                                                                                                                                      +
                                                                                                                                                                                      1407 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1408 // else if (!avoided_qing_or_null): Would-block, so queue it up.
                                                                                                                                                                                      +
                                                                                                                                                                                      1409
                                                                                                                                                                                      +
                                                                                                                                                                                      1410 auto new_low_lvl_payload = boost::movelib::make_unique<Snd_low_lvl_payload>();
                                                                                                                                                                                      +
                                                                                                                                                                                      1411
                                                                                                                                                                                      +
                                                                                                                                                                                      1412 /* Allocate N bytes; copy N bytes into that area.
                                                                                                                                                                                      +
                                                                                                                                                                                      1413 * This is the first and only place we copy the source blob (not counting the transmission into m_mq); we
                                                                                                                                                                                      +
                                                                                                                                                                                      1414 * have tried our best to synchronously send all of it, which would've avoided getting here and this copy.
                                                                                                                                                                                      +
                                                                                                                                                                                      1415 * Now we have no choice. As discussed in the class doc header, probabilistically speaking we should rarely (if
                                                                                                                                                                                      +
                                                                                                                                                                                      1416 * ever) get here (and do this annoying alloc, and copy, and later dealloc) under normal operation of both sides. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1417
                                                                                                                                                                                      +
                                                                                                                                                                                      1418 auto& new_blob = new_low_lvl_payload->m_blob = Blob(get_logger());
                                                                                                                                                                                      +
                                                                                                                                                                                      1419 if (orig_blob.size() != 0)
                                                                                                                                                                                      +
                                                                                                                                                                                      1420 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1421 new_blob.assign_copy(orig_blob);
                                                                                                                                                                                      +
                                                                                                                                                                                      1422 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1423
                                                                                                                                                                                      +
                                                                                                                                                                                      1424 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Want to send pending-from-would-block low-level "
                                                                                                                                                                                      +
                                                                                                                                                                                      1425 "payload: blob of size [" << new_low_lvl_payload->m_blob.size() << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1426 "located @ [" << orig_blob.data() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1427 "created blob copy @ [" << new_blob.const_buffer().data() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1428 "enqueued to out-queue which is now of size [" << (m_pending_payloads_q.size() + 1) << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1429
                                                                                                                                                                                      +
                                                                                                                                                                                      1430 m_pending_payloads_q.emplace(std::move(new_low_lvl_payload)); // Push a new Snd_low_lvl_payload::Ptr.
                                                                                                                                                                                      +
                                                                                                                                                                                      1431
                                                                                                                                                                                      +
                                                                                                                                                                                      1432 if (m_pending_payloads_q.size() == 1)
                                                                                                                                                                                      +
                                                                                                                                                                                      1433 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1434 /* Queue was empty; now it isn't; so start the chain of async send head=>dequeue=>async send head=>dequeue=>....
                                                                                                                                                                                      +
                                                                                                                                                                                      1435 * (In our case "async send head" means asking (via m_ev_wait_func) user to inform (via callback we pass
                                                                                                                                                                                      +
                                                                                                                                                                                      1436 * to m_ev_wait_func) us when would-block has cleared, call m_mq->try_send() again....
                                                                                                                                                                                      +
                                                                                                                                                                                      1437 * If we were operating directly as a boost.asio async loop then the first part would just be
                                                                                                                                                                                      +
                                                                                                                                                                                      1438 * m_mq->async_wait(); but we cannot do that; user does it for us, controlling what gets called when
                                                                                                                                                                                      +
                                                                                                                                                                                      1439 * synchronously.) */
                                                                                                                                                                                      +
                                                                                                                                                                                      1440 async_write_q_head_payload();
                                                                                                                                                                                      +
                                                                                                                                                                                      1441 // Queue has stuff in it now. Return false.
                                                                                                                                                                                      +
                                                                                                                                                                                      1442 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1443 // else { Queue has even more stuff in it now. Return false. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1444
                                                                                                                                                                                      +
                                                                                                                                                                                      1445 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1446} // Blob_stream_mq_sender_impl::sync_write_or_q_payload()
                                                                                                                                                                                      +
                                                                                                                                                                                      1447
                                                                                                                                                                                      +
                                                                                                                                                                                      1448template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1450{
                                                                                                                                                                                      +
                                                                                                                                                                                      1451 return sync_write_or_q_ctl_cmd_impl(static_cast<std::underlying_type_t<Control_cmd>>(cmd));
                                                                                                                                                                                      +
                                                                                                                                                                                      1452}
                                                                                                                                                                                      +
                                                                                                                                                                                      1453
                                                                                                                                                                                      +
                                                                                                                                                                                      1454template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1456 (std::underlying_type_t<Control_cmd> raw_cmd)
                                                                                                                                                                                      +
                                                                                                                                                                                      1457{
                                                                                                                                                                                      +
                                                                                                                                                                                      1458 using util::Blob_const;
                                                                                                                                                                                      +
                                                                                                                                                                                      1459
                                                                                                                                                                                      +
                                                                                                                                                                                      1460 /* Important: For PING avoided_qing != null; for reasons explained in its doc header. Namely:
                                                                                                                                                                                      +
                                                                                                                                                                                      1461 * Consider S_PING.
                                                                                                                                                                                      +
                                                                                                                                                                                      1462 * If both payloads (empty msg, the enum) would-block, then there are already data that would
                                                                                                                                                                                      +
                                                                                                                                                                                      1463 * signal non-idleness sitting in the kernel buffer, so the auto-ping can be safely dropped in that case.
                                                                                                                                                                                      +
                                                                                                                                                                                      1464 * If 1 was flushed, while 2 would normally be queued, then dropping the latter would make the
                                                                                                                                                                                      +
                                                                                                                                                                                      1465 * protocol stream malformed from the opposing side's point of view; so we can't just drop it. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1466 bool avoided_qing = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1467 bool* const avoided_qing_or_null = ((raw_cmd >= 0) && (Control_cmd(raw_cmd) == Control_cmd::S_PING))
                                                                                                                                                                                      +
                                                                                                                                                                                      1468 ? &avoided_qing : nullptr;
                                                                                                                                                                                      +
                                                                                                                                                                                      1469
                                                                                                                                                                                      +
                                                                                                                                                                                      1470 // Payload 1 first.
                                                                                                                                                                                      +
                                                                                                                                                                                      1471 bool q_is_flushed = sync_write_or_q_payload(Blob_const(), avoided_qing_or_null);
                                                                                                                                                                                      +
                                                                                                                                                                                      1472
                                                                                                                                                                                      +
                                                                                                                                                                                      1473 /* Returned true => out-queue flushed fully or dropped PING-payload-1 (avoided_qing)
                                                                                                                                                                                      +
                                                                                                                                                                                      1474 * or new error found (depending on m_pending_err_code).
                                                                                                                                                                                      +
                                                                                                                                                                                      1475 * Returned false => out-queue has stuff in it and will until transport writable. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1476 if (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1477 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1478 /* No error => flushed fully (so flush or queue payload 2); or queued (so queue payload 2);
                                                                                                                                                                                      +
                                                                                                                                                                                      1479 * or avoided_qing (dropped PING-payload-1). */
                                                                                                                                                                                      +
                                                                                                                                                                                      1480 if (!avoided_qing)
                                                                                                                                                                                      +
                                                                                                                                                                                      1481 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1482 // No error, not avoided_quing => flushed fully (so flush or queue payload 2); or queued (so queue payload 2).
                                                                                                                                                                                      +
                                                                                                                                                                                      1483 q_is_flushed
                                                                                                                                                                                      +
                                                                                                                                                                                      1484 = sync_write_or_q_payload(Blob_const(&raw_cmd, sizeof(raw_cmd)), nullptr);
                                                                                                                                                                                      +
                                                                                                                                                                                      1485 assert(!(m_pending_err_code && (!q_is_flushed)));
                                                                                                                                                                                      +
                                                                                                                                                                                      1486 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1487 /* else if (avoided_qing)
                                                                                                                                                                                      +
                                                                                                                                                                                      1488 * {
                                                                                                                                                                                      +
                                                                                                                                                                                      1489 * No error, avoided_quing => dropped payload 1 due to would-block (so drop payload 2 too: do nothing).
                                                                                                                                                                                      +
                                                                                                                                                                                      1490 * q_is_flushed is set to this or that depending on queue size (as of this writing PINGing code does not care).
                                                                                                                                                                                      +
                                                                                                                                                                                      1491 * } */
                                                                                                                                                                                      +
                                                                                                                                                                                      1492 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1493 else // if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1494 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1495 assert(q_is_flushed);
                                                                                                                                                                                      +
                                                                                                                                                                                      1496 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1497 /* To summarize:
                                                                                                                                                                                      +
                                                                                                                                                                                      1498 * - Found error via payload 1, or not but did find error via payload 2 => q_is_flushed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1499 * - Found no error, and flushed payload 1 and payload 2 => q_is_flushed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1500 * - Found no error, but had to queue payload 1 or both payloads => !q_is_flushed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1501 * - Dropped both payloads due to their comprising PING in a would-block situation when payload 1 was tried
                                                                                                                                                                                      +
                                                                                                                                                                                      1502 * => depends on whether queue was (and thus remains) empty at the time payload 1 was tried. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1503
                                                                                                                                                                                      +
                                                                                                                                                                                      1504 return q_is_flushed;
                                                                                                                                                                                      +
                                                                                                                                                                                      1505} // Blob_stream_mq_sender_impl::sync_write_or_q_ctl_cmd_impl()
                                                                                                                                                                                      +
                                                                                                                                                                                      1506
                                                                                                                                                                                      +
                                                                                                                                                                                      1507template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1509{
                                                                                                                                                                                      +
                                                                                                                                                                                      1510 using util::Task;
                                                                                                                                                                                      +
                                                                                                                                                                                      1511 using flow::util::Lock_guard;
                                                                                                                                                                                      +
                                                                                                                                                                                      1512 using boost::asio::async_write;
                                                                                                                                                                                      +
                                                                                                                                                                                      1513
                                                                                                                                                                                      +
                                                                                                                                                                                      1514 /* We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      1515 * This one is actually fairly different from sync_io::Native_socket_stream::Impl::async_write_q_head_payload(),
                                                                                                                                                                                      +
                                                                                                                                                                                      1516 * as we are dealing with a message boundary-preserving low-level transport among other differences. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1517
                                                                                                                                                                                      +
                                                                                                                                                                                      1518 // We comment liberally, but tactically, inline; but please read the strategy in the class doc header's impl section.
                                                                                                                                                                                      +
                                                                                                                                                                                      1519
                                                                                                                                                                                      +
                                                                                                                                                                                      1520 assert((!m_pending_payloads_q.empty()) && "Contract is stuff is queued to be async-sent. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      1521
                                                                                                                                                                                      +
                                                                                                                                                                                      1522 /* Conceptually we'd like to do m_mq->async_wait(writable, F), where F() would perform
                                                                                                                                                                                      +
                                                                                                                                                                                      1523 * m_mq->try_send() (nb-send). However this is the sync_io pattern, so
                                                                                                                                                                                      +
                                                                                                                                                                                      1524 * the user will be performing the conceptual async_wait() for us. We must ask them to do so
                                                                                                                                                                                      +
                                                                                                                                                                                      1525 * via m_ev_wait_func(), giving them m_mq's FD -- m_ev_wait_hndl_mq -- to wait-on. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1526
                                                                                                                                                                                      +
                                                                                                                                                                                      1527 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1528 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1529 /* In this case, though, m_mq has no FD; so we simulate it by awaiting writability in thread W
                                                                                                                                                                                      +
                                                                                                                                                                                      1530 * (which exists only for this purpose and is currently idle); and once that is detected we make the
                                                                                                                                                                                      +
                                                                                                                                                                                      1531 * pipe-read-end m_mq_ready_reader readable (by writing to write end):
                                                                                                                                                                                      +
                                                                                                                                                                                      1532 * *that* is watched by m_ev_wait_hndl_mq. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1533
                                                                                                                                                                                      +
                                                                                                                                                                                      1534 // So step 1 then; start the blocking wait in thread W.
                                                                                                                                                                                      +
                                                                                                                                                                                      1535 m_blocking_worker->post([this]()
                                                                                                                                                                                      +
                                                                                                                                                                                      1536 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1537 // We are in thread W (the one and only code snippet that runs there).
                                                                                                                                                                                      +
                                                                                                                                                                                      1538
                                                                                                                                                                                      +
                                                                                                                                                                                      1539 /* m_mq thread safety: See its doc header. Spoiler alert: m_pending_payloads_q not empty, so by posting
                                                                                                                                                                                      +
                                                                                                                                                                                      1540 * this onto thread W, thread U promises not to touch m_mq until *we* tell it to via m_ev_wait_hndl_mq.
                                                                                                                                                                                      +
                                                                                                                                                                                      1541 * send_blob() will see queue is non-empty and enqueue more; similarly for *end_sending();
                                                                                                                                                                                      +
                                                                                                                                                                                      1542 * auto-ping-firing will no-op (since queue is non-empty). The only other thing that would touch m_mq
                                                                                                                                                                                      +
                                                                                                                                                                                      1543 * (outside of dtor's m_mq->interrupt_sends()) is the async-wait-handler below -- but that will only run
                                                                                                                                                                                      +
                                                                                                                                                                                      1544 * if *we* signal it to. So it's safe. (That spoiler was very spoiler-y. More of a restatement.) */
                                                                                                                                                                                      +
                                                                                                                                                                                      1545
                                                                                                                                                                                      +
                                                                                                                                                                                      1546 Error_code err_code;
                                                                                                                                                                                      +
                                                                                                                                                                                      1547 m_mq->wait_sendable(&err_code); // This will TRACE-log plenty.
                                                                                                                                                                                      +
                                                                                                                                                                                      1548 if (err_code == error::Code::S_INTERRUPTED)
                                                                                                                                                                                      +
                                                                                                                                                                                      1549 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1550 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: Blocking-worker was awaiting MQ transmissibility; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1551 "interrupted (presumably by dtor). Bailing out.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1552 return; // Dtor is shutting is down. GTFO.
                                                                                                                                                                                      +
                                                                                                                                                                                      1553 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1554 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1555
                                                                                                                                                                                      +
                                                                                                                                                                                      1556 if (err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1557 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1558 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      +
                                                                                                                                                                                      1559 "transmissibility; yield error (not interrupted) -- details likely in WARNING above. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1560 "We lack the means (well, the will mostly) to transmit the fact of the error "
                                                                                                                                                                                      +
                                                                                                                                                                                      1561 "to user-land; so we will just report MQ-writability and let "
                                                                                                                                                                                      +
                                                                                                                                                                                      1562 "user-land code uncover whatever is wrong with the MQ. This is unusual generally.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1563 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1564 // else { No problem! It logged enough; let us signal it. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1565 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Blocking-worker thread was awaiting MQ "
                                                                                                                                                                                      +
                                                                                                                                                                                      1566 "transmissibility; success; now pinging user-land via IPC-pipe.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1567
                                                                                                                                                                                      +
                                                                                                                                                                                      1568 util::pipe_produce(get_logger(), &(*m_mq_ready_writer));
                                                                                                                                                                                      +
                                                                                                                                                                                      1569 // m_mq_read_reader now has a byte to read! m_ev_wait_hndl_mq will be event-active.
                                                                                                                                                                                      +
                                                                                                                                                                                      1570 }); // m_blocking_worker->post()
                                                                                                                                                                                      +
                                                                                                                                                                                      1571 } // if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1572 // else if (Mq::S_HAS_NATIVE_HANDLE) { m_ev_wait_hndl_mq has the MQ's kernel-waitable handle! Sw33t! }
                                                                                                                                                                                      +
                                                                                                                                                                                      1573
                                                                                                                                                                                      +
                                                                                                                                                                                      1574 bool snd_else_rcv;
                                                                                                                                                                                      +
                                                                                                                                                                                      1575 if constexpr(Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1576 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1577 snd_else_rcv = true; // Wait for write (actual MQ!).
                                                                                                                                                                                      +
                                                                                                                                                                                      1578 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1579 else
                                                                                                                                                                                      +
                                                                                                                                                                                      1580 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1581 snd_else_rcv = false; // Wait for read (pipe! not actual MQ!).
                                                                                                                                                                                      +
                                                                                                                                                                                      1582 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1583
                                                                                                                                                                                      +
                                                                                                                                                                                      1584 m_ev_wait_func(&m_ev_wait_hndl_mq,
                                                                                                                                                                                      +
                                                                                                                                                                                      1585 snd_else_rcv,
                                                                                                                                                                                      +
                                                                                                                                                                                      1586 // Once readable do this:
                                                                                                                                                                                      +
                                                                                                                                                                                      1587 boost::make_shared<Task>
                                                                                                                                                                                      +
                                                                                                                                                                                      1588 ([this]()
                                                                                                                                                                                      +
                                                                                                                                                                                      1589 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1590 // We are back in *not* thread W!
                                                                                                                                                                                      +
                                                                                                                                                                                      1591
                                                                                                                                                                                      +
                                                                                                                                                                                      1592 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: User-performed wait-for-writable finished "
                                                                                                                                                                                      +
                                                                                                                                                                                      1593 "(writable or error, we do not know which yet). We endeavour to send->pop->send->... as much "
                                                                                                                                                                                      +
                                                                                                                                                                                      1594 "of the queue as we can until would-block or total success.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1595
                                                                                                                                                                                      +
                                                                                                                                                                                      1596 assert((!m_pending_payloads_q.empty()) && "Send-queue shouldn't be touched while async-write of head is going.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1597 assert((!m_pending_err_code) && "Send error would only be detected by us. Bug?");
                                                                                                                                                                                      +
                                                                                                                                                                                      1598
                                                                                                                                                                                      +
                                                                                                                                                                                      1599 if constexpr(!Mq::S_HAS_NATIVE_HANDLE)
                                                                                                                                                                                      +
                                                                                                                                                                                      1600 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1601 util::pipe_consume(get_logger(), &(*m_mq_ready_reader)); // Consume the byte to get to steady-state.
                                                                                                                                                                                      +
                                                                                                                                                                                      1602 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1603 // else { No byte was written. In fact there's no pipe even. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1604
                                                                                                                                                                                      +
                                                                                                                                                                                      1605 // Let's do as much as we can.
                                                                                                                                                                                      +
                                                                                                                                                                                      1606 bool would_block_or_error;
                                                                                                                                                                                      +
                                                                                                                                                                                      1607 do
                                                                                                                                                                                      +
                                                                                                                                                                                      1608 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1609 auto& low_lvl_payload = *m_pending_payloads_q.front();
                                                                                                                                                                                      +
                                                                                                                                                                                      1610 auto& low_lvl_blob = low_lvl_payload.m_blob;
                                                                                                                                                                                      +
                                                                                                                                                                                      1611 auto low_lvl_blob_view = low_lvl_blob.const_buffer();
                                                                                                                                                                                      +
                                                                                                                                                                                      1612
                                                                                                                                                                                      +
                                                                                                                                                                                      1613 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1614 "Out-queue size is [" << m_pending_payloads_q.size() << "]; "
                                                                                                                                                                                      +
                                                                                                                                                                                      1615 "want to send blob of size [" << low_lvl_blob_view.size() << "] "
                                                                                                                                                                                      +
                                                                                                                                                                                      1616 "located @ [" << low_lvl_blob_view.data() << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1617 would_block_or_error = !m_mq->try_send(low_lvl_blob_view, &m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1618 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1619 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1620 assert(would_block_or_error);
                                                                                                                                                                                      +
                                                                                                                                                                                      1621 assert((m_pending_err_code != error::Code::S_INTERRUPTED) &&
                                                                                                                                                                                      +
                                                                                                                                                                                      1622 "That should affect only blocking/timed-blocking MQ ops + is_*able(); not try_*().");
                                                                                                                                                                                      +
                                                                                                                                                                                      1623 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1624 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1625 if (!would_block_or_error)
                                                                                                                                                                                      +
                                                                                                                                                                                      1626 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1627 m_pending_payloads_q.pop(); // Nice; dealloc Blob into the aether.
                                                                                                                                                                                      +
                                                                                                                                                                                      1628 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1629 // else { That's it: party's over. Exit loop. }
                                                                                                                                                                                      +
                                                                                                                                                                                      1630 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1631 while ((!m_pending_payloads_q.empty()) && (!would_block_or_error));
                                                                                                                                                                                      +
                                                                                                                                                                                      1632
                                                                                                                                                                                      +
                                                                                                                                                                                      1633 /* Deal with continuing async-write if necessary.
                                                                                                                                                                                      +
                                                                                                                                                                                      1634 * Deal with possibly having to fire async_end_sending() completion handler. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1635
                                                                                                                                                                                      +
                                                                                                                                                                                      1636 bool invoke_on_done = false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1637 if (m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1638 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1639 invoke_on_done = !m_pending_on_last_send_done_func_or_empty.empty();
                                                                                                                                                                                      +
                                                                                                                                                                                      1640 FLOW_LOG_WARNING("Blob_stream_mq_sender [" << *this << "]: User-performed wait-for-writable reported "
                                                                                                                                                                                      +
                                                                                                                                                                                      1641 "completion; wanted to nb-send any queued data and possibly initiated another "
                                                                                                                                                                                      +
                                                                                                                                                                                      1642 "wait-for-writable; got error during an nb-send; TRACE details above. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1643 "Error code details follow: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1644 "[" << m_pending_err_code << "] [" << m_pending_err_code.message() << "]. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1645 "Saved error code to return in next user send attempt if any. "
                                                                                                                                                                                      +
                                                                                                                                                                                      1646 "Will run graceful-sends-close completion handler? = [" << invoke_on_done << "].");
                                                                                                                                                                                      +
                                                                                                                                                                                      1647
                                                                                                                                                                                      +
                                                                                                                                                                                      1648 assert((!m_pending_payloads_q.empty()) && "Opportunistic sanity check.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1649 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1650 else if (m_pending_payloads_q.empty()) // && (!m_pending_err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      1651 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1652 FLOW_LOG_TRACE("Out-queue has been emptied.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1653
                                                                                                                                                                                      +
                                                                                                                                                                                      1654 if (!m_pending_on_last_send_done_func_or_empty.empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1655 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1656 // INFO-log is okay, as this occurs at most once per *this.
                                                                                                                                                                                      +
                                                                                                                                                                                      1657 FLOW_LOG_INFO("Blob_stream_mq_sender [" << *this << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1658 "We sent graceful-close and any preceding user messages with success. Will now inform user via "
                                                                                                                                                                                      +
                                                                                                                                                                                      1659 "graceful-sends-close completion handler.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1660 invoke_on_done = true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1661 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1662 } // else if (m_pending_payloads_q.empty() && (!m_pending_err_code))
                                                                                                                                                                                      +
                                                                                                                                                                                      1663 else // if ((!m_pending_payloads_q.empty()) && (!m_pending_err_code))
                                                                                                                                                                                      +
                                                                                                                                                                                      1664 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1665 FLOW_LOG_TRACE("Out-queue has not been emptied. Must keep async-send chain going.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1666
                                                                                                                                                                                      +
                                                                                                                                                                                      1667 // Continue the chain (this guy "asynchronously" brought us here in the first place).
                                                                                                                                                                                      +
                                                                                                                                                                                      1668 async_write_q_head_payload();
                                                                                                                                                                                      +
                                                                                                                                                                                      1669 // To be clear: queue can now only become empty in "async" handler, not synchronously here.
                                                                                                                                                                                      +
                                                                                                                                                                                      1670 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1671
                                                                                                                                                                                      +
                                                                                                                                                                                      1672 if (invoke_on_done)
                                                                                                                                                                                      +
                                                                                                                                                                                      1673 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1674 FLOW_LOG_TRACE("Blob_stream_mq_sender [" << *this << "]: Executing end-sending completion handler now.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1675 auto on_done_func = std::move(m_pending_on_last_send_done_func_or_empty);
                                                                                                                                                                                      +
                                                                                                                                                                                      1676 m_pending_on_last_send_done_func_or_empty.clear(); // For cleanliness, in case move() didn't do it.
                                                                                                                                                                                      +
                                                                                                                                                                                      1677
                                                                                                                                                                                      +
                                                                                                                                                                                      1678 on_done_func(m_pending_err_code);
                                                                                                                                                                                      +
                                                                                                                                                                                      1679 FLOW_LOG_TRACE("Handler completed.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1680 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1681 })); // m_ev_wait_func(): on_active_ev_func arg
                                                                                                                                                                                      +
                                                                                                                                                                                      1682} // Blob_stream_mq_sender_impl::async_write_q_head_payload()
                                                                                                                                                                                      +
                                                                                                                                                                                      1683
                                                                                                                                                                                      +
                                                                                                                                                                                      1684template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1686{
                                                                                                                                                                                      +
                                                                                                                                                                                      1687 return m_mq_max_msg_sz; // As promised in concept API: never changes in PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      1688}
                                                                                                                                                                                      +
                                                                                                                                                                                      1689
                                                                                                                                                                                      +
                                                                                                                                                                                      1690template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1692{
                                                                                                                                                                                      +
                                                                                                                                                                                      1693 return m_absolute_name;
                                                                                                                                                                                      +
                                                                                                                                                                                      1694}
                                                                                                                                                                                      +
                                                                                                                                                                                      1695
                                                                                                                                                                                      +
                                                                                                                                                                                      1696template<typename Persistent_mq_handle>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1698{
                                                                                                                                                                                      +
                                                                                                                                                                                      1699 return m_nickname;
                                                                                                                                                                                      +
                                                                                                                                                                                      1700}
                                                                                                                                                                                      +
                                                                                                                                                                                      1701
                                                                                                                                                                                      +
                                                                                                                                                                                      1702template<typename Persistent_mq_handle>
                                                                                                                                                                                      +
                                                                                                                                                                                      1703std::ostream& operator<<(std::ostream& os, const Blob_stream_mq_sender_impl<Persistent_mq_handle>& val)
                                                                                                                                                                                      +
                                                                                                                                                                                      1704{
                                                                                                                                                                                      +
                                                                                                                                                                                      1705 /* Tempting to just print val.m_mq and all those goodies, which include val.absolute_name() too among others,
                                                                                                                                                                                      +
                                                                                                                                                                                      1706 * as opposed to sh_name[] only; however m_mq might get hosed during this call and become null; a lock would be
                                                                                                                                                                                      +
                                                                                                                                                                                      1707 * required; not worth it. */
                                                                                                                                                                                      +
                                                                                                                                                                                      1708 return
                                                                                                                                                                                      +
                                                                                                                                                                                      1709 os << "SIO["
                                                                                                                                                                                      +
                                                                                                                                                                                      1710 << val.nickname() << "]@" << static_cast<const void*>(&val) << " sh_name[" << val.absolute_name() << ']';
                                                                                                                                                                                      +
                                                                                                                                                                                      1711}
                                                                                                                                                                                      +
                                                                                                                                                                                      1712
                                                                                                                                                                                      +
                                                                                                                                                                                      1713} // namespace ipc::transport::sync_io
                                                                                                                                                                                      Internal implementation of Blob_stream_mq_base class template; and common utilities used by Blob_stre...
                                                                                                                                                                                      @@ -1794,44 +1795,44 @@
                                                                                                                                                                                      static constexpr proto_ver_t S_VER_UNKNOWN
                                                                                                                                                                                      A proto_ver_t value, namely a negative one, which is a reserved value indicating "unknown version"; i...
                                                                                                                                                                                      Internal, non-movable pImpl-lite implementation of sync_io::Blob_stream_mq_sender class template.
                                                                                                                                                                                      std::optional< flow::util::Task_engine > m_nb_task_engine
                                                                                                                                                                                      The Task_engine for m_mq_ready_*.
                                                                                                                                                                                      -
                                                                                                                                                                                      const Shared_name & absolute_name() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool auto_ping(util::Fine_duration period)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool sync_write_or_q_payload(const util::Blob_const &orig_blob, bool *avoided_qing_or_null)
                                                                                                                                                                                      Either synchronously sends orig_blob low-level blob over m_mq, or if an async-send is in progress que...
                                                                                                                                                                                      +
                                                                                                                                                                                      const Shared_name & absolute_name() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool auto_ping(util::Fine_duration period)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool sync_write_or_q_payload(const util::Blob_const &orig_blob, bool *avoided_qing_or_null)
                                                                                                                                                                                      Either synchronously sends orig_blob low-level blob over m_mq, or if an async-send is in progress que...
                                                                                                                                                                                      Protocol_negotiator m_protocol_negotiator
                                                                                                                                                                                      Handles the protocol negotiation at the start of the pipe.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::Fine_duration m_auto_ping_period
                                                                                                                                                                                      Equals zero() before auto_ping(); immutably equals period (auto_ping() arg) subsequently to that firs...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_mq
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      -
                                                                                                                                                                                      Base::Auto_closing_mq m_mq
                                                                                                                                                                                      The MQ handle adopted by the ctor, through which nb-sends and blocking-waits are executed.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_blocking_worker
                                                                                                                                                                                      Worker thread W always in one of 2 states: idle; or (when m_mq is in would-block condition) executing...
                                                                                                                                                                                      -
                                                                                                                                                                                      const size_t m_mq_max_msg_sz
                                                                                                                                                                                      Equals m_mq.max_msg_size().
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Timer m_auto_ping_timer
                                                                                                                                                                                      Timer that fires on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always scheduled...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool async_end_sending(Error_code *sync_err_code, Task_err &&on_done_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::async::Task_asio_err m_pending_on_last_send_done_func_or_empty
                                                                                                                                                                                      Function passed to async_end_sending(), if it returned true and was unable to synchronously flush eve...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::Fine_duration m_auto_ping_period
                                                                                                                                                                                      Equals zero() before auto_ping(); immutably equals period (auto_ping() arg) subsequently to that firs...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_mq
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      Base::Auto_closing_mq m_mq
                                                                                                                                                                                      The MQ handle adopted by the ctor, through which nb-sends and blocking-waits are executed.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_blocking_worker
                                                                                                                                                                                      Worker thread W always in one of 2 states: idle; or (when m_mq is in would-block condition) executing...
                                                                                                                                                                                      +
                                                                                                                                                                                      const size_t m_mq_max_msg_sz
                                                                                                                                                                                      Equals m_mq.max_msg_size().
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Timer m_auto_ping_timer
                                                                                                                                                                                      Timer that fires on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always scheduled...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool async_end_sending(Error_code *sync_err_code, Task_err &&on_done_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::async::Task_asio_err m_pending_on_last_send_done_func_or_empty
                                                                                                                                                                                      Function passed to async_end_sending(), if it returned true and was unable to synchronously flush eve...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      -
                                                                                                                                                                                      void async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_mq of the low-level payload at the head of out-queue m_pending_payloads_...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::Pipe_reader > m_mq_ready_reader
                                                                                                                                                                                      Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool end_sending()
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      Blob_stream_mq_sender_impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_moved, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::Pipe_writer > m_mq_ready_writer
                                                                                                                                                                                      Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has c...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Event_wait_func m_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_send_blob_ops()) through which we invoke the outside event loop's asyn...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool replace_event_wait_handles(const Create_ev_wait_hndl_func &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if start_*_ops() has been called; else logs WARNING and returns fal...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::queue< typename Snd_low_lvl_payload::Ptr > m_pending_payloads_q
                                                                                                                                                                                      Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed b...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool sync_write_or_q_ctl_cmd_impl(std::underlying_type_t< Control_cmd > raw_cmd)
                                                                                                                                                                                      Equivalent to sync_write_or_q_ctl_cmd() but takes the raw representation of the command to send; this...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      void async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_mq of the low-level payload at the head of out-queue m_pending_payloads_...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::Pipe_reader > m_mq_ready_reader
                                                                                                                                                                                      Read-end of IPC-pipe used by thread U to detect that a thread-W transmissibility-wait has completed,...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool end_sending()
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      Blob_stream_mq_sender_impl(flow::log::Logger *logger_ptr, util::String_view nickname_str, Mq &&mq_moved, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::Pipe_writer > m_mq_ready_writer
                                                                                                                                                                                      Write-end of IPC-pipe used by thread W to inform thread U that a thread-W transmissibility-wait has c...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Event_wait_func m_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_send_blob_ops()) through which we invoke the outside event loop's asyn...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool replace_event_wait_handles(const Create_ev_wait_hndl_func &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if start_*_ops() has been called; else logs WARNING and returns fal...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::queue< typename Snd_low_lvl_payload::Ptr > m_pending_payloads_q
                                                                                                                                                                                      Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed b...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool sync_write_or_q_ctl_cmd_impl(std::underlying_type_t< Control_cmd > raw_cmd)
                                                                                                                                                                                      Equivalent to sync_write_or_q_ctl_cmd() but takes the raw representation of the command to send; this...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool send_blob(const util::Blob_const &blob, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool send_blob(const util::Blob_const &blob, Error_code *err_code)
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      flow::util::Task_engine m_ev_hndl_task_engine_unused
                                                                                                                                                                                      The Task_engine for m_ev_wait_hndl_*, unless it is replaced via replace_event_wait_handles().
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_auto_ping_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_auto_ping_timer t...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool m_finished
                                                                                                                                                                                      false at start; set to true forever on the first *end_sending() invocation; true will prevent any sub...
                                                                                                                                                                                      -
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      void on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the auto-ping timer firing; if...
                                                                                                                                                                                      -
                                                                                                                                                                                      bool async_end_sending_impl(Error_code *sync_err_code_ptr_or_null, flow::async::Task_asio_err &&on_done_func_or_empty)
                                                                                                                                                                                      *end_sending() body.
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool sync_write_or_q_ctl_cmd(Control_cmd cmd)
                                                                                                                                                                                      Writes the 2 payloads corresponding to CONTROL command cmd to m_mq; if unable to do so synchronously ...
                                                                                                                                                                                      -
                                                                                                                                                                                      ~Blob_stream_mq_sender_impl()
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      Error_code m_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_auto_ping_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_auto_ping_timer t...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool m_finished
                                                                                                                                                                                      false at start; set to true forever on the first *end_sending() invocation; true will prevent any sub...
                                                                                                                                                                                      +
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      void on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the auto-ping timer firing; if...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool async_end_sending_impl(Error_code *sync_err_code_ptr_or_null, flow::async::Task_asio_err &&on_done_func_or_empty)
                                                                                                                                                                                      *end_sending() body.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart, but assuming PEER state.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool sync_write_or_q_ctl_cmd(Control_cmd cmd)
                                                                                                                                                                                      Writes the 2 payloads corresponding to CONTROL command cmd to m_mq; if unable to do so synchronously ...
                                                                                                                                                                                      +
                                                                                                                                                                                      ~Blob_stream_mq_sender_impl()
                                                                                                                                                                                      See Blob_stream_mq_sender counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      Error_code m_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      Useful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flo...
                                                                                                                                                                                      void assign(Native_handle hndl)
                                                                                                                                                                                      Loads value to be returned by native_handle().
                                                                                                                                                                                      @@ -1842,9 +1843,9 @@
                                                                                                                                                                                      @ S_SYNC_IO_WOULD_BLOCK
                                                                                                                                                                                      A sync_io operation could not immediately complete; it will complete contingent on active async-wait ...
                                                                                                                                                                                      @ S_INVALID_ARGUMENT
                                                                                                                                                                                      User called an API with 1 or more arguments against the API spec.
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      void pipe_produce(flow::log::Logger *logger_ptr, Pipe_writer *pipe)
                                                                                                                                                                                      Writes a byte to the given pipe writer.
                                                                                                                                                                                      Definition: util.cpp:67
                                                                                                                                                                                      void pipe_consume(flow::log::Logger *logger_ptr, Pipe_reader *pipe)
                                                                                                                                                                                      Reads a byte via the given pipe reader.
                                                                                                                                                                                      Definition: util.cpp:96
                                                                                                                                                                                      @@ -1865,7 +1866,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp.html index d7ab2aa68..7a74cabb4 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp_source.html index a40518324..8e704143a 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8cpp_source.html @@ -693,13 +693,13 @@
                                                                                                                                                                                      static constexpr proto_ver_t S_VER_UNKNOWN
                                                                                                                                                                                      A proto_ver_t value, namely a negative one, which is a reserved value indicating "unknown version"; i...
                                                                                                                                                                                      Gettable (read-only) socket option for use with asio_local_stream_socket::Peer_socket ....
                                                                                                                                                                                      Internal, non-movable pImpl implementation of sync_io::Native_socket_stream class.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_peer_socket
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_peer_socket
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool state_peer(util::String_view context) const
                                                                                                                                                                                      Checks whether m_state has reached State::S_PEER; if so returns true; if not logs WARNING and returns...
                                                                                                                                                                                      flow::util::Task_engine m_nb_task_engine
                                                                                                                                                                                      The Task_engine for m_peer_socket.
                                                                                                                                                                                      bool sync_connect(const Shared_name &absolute_name, Error_code *err_code)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool start_connect_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      It is start_ops<Op::S_CONN>().
                                                                                                                                                                                      -
                                                                                                                                                                                      boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socket > m_peer_socket
                                                                                                                                                                                      The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become ...
                                                                                                                                                                                      +
                                                                                                                                                                                      boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socket > m_peer_socket
                                                                                                                                                                                      The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become ...
                                                                                                                                                                                      util::Process_credentials remote_peer_process_credentials(Error_code *err_code) const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      static const size_t S_MAX_META_BLOB_LENGTH
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      @@ -707,12 +707,12 @@
                                                                                                                                                                                      bool replace_event_wait_handles(const Function< util::sync_io::Asio_waitable_native_handle()> &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      State
                                                                                                                                                                                      Overall state of a Native_socket_stream::Impl.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::sync_io::Asio_waitable_native_handle > m_conn_ev_wait_hndl_peer_socket
                                                                                                                                                                                      This is to (m_peer_socket, m_conn_async_worker) what m_ev_wait_hndl_peer_socket is to (m_peer_socket,...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::sync_io::Asio_waitable_native_handle > m_conn_ev_wait_hndl_peer_socket
                                                                                                                                                                                      This is to (m_peer_socket, m_conn_async_worker) what m_ev_wait_hndl_peer_socket is to (m_peer_socket,...
                                                                                                                                                                                      void conn_on_ev_peer_socket_writable(flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      Handler for the async-wait in case async_connect() cannot synchronously complete the m_peer_socket co...
                                                                                                                                                                                      static const low_lvl_payload_blob_length_t S_META_BLOB_LENGTH_PING_SENTINEL
                                                                                                                                                                                      Value for the length field in payload 1 that means "not a length; indicating this is a ping message....
                                                                                                                                                                                      void async_connect(const Shared_name &absolute_name, Error_code *sync_err_code, flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      The core of sync_connect(), written in the sync_io-pattern style.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_conn_async_worker
                                                                                                                                                                                      Event loop used exclusively by sync_connect() which as needed ->start()s a short-lived thread and ->s...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_conn_async_worker
                                                                                                                                                                                      Event loop used exclusively by sync_connect() which as needed ->start()s a short-lived thread and ->s...
                                                                                                                                                                                      Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      flow::log::Logger * get_logger() const
                                                                                                                                                                                      Returns logger (possibly null).
                                                                                                                                                                                      friend std::ostream & operator<<(std::ostream &os, const Native_socket_stream &val)
                                                                                                                                                                                      Friend of Native_socket_stream.
                                                                                                                                                                                      @@ -728,7 +728,7 @@
                                                                                                                                                                                      @ S_LOW_LVL_TRANSPORT_HOSED
                                                                                                                                                                                      Unable to access low-level details: an earlier-reported system error had hosed the underlying transpo...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      boost::shared_ptr< Task > Task_ptr
                                                                                                                                                                                      Short-hand for ref-counted pointer to a Function<> that takes no arguments and returns nothing; in pa...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      @@ -742,7 +742,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp.html index 8e06cc308..2308200d7 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp_source.html index e08cb47dd..d411489f7 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2detail_2native__socket__stream__impl_8hpp_source.html @@ -1269,451 +1269,495 @@
                                                                                                                                                                                      1197
                                                                                                                                                                                      1198 /**
                                                                                                                                                                                      1199 * The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become hosed
                                                                                                                                                                                      -
                                                                                                                                                                                      1200 * and hence closed+destroyed the boost.asio `Peer_socket`. Note that (1) it starts non-null, and is in
                                                                                                                                                                                      -
                                                                                                                                                                                      1201 * "open" (FD-bearing) state from the start -- even if the NULL-state ctor was used; and (2) can only
                                                                                                                                                                                      -
                                                                                                                                                                                      1202 * become null (irreversibly so) when in PEER state, only on error.
                                                                                                                                                                                      -
                                                                                                                                                                                      1203 * - In State::S_NULL #m_state, this is an "open" (FD-bearing) but unconnected socket.
                                                                                                                                                                                      -
                                                                                                                                                                                      1204 * - In State::S_CONNECTING #m_state, this is the same socket, in the process of connecting.
                                                                                                                                                                                      -
                                                                                                                                                                                      1205 * (If connect fails, the FD persists but goes back to just a steady-state "open" unconnected state.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1206 * - In State::S_PEER #m_state, this is either the same socket, now connected; or, upon a detected error in
                                                                                                                                                                                      -
                                                                                                                                                                                      1207 * either direction, a null pointer.
                                                                                                                                                                                      -
                                                                                                                                                                                      1208 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1209 * Moreover the FD cannot be replaced with another FD: if PEER-state ctor is used, then that FD is connected
                                                                                                                                                                                      -
                                                                                                                                                                                      1210 * from the start; if NULL-state ctor is used, then that FD is unconnected but may become connected (if/when)
                                                                                                                                                                                      -
                                                                                                                                                                                      1211 * State::S_PEER is reached (via async_connect()).
                                                                                                                                                                                      -
                                                                                                                                                                                      1212 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1213 * `*m_peer_socket` is used *exclusively* for non-blocking calls; *never* `.async_*()`. That conforms to
                                                                                                                                                                                      -
                                                                                                                                                                                      1214 * the `sync_io` pattern. See #m_nb_task_engine doc header.
                                                                                                                                                                                      -
                                                                                                                                                                                      1215 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1216 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      1217 * The above facts are important -- namely that from the very start (up to an error) the FD is loaded and never
                                                                                                                                                                                      -
                                                                                                                                                                                      1218 * changes -- because the watcher FD-wrappers used in
                                                                                                                                                                                      -
                                                                                                                                                                                      1219 * the `sync_io` pattern can be simply and correctly initialized at any time and not change thereafter (
                                                                                                                                                                                      -
                                                                                                                                                                                      1220 * in terms what FD they wrap).
                                                                                                                                                                                      -
                                                                                                                                                                                      1221 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1222 * As for the null-pointer state, it exists for 2 reasons which are somewhat in synergy:
                                                                                                                                                                                      -
                                                                                                                                                                                      1223 * - It is a way of giving back the FD-resource to the kernel as early as possible.
                                                                                                                                                                                      -
                                                                                                                                                                                      1224 * (Destroying `Peer_socket` closes the contained FD/socket.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1225 * - It is a way for the incoming-direction processing logic to inform the outgoing-direction counterpart logic
                                                                                                                                                                                      -
                                                                                                                                                                                      1226 * that it has detected the socket is entirely hosed, in both directions (and hence no need to even try further
                                                                                                                                                                                      -
                                                                                                                                                                                      1227 * operations on it); and vice versa.
                                                                                                                                                                                      -
                                                                                                                                                                                      1228 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1229 * As to that 2nd reason: a couple of other approaches would work:
                                                                                                                                                                                      -
                                                                                                                                                                                      1230 * - We could simply let the 2nd-to-detect-failure processing direction discover the hosedness by naively
                                                                                                                                                                                      -
                                                                                                                                                                                      1231 * trying an operation and getting the inevitable error from the kernel (probably the same one).
                                                                                                                                                                                      -
                                                                                                                                                                                      1232 * - This is actually a pretty good alternative approach; it might even be better:
                                                                                                                                                                                      -
                                                                                                                                                                                      1233 * As written direction 2 will get a catch-all `S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND` or
                                                                                                                                                                                      -
                                                                                                                                                                                      1234 * `S_LOW_LVL_TRANSPORT_HOSED_CANNOT_RECEIVE` error; while with the alternative approach we could
                                                                                                                                                                                      -
                                                                                                                                                                                      1235 * get the "real" error in both directions. There are benefits to each approach; the alternative one
                                                                                                                                                                                      -
                                                                                                                                                                                      1236 * provides more info when looking at just one direction, while the existing one is quicker and
                                                                                                                                                                                      -
                                                                                                                                                                                      1237 * less entropy-laden (arguably), returns the FD/socket resource sooner, and still makes the true error
                                                                                                                                                                                      -
                                                                                                                                                                                      1238 * available. See to-do at the end of this doc header, as the alternative approach may carry another
                                                                                                                                                                                      -
                                                                                                                                                                                      1239 * benefit.
                                                                                                                                                                                      -
                                                                                                                                                                                      1240 * - We could have incoming-direction logic check #m_snd_pending_err_code/outgoing-direction check
                                                                                                                                                                                      -
                                                                                                                                                                                      1241 * #m_rcv_pending_err_code ahead of accessing #m_peer_socket.
                                                                                                                                                                                      -
                                                                                                                                                                                      1242 * - This idea sucks. It breaks the intentional and important (for perf) guarantee under
                                                                                                                                                                                      -
                                                                                                                                                                                      1243 * "Thread safety" in the sync_io::Native_socket_stream doc header, wherein
                                                                                                                                                                                      -
                                                                                                                                                                                      1244 * receive-ops logic and send-ops logic may execute concurrently (as now the latter accesses some of
                                                                                                                                                                                      -
                                                                                                                                                                                      1245 * the former's data and vice versa).
                                                                                                                                                                                      -
                                                                                                                                                                                      1246 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1247 * ### Concurrency, synchronization ###
                                                                                                                                                                                      -
                                                                                                                                                                                      1248 * That brings us to the key discussion of concurrency protection: #m_peer_socket is the
                                                                                                                                                                                      -
                                                                                                                                                                                      1249 * *only* non-`const`-accessed datum in `*this` that may be accessed concurrently by receive-ops methods
                                                                                                                                                                                      -
                                                                                                                                                                                      1250 * and send-ops methods. Namely: send-ops are started by `start_send_*_ops()`; receive-ops are started by
                                                                                                                                                                                      -
                                                                                                                                                                                      1251 * `start_receive_*_ops()`; in PEER state all logic to do with sending can occur entirely concurrently with all
                                                                                                                                                                                      -
                                                                                                                                                                                      1252 * logic to do with receiving. Except, however, they both use #m_peer_socket -- for *non-blocking calls only!* --
                                                                                                                                                                                      -
                                                                                                                                                                                      1253 * as #m_peer_socket is bidirectional. In particular, for example, `m_peer_socket->read_some()` might execute
                                                                                                                                                                                      -
                                                                                                                                                                                      1254 * concurrently to `m_peer_socket->write_some()`. In addition, #m_peer_socket pointer might be nullified (due to
                                                                                                                                                                                      -
                                                                                                                                                                                      1255 * error) by one direction's logic, while the other is trying to dereference it and execute a method.
                                                                                                                                                                                      -
                                                                                                                                                                                      1256 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1257 * This is resolved by our locking #m_peer_socket_mutex, albeit in a very tight critical section that always
                                                                                                                                                                                      -
                                                                                                                                                                                      1258 * looks like:
                                                                                                                                                                                      -
                                                                                                                                                                                      1259 * -# Lock mutex.
                                                                                                                                                                                      -
                                                                                                                                                                                      1260 * -# Check if it's null; if so unlock/exit algorithm. Else:
                                                                                                                                                                                      -
                                                                                                                                                                                      1261 * -# Attempt synchronous, non-blocking operation on dereferenced pointer.
                                                                                                                                                                                      -
                                                                                                                                                                                      1262 * -# If it exposed socket error, nullify pointer.
                                                                                                                                                                                      -
                                                                                                                                                                                      1263 * -# Unlock mutex.
                                                                                                                                                                                      -
                                                                                                                                                                                      1264 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1265 * It's tight, so lock contention should be minimal. Also no other mutex is locked inside such a critical
                                                                                                                                                                                      -
                                                                                                                                                                                      1266 * section, so deadlock chance is nil. However see the following to-do for an alternative approach.
                                                                                                                                                                                      +
                                                                                                                                                                                      1200 * and hence have ceased all all work on the boost.asio `Peer_socket` short of its destruction.
                                                                                                                                                                                      +
                                                                                                                                                                                      1201 * Note that (1) it starts non-null (see also related #m_peer_socket_hosed), and is in
                                                                                                                                                                                      +
                                                                                                                                                                                      1202 * "open" (FD-bearing) state from the start -- even if the NULL-state ctor was used; and (2) can only
                                                                                                                                                                                      +
                                                                                                                                                                                      1203 * become null (irreversibly so) when in PEER state, only on error.
                                                                                                                                                                                      +
                                                                                                                                                                                      1204 * - In State::S_NULL #m_state, this is an "open" (FD-bearing) but unconnected socket.
                                                                                                                                                                                      +
                                                                                                                                                                                      1205 * - In State::S_CONNECTING #m_state, this is the same socket, in the process of connecting.
                                                                                                                                                                                      +
                                                                                                                                                                                      1206 * (If connect fails, the FD persists but goes back to just a steady-state "open" unconnected state.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1207 * - In State::S_PEER #m_state, this is either the same socket, now connected; or, upon a detected error in
                                                                                                                                                                                      +
                                                                                                                                                                                      1208 * either direction, a null pointer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1209 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1210 * Moreover the FD cannot be replaced with another FD: if PEER-state ctor is used, then that FD is connected
                                                                                                                                                                                      +
                                                                                                                                                                                      1211 * from the start; if NULL-state ctor is used, then that FD is unconnected but may become connected (if/when)
                                                                                                                                                                                      +
                                                                                                                                                                                      1212 * State::S_PEER is reached (via async_connect()).
                                                                                                                                                                                      +
                                                                                                                                                                                      1213 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1214 * `*m_peer_socket` is used *exclusively* for non-blocking calls; *never* `.async_*()`. That conforms to
                                                                                                                                                                                      +
                                                                                                                                                                                      1215 * the `sync_io` pattern. See #m_nb_task_engine doc header.
                                                                                                                                                                                      +
                                                                                                                                                                                      1216 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1217 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      1218 * The above facts are important -- namely that from the very start (up to an error) the FD is loaded and never
                                                                                                                                                                                      +
                                                                                                                                                                                      1219 * changes -- because the watcher FD-wrappers used in
                                                                                                                                                                                      +
                                                                                                                                                                                      1220 * the `sync_io` pattern can be simply and correctly initialized at any time and not change thereafter (
                                                                                                                                                                                      +
                                                                                                                                                                                      1221 * in terms what FD they wrap).
                                                                                                                                                                                      +
                                                                                                                                                                                      1222 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1223 * As for the null-pointer state, it exists for 2 reasons which are somewhat in synergy:
                                                                                                                                                                                      +
                                                                                                                                                                                      1224 * - It is a way of giving back the FD-resource to the kernel as early as possible.
                                                                                                                                                                                      +
                                                                                                                                                                                      1225 * (Destroying `Peer_socket` closes the contained FD/socket.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1226 * - Update: Unfortunately another, more important consideration has obsoleted this reason. It no longer applies.
                                                                                                                                                                                      +
                                                                                                                                                                                      1227 * See #m_peer_socket_hosed for more (but it's not that interesting here).
                                                                                                                                                                                      +
                                                                                                                                                                                      1228 * - It is a way for the incoming-direction processing logic to inform the outgoing-direction counterpart logic
                                                                                                                                                                                      +
                                                                                                                                                                                      1229 * that it has detected the socket is entirely hosed, in both directions (and hence no need to even try further
                                                                                                                                                                                      +
                                                                                                                                                                                      1230 * operations on it); and vice versa.
                                                                                                                                                                                      +
                                                                                                                                                                                      1231 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1232 * As to that 2nd reason: a couple of other approaches would work:
                                                                                                                                                                                      +
                                                                                                                                                                                      1233 * - We could simply let the 2nd-to-detect-failure processing direction discover the hosedness by naively
                                                                                                                                                                                      +
                                                                                                                                                                                      1234 * trying an operation and getting the inevitable error from the kernel (probably the same one).
                                                                                                                                                                                      +
                                                                                                                                                                                      1235 * - This is actually a pretty good alternative approach; it might even be better:
                                                                                                                                                                                      +
                                                                                                                                                                                      1236 * As written direction 2 will get a catch-all `S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND` or
                                                                                                                                                                                      +
                                                                                                                                                                                      1237 * `S_LOW_LVL_TRANSPORT_HOSED_CANNOT_RECEIVE` error; while with the alternative approach we could
                                                                                                                                                                                      +
                                                                                                                                                                                      1238 * get the "real" error in both directions. There are benefits to each approach; the alternative one
                                                                                                                                                                                      +
                                                                                                                                                                                      1239 * provides more info when looking at just one direction, while the existing one is quicker and
                                                                                                                                                                                      +
                                                                                                                                                                                      1240 * less entropy-laden (arguably), returns the FD/socket resource sooner, and still makes the true error
                                                                                                                                                                                      +
                                                                                                                                                                                      1241 * available. See to-do at the end of this doc header, as the alternative approach may carry another
                                                                                                                                                                                      +
                                                                                                                                                                                      1242 * benefit.
                                                                                                                                                                                      +
                                                                                                                                                                                      1243 * - We could have incoming-direction logic check #m_snd_pending_err_code/outgoing-direction check
                                                                                                                                                                                      +
                                                                                                                                                                                      1244 * #m_rcv_pending_err_code ahead of accessing #m_peer_socket.
                                                                                                                                                                                      +
                                                                                                                                                                                      1245 * - This idea sucks. It breaks the intentional and important (for perf) guarantee under
                                                                                                                                                                                      +
                                                                                                                                                                                      1246 * "Thread safety" in the sync_io::Native_socket_stream doc header, wherein
                                                                                                                                                                                      +
                                                                                                                                                                                      1247 * receive-ops logic and send-ops logic may execute concurrently (as now the latter accesses some of
                                                                                                                                                                                      +
                                                                                                                                                                                      1248 * the former's data and vice versa).
                                                                                                                                                                                      +
                                                                                                                                                                                      1249 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1250 * ### Concurrency, synchronization ###
                                                                                                                                                                                      +
                                                                                                                                                                                      1251 * That brings us to the key discussion of concurrency protection: #m_peer_socket is the
                                                                                                                                                                                      +
                                                                                                                                                                                      1252 * *only* non-`const`-accessed datum in `*this` that may be accessed concurrently by receive-ops methods
                                                                                                                                                                                      +
                                                                                                                                                                                      1253 * and send-ops methods. Namely: send-ops are started by `start_send_*_ops()`; receive-ops are started by
                                                                                                                                                                                      +
                                                                                                                                                                                      1254 * `start_receive_*_ops()`; in PEER state all logic to do with sending can occur entirely concurrently with all
                                                                                                                                                                                      +
                                                                                                                                                                                      1255 * logic to do with receiving. Except, however, they both use #m_peer_socket -- for *non-blocking calls only!* --
                                                                                                                                                                                      +
                                                                                                                                                                                      1256 * as #m_peer_socket is bidirectional. In particular, for example, `m_peer_socket->read_some()` might execute
                                                                                                                                                                                      +
                                                                                                                                                                                      1257 * concurrently to `m_peer_socket->write_some()`. In addition, #m_peer_socket pointer might be nullified (due to
                                                                                                                                                                                      +
                                                                                                                                                                                      1258 * error) by one direction's logic, while the other is trying to dereference it and execute a method.
                                                                                                                                                                                      +
                                                                                                                                                                                      1259 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1260 * This is resolved by our locking #m_peer_socket_mutex, albeit in a very tight critical section that always
                                                                                                                                                                                      +
                                                                                                                                                                                      1261 * looks like:
                                                                                                                                                                                      +
                                                                                                                                                                                      1262 * -# Lock mutex.
                                                                                                                                                                                      +
                                                                                                                                                                                      1263 * -# Check if it's null; if so unlock/exit algorithm. Else:
                                                                                                                                                                                      +
                                                                                                                                                                                      1264 * -# Attempt synchronous, non-blocking operation on dereferenced pointer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1265 * -# If it exposed socket error, nullify pointer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1266 * -# Unlock mutex.
                                                                                                                                                                                      1267 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1268 * @todo `Peer_socket m_peer_socket` synchronous-read ops (`read_some()`) are actually
                                                                                                                                                                                      -
                                                                                                                                                                                      1269 * documented in boost::asio to be thread-safe against concurrently invoked synchronous-write ops
                                                                                                                                                                                      -
                                                                                                                                                                                      1270 * (`write_some()`), as are OS calls `"::recvmsg()"`, `"::sendmsg()"`; therefore for possible perf bump
                                                                                                                                                                                      -
                                                                                                                                                                                      1271 * consider never nullifying Impl::m_peer_socket; eliminating Impl::m_peer_socket_mutex; and
                                                                                                                                                                                      -
                                                                                                                                                                                      1272 * letting each direction's logic discover any socket-error independently. (But, at the moment,
                                                                                                                                                                                      -
                                                                                                                                                                                      1273 * `m_peer_socket_mutex` also covers mirror-guy #m_ev_wait_hndl_peer_socket, so that must be worked out.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1274 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1275 * To be clear, the text above
                                                                                                                                                                                      -
                                                                                                                                                                                      1276 * w/r/t concurrency/synchronization says `->write_some()` and `->read_some()` might execute concurrently --
                                                                                                                                                                                      -
                                                                                                                                                                                      1277 * but boost.asio docs (`basic_stream_socket` page) indicate that is actually okay; and implies
                                                                                                                                                                                      -
                                                                                                                                                                                      1278 * the same about underlying OS calls (which includes `readmsg()` and `writemsg()` which we use when
                                                                                                                                                                                      -
                                                                                                                                                                                      1279 * `Native_handle` transmission is needed). Now, the nullification versus dereferencing of the `unique_ptr`
                                                                                                                                                                                      -
                                                                                                                                                                                      1280 * wrapping `m_peer_socket`: that is indeed not thread-safe, which is why we'd need to also get rid of that method
                                                                                                                                                                                      -
                                                                                                                                                                                      1281 * of communicating socket-hosed state from one direction to the other. However, as we wrote above, the
                                                                                                                                                                                      -
                                                                                                                                                                                      1282 * alternate approach, where each direction discovers the socket error independently, would be compatible
                                                                                                                                                                                      -
                                                                                                                                                                                      1283 * with `m_peer_socket` not needing to be a `unique_ptr` at all. That said the socket would not be given
                                                                                                                                                                                      -
                                                                                                                                                                                      1284 * back to the system as early (potentially) -- note that boost.asio `close()` is noted to not be
                                                                                                                                                                                      -
                                                                                                                                                                                      1285 * safe against concurrent reads/writes -- and in general the approach "feels" more entropy-laden.
                                                                                                                                                                                      -
                                                                                                                                                                                      1286 * I (ygoldfel) must say, though; it does sound entirely viable nevertheless; and it would be a limited change
                                                                                                                                                                                      -
                                                                                                                                                                                      1287 * that would also eliminate error::Code::S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND
                                                                                                                                                                                      -
                                                                                                                                                                                      1288 * and error::Code::S_LOW_LVL_TRANSPORT_HOSED_CANNOT_RECEIVE. One could even argue it is elegant, in that
                                                                                                                                                                                      -
                                                                                                                                                                                      1289 * it decouples the 2 directions as much as humanly possible, to the point of even using the kernel's support
                                                                                                                                                                                      -
                                                                                                                                                                                      1290 * for it. (Last note: the boost.asio docs single out `connect()`, `shutdown()`, `send()`, `receive()`
                                                                                                                                                                                      -
                                                                                                                                                                                      1291 * as okay to invoke concurrently; not `read_some()` and `write_some()`; but I very strongly suspect
                                                                                                                                                                                      -
                                                                                                                                                                                      1292 * this is only an omission, perhaps due to `*_some()` appearing for uniformity in a boost.asio overhaul
                                                                                                                                                                                      -
                                                                                                                                                                                      1293 * after those docs were written; in the source it is clear they invoke the same exact stuff. Googling shows,
                                                                                                                                                                                      -
                                                                                                                                                                                      1294 * generally, the underlying OS calls including `*msg()` are thread-safe to use in this manner also.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1295 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1296 boost::movelib::unique_ptr<asio_local_stream_socket::Peer_socket> m_peer_socket;
                                                                                                                                                                                      -
                                                                                                                                                                                      1297
                                                                                                                                                                                      -
                                                                                                                                                                                      1298 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1299 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      1300 * used to wait on events from) #m_peer_socket.
                                                                                                                                                                                      -
                                                                                                                                                                                      1301 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1302 * Protected by #m_peer_socket_mutex, along with #m_peer_socket. To be accessed only if an error hasn't
                                                                                                                                                                                      -
                                                                                                                                                                                      1303 * nullified #m_peer_socket since the last critical section. Now, "accessed" *always* (once set up)
                                                                                                                                                                                      -
                                                                                                                                                                                      1304 * means calling `m_*_ev_wait_wait_func` with this guy as the 1st arg; it can be pictured as a `sync_io`
                                                                                                                                                                                      -
                                                                                                                                                                                      1305 * equivalent of `m_peer_socket->async_wait()`. However it does mean the `*this` user must be careful
                                                                                                                                                                                      -
                                                                                                                                                                                      1306 * not to lock something in that function that is already locked when they call `(*on_active_ev_func)()` --
                                                                                                                                                                                      -
                                                                                                                                                                                      1307 * that would cause a deadlock -- and if it's a recursive mutex, then they risk an AB/BA deadlock.
                                                                                                                                                                                      -
                                                                                                                                                                                      1308 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1309 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1310 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1312
                                                                                                                                                                                      -
                                                                                                                                                                                      1313 /// Protects #m_peer_socket and its bro #m_ev_wait_hndl_peer_socket.
                                                                                                                                                                                      -
                                                                                                                                                                                      1314 flow::util::Mutex_non_recursive m_peer_socket_mutex;
                                                                                                                                                                                      -
                                                                                                                                                                                      1315
                                                                                                                                                                                      -
                                                                                                                                                                                      1316 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1317 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      -
                                                                                                                                                                                      1318 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      -
                                                                                                                                                                                      1319 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the auto-ping timer
                                                                                                                                                                                      -
                                                                                                                                                                                      1320 * (send direction) and idle timer (receive direction).
                                                                                                                                                                                      -
                                                                                                                                                                                      1321 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1322 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      -
                                                                                                                                                                                      1323 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1325
                                                                                                                                                                                      -
                                                                                                                                                                                      1326 // Connect-ops data.
                                                                                                                                                                                      -
                                                                                                                                                                                      1327
                                                                                                                                                                                      -
                                                                                                                                                                                      1328 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1329 * Event loop used exclusively by sync_connect() which as needed `->start()`s a short-lived thread and `->stop()`s it
                                                                                                                                                                                      -
                                                                                                                                                                                      1330 * before returning, in case async_connect() does not complete synchronously. Null in PEER state; non-null in NULL
                                                                                                                                                                                      -
                                                                                                                                                                                      1331 * state (when sync_connect() might be called and not no-op).
                                                                                                                                                                                      -
                                                                                                                                                                                      1332 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1333 * See "Connect-ops impl design" in class doc header for key background discussion of sync_connect() et al.
                                                                                                                                                                                      -
                                                                                                                                                                                      1334 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1335 std::optional<flow::async::Single_thread_task_loop> m_conn_async_worker;
                                                                                                                                                                                      -
                                                                                                                                                                                      1336
                                                                                                                                                                                      -
                                                                                                                                                                                      1337 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1338 * This is to (#m_peer_socket, #m_conn_async_worker) what #m_ev_wait_hndl_peer_socket is to (#m_peer_socket,
                                                                                                                                                                                      -
                                                                                                                                                                                      1339 * transport::Native_socket_stream::Impl::m_worker), respectively. Thus it stores yet another copy of
                                                                                                                                                                                      -
                                                                                                                                                                                      1340 * `m_peer_socket->native_handle()` but associated with `m_conn_async_worker->task_engine()`; so that
                                                                                                                                                                                      -
                                                                                                                                                                                      1341 * async_connect() -- if it needs to execute an async-wait -- can (via `sync_io` pattern) make use of
                                                                                                                                                                                      -
                                                                                                                                                                                      1342 * `m_conn_ev_wait_hndl_peer_socket->async_wait(F)`, and completion handler `F()` shall be posted onto the
                                                                                                                                                                                      -
                                                                                                                                                                                      1343 * short-lived thread resulting from `m_conn_async_worker->start()` in sync_connect().
                                                                                                                                                                                      -
                                                                                                                                                                                      1344 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1345 * Null if and only if #m_conn_async_worker is null.
                                                                                                                                                                                      -
                                                                                                                                                                                      1346 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1347 * See "Connect-ops impl design" in class doc header for key background discussion of sync_connect() et al.
                                                                                                                                                                                      -
                                                                                                                                                                                      1348 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1349 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      1350 * It is also possible to instead just use #m_ev_wait_hndl_peer_socket for the connect-ops `sync_io`-pattern
                                                                                                                                                                                      -
                                                                                                                                                                                      1351 * setup, along with using it for send-ops and receive-ops. However, while storing marginally less state,
                                                                                                                                                                                      -
                                                                                                                                                                                      1352 * it is pretty annoying in other ways: replace_event_wait_handles() to set up future send-ops and receive-ops
                                                                                                                                                                                      -
                                                                                                                                                                                      1353 * can happen at any time, including before sync_connect(); so sync_connect() would need to save
                                                                                                                                                                                      -
                                                                                                                                                                                      1354 * #m_ev_wait_hndl_peer_socket, then re-associate it with #m_conn_async_worker, then restore it. Whereas by
                                                                                                                                                                                      -
                                                                                                                                                                                      1355 * decoupling as we do here, we separate the NULL-state and PEER-state algorithms cleanly and need to worry
                                                                                                                                                                                      -
                                                                                                                                                                                      1356 * about that stuff.
                                                                                                                                                                                      -
                                                                                                                                                                                      1357 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1358 * (Maintenance note: If/when -- as speculated in class doc header section "Connect-ops impl design" -- we make
                                                                                                                                                                                      -
                                                                                                                                                                                      1359 * start_connect_ops() and async_connect() public at some point, then probably it'll be best to indeed
                                                                                                                                                                                      -
                                                                                                                                                                                      1360 * eliminate `m_conn_ev_wait_hndl_peer_socket` and use `m_ev_wait_hndl_peer_socket` for all the ops, including
                                                                                                                                                                                      -
                                                                                                                                                                                      1361 * having replace_event_wait_handles() handle connect-ops stuff in addition to send-ops and receive-ops. Now
                                                                                                                                                                                      -
                                                                                                                                                                                      1362 * the user will be in charge of providing async-waiting machinery for connect-ops per normal `sync_op` pattern,
                                                                                                                                                                                      -
                                                                                                                                                                                      1363 * as opposed to the existing situation where we manage that internally to `*this`.)
                                                                                                                                                                                      -
                                                                                                                                                                                      1364 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1365 std::optional<util::sync_io::Asio_waitable_native_handle> m_conn_ev_wait_hndl_peer_socket;
                                                                                                                                                                                      -
                                                                                                                                                                                      1366
                                                                                                                                                                                      -
                                                                                                                                                                                      1367 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1368 * Function (set forever in start_connect_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      -
                                                                                                                                                                                      1369 * async-wait facility for descriptors/events relevant to connect-ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      -
                                                                                                                                                                                      1370 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      -
                                                                                                                                                                                      1371 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1373
                                                                                                                                                                                      -
                                                                                                                                                                                      1374 // Outgoing-direction data.
                                                                                                                                                                                      -
                                                                                                                                                                                      1375
                                                                                                                                                                                      -
                                                                                                                                                                                      1376 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1377 * Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed by
                                                                                                                                                                                      -
                                                                                                                                                                                      1378 * the payloads that should be written after that completes, in order.
                                                                                                                                                                                      -
                                                                                                                                                                                      1379 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1380 * Relevant only once terminal State::S_PEER is reached. In that state only touched if would-block is
                                                                                                                                                                                      -
                                                                                                                                                                                      1381 * encountered in... well, see Snd_low_lvl_payload doc header.
                                                                                                                                                                                      -
                                                                                                                                                                                      1382 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1383 std::queue<Snd_low_lvl_payload::Ptr> m_snd_pending_payloads_q;
                                                                                                                                                                                      -
                                                                                                                                                                                      1384
                                                                                                                                                                                      -
                                                                                                                                                                                      1385 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1386 * The first and only connection-hosing error condition detected when attempting to low-level-write on
                                                                                                                                                                                      -
                                                                                                                                                                                      1387 * #m_peer_socket; or falsy if no such error has yet been detected. Among possible other uses, it is returned
                                                                                                                                                                                      -
                                                                                                                                                                                      1388 * by send_native_handle() and the completion handler of async_end_sending().
                                                                                                                                                                                      -
                                                                                                                                                                                      1389 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1390 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1391 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1393
                                                                                                                                                                                      -
                                                                                                                                                                                      1394 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1395 * `false` at start; set to `true` forever on the first `*end_sending()` invocation;
                                                                                                                                                                                      -
                                                                                                                                                                                      1396 * `true` will prevent any subsequent send_native_handle()/send_blob() calls from proceeding.
                                                                                                                                                                                      -
                                                                                                                                                                                      1397 * See class doc header impl section for design discussion.
                                                                                                                                                                                      -
                                                                                                                                                                                      1398 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1399 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1400 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1402
                                                                                                                                                                                      -
                                                                                                                                                                                      1403 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1404 * Function passed to async_end_sending(), if it returned `true` and was unable to synchronously flush everything
                                                                                                                                                                                      -
                                                                                                                                                                                      1405 * including the graceful-close itself (synchronously detecting new or previous pipe-hosing error *does* entail
                                                                                                                                                                                      -
                                                                                                                                                                                      1406 * flushing everything); otherwise `.empty()`. It's the completion handler of that graceful-close-send API.
                                                                                                                                                                                      -
                                                                                                                                                                                      1407 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1408 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1409 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1411
                                                                                                                                                                                      -
                                                                                                                                                                                      1412 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1413 * Equals `zero()` before auto_ping(); immutably equals `period` (auto_ping() arg) subsequently to that first
                                                                                                                                                                                      -
                                                                                                                                                                                      1414 * successful call (if any).
                                                                                                                                                                                      -
                                                                                                                                                                                      1415 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1416 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1417 */
                                                                                                                                                                                      - +
                                                                                                                                                                                      1268 * It's tight, so lock contention should be minimal. Also no other mutex is locked inside such a critical
                                                                                                                                                                                      +
                                                                                                                                                                                      1269 * section, so deadlock chance is nil. However see the following to-do for an alternative approach.
                                                                                                                                                                                      +
                                                                                                                                                                                      1270 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1271 * @todo `Peer_socket m_peer_socket` synchronous-read ops (`read_some()`) are actually
                                                                                                                                                                                      +
                                                                                                                                                                                      1272 * documented in boost::asio to be thread-safe against concurrently invoked synchronous-write ops
                                                                                                                                                                                      +
                                                                                                                                                                                      1273 * (`write_some()`), as are OS calls `"::recvmsg()"`, `"::sendmsg()"`; therefore for possible perf bump
                                                                                                                                                                                      +
                                                                                                                                                                                      1274 * consider never nullifying Impl::m_peer_socket; eliminating Impl::m_peer_socket_mutex; and
                                                                                                                                                                                      +
                                                                                                                                                                                      1275 * letting each direction's logic discover any socket-error independently. (But, at the moment,
                                                                                                                                                                                      +
                                                                                                                                                                                      1276 * `m_peer_socket_mutex` also covers mirror-guy #m_ev_wait_hndl_peer_socket, so that must be worked out.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1277 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1278 * To be clear, the text above
                                                                                                                                                                                      +
                                                                                                                                                                                      1279 * w/r/t concurrency/synchronization says `->write_some()` and `->read_some()` might execute concurrently --
                                                                                                                                                                                      +
                                                                                                                                                                                      1280 * but boost.asio docs (`basic_stream_socket` page) indicate that is actually okay; and implies
                                                                                                                                                                                      +
                                                                                                                                                                                      1281 * the same about underlying OS calls (which includes `readmsg()` and `writemsg()` which we use when
                                                                                                                                                                                      +
                                                                                                                                                                                      1282 * `Native_handle` transmission is needed). Now, the nullification versus dereferencing of the `unique_ptr`
                                                                                                                                                                                      +
                                                                                                                                                                                      1283 * wrapping `m_peer_socket`: that is indeed not thread-safe, which is why we'd need to also get rid of that method
                                                                                                                                                                                      +
                                                                                                                                                                                      1284 * of communicating socket-hosed state from one direction to the other. However, as we wrote above, the
                                                                                                                                                                                      +
                                                                                                                                                                                      1285 * alternate approach, where each direction discovers the socket error independently, would be compatible
                                                                                                                                                                                      +
                                                                                                                                                                                      1286 * with `m_peer_socket` not needing to be a `unique_ptr` at all. That said the socket would not be given
                                                                                                                                                                                      +
                                                                                                                                                                                      1287 * back to the system as early (potentially) -- note that boost.asio `close()` is noted to not be
                                                                                                                                                                                      +
                                                                                                                                                                                      1288 * safe against concurrent reads/writes -- and in general the approach "feels" more entropy-laden.
                                                                                                                                                                                      +
                                                                                                                                                                                      1289 * I (ygoldfel) must say, though; it does sound entirely viable nevertheless; and it would be a limited change
                                                                                                                                                                                      +
                                                                                                                                                                                      1290 * that would also eliminate error::Code::S_LOW_LVL_TRANSPORT_HOSED_CANNOT_SEND
                                                                                                                                                                                      +
                                                                                                                                                                                      1291 * and error::Code::S_LOW_LVL_TRANSPORT_HOSED_CANNOT_RECEIVE. One could even argue it is elegant, in that
                                                                                                                                                                                      +
                                                                                                                                                                                      1292 * it decouples the 2 directions as much as humanly possible, to the point of even using the kernel's support
                                                                                                                                                                                      +
                                                                                                                                                                                      1293 * for it. (Last note: the boost.asio docs single out `connect()`, `shutdown()`, `send()`, `receive()`
                                                                                                                                                                                      +
                                                                                                                                                                                      1294 * as okay to invoke concurrently; not `read_some()` and `write_some()`; but I very strongly suspect
                                                                                                                                                                                      +
                                                                                                                                                                                      1295 * this is only an omission, perhaps due to `*_some()` appearing for uniformity in a boost.asio overhaul
                                                                                                                                                                                      +
                                                                                                                                                                                      1296 * after those docs were written; in the source it is clear they invoke the same exact stuff. Googling shows,
                                                                                                                                                                                      +
                                                                                                                                                                                      1297 * generally, the underlying OS calls including `*msg()` are thread-safe to use in this manner also.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1298 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1299 boost::movelib::unique_ptr<asio_local_stream_socket::Peer_socket> m_peer_socket;
                                                                                                                                                                                      +
                                                                                                                                                                                      1300
                                                                                                                                                                                      +
                                                                                                                                                                                      1301 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1302 * Null to start, this takes on the value from #m_peer_socket when and only when #m_peer_socket is nullified
                                                                                                                                                                                      +
                                                                                                                                                                                      1303 * (which occurs when and only when an error is detected on it). Protected (along with #m_peer_socket) by
                                                                                                                                                                                      +
                                                                                                                                                                                      1304 * #m_peer_socket_mutex.
                                                                                                                                                                                      +
                                                                                                                                                                                      1305 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1306 * So, at steady state, either #m_peer_socket is null, or #m_peer_socket_hosed is null, but never both null
                                                                                                                                                                                      +
                                                                                                                                                                                      1307 * or both non-null.
                                                                                                                                                                                      +
                                                                                                                                                                                      1308 * - `m_peer_socket` begins as non-null, `m_peer_socket_hosed` null.
                                                                                                                                                                                      +
                                                                                                                                                                                      1309 * - `m_peer_socket_hosed = std::move(m_peer_socket` may execute (or never execute), swapping them.
                                                                                                                                                                                      +
                                                                                                                                                                                      1310 * - In destructor, the non-null one gets destroyed; which internally closes the contained native-socket (FD).
                                                                                                                                                                                      +
                                                                                                                                                                                      1311 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1312 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      1313 * Why do this? Why not simply nullify `m_peer_socket`, both to mark it (as explained in its doc header) for
                                                                                                                                                                                      +
                                                                                                                                                                                      1314 * algorithmic purposes and to return the FD resource to the OS? The answer is subtle but very real:
                                                                                                                                                                                      +
                                                                                                                                                                                      1315 * Suppose an error is detected on the socket, and we simply destroy it -- thus closing the native socket.
                                                                                                                                                                                      +
                                                                                                                                                                                      1316 * In most cases this is okay; the user code will be informed of the error and not do further work on the socket.
                                                                                                                                                                                      +
                                                                                                                                                                                      1317 * What work does it do with it anyway? Answer: it is allowed to, at most, "watch" it: await readability
                                                                                                                                                                                      +
                                                                                                                                                                                      1318 * and/or writability, so as to report it to `*this` as part of the `sync_io` pattern. Once `*this` is hosed,
                                                                                                                                                                                      +
                                                                                                                                                                                      1319 * there's no need to watch it, right? Right... so consider they might be using a native mechanism, most notably
                                                                                                                                                                                      +
                                                                                                                                                                                      1320 * Linux's `epoll_ctl()` and `epoll_wait()`, to do so. With such a stateful mechanism the right thing to do
                                                                                                                                                                                      +
                                                                                                                                                                                      1321 * would be to unregister the now-worthless native-socket-handle on which they might currently be registered
                                                                                                                                                                                      +
                                                                                                                                                                                      1322 * to detect active events (as asked by us via `sync_io` pattern). So with `epoll` they'd do perhaps
                                                                                                                                                                                      +
                                                                                                                                                                                      1323 * `epoll_ctl(EPOLL_CTL_DEL)` to remove the FD from an epoll-set FD... but we just closed (`"::close()"`) it!
                                                                                                                                                                                      +
                                                                                                                                                                                      1324 * That's bad. (In reality -- subtleties/details omitted -- we might be able to get away without catastrophic
                                                                                                                                                                                      +
                                                                                                                                                                                      1325 * events... but at absolute best, this is entropy-laden and ugly and really just merely fortunate.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1326 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1327 * In short, we should not invalidate a native-handle that we may have asked the `*this` user to be watching
                                                                                                                                                                                      +
                                                                                                                                                                                      1328 * for activity, until we are sure they are no longer doing that. We can only be sure of that -- particularly
                                                                                                                                                                                      +
                                                                                                                                                                                      1329 * in light of the potential desire to unregister it from watch-set(s) -- once our dtor begins execution, at which
                                                                                                                                                                                      +
                                                                                                                                                                                      1330 * point they're contractually obligated to not touch the native-handle any longer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1331 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1332 * Okay... in that case... why not simply *not* nullify #m_peer_socket but use some other marker (a separate flag,
                                                                                                                                                                                      +
                                                                                                                                                                                      1333 * `bool m_peer_socket_hosed` maybe)? Answer: Sure, we could. It's not necessarily better or worse. In truth
                                                                                                                                                                                      +
                                                                                                                                                                                      1334 * it's arguably a historic artifact of how the code was written before considering the aforementioned problematic
                                                                                                                                                                                      +
                                                                                                                                                                                      1335 * scenario. That said, the present approach is reasonably elegant. If #m_peer_socket is null, there's no
                                                                                                                                                                                      +
                                                                                                                                                                                      1336 * temptation to try to do something with it, and for all practical intents and purposes no more work is possible
                                                                                                                                                                                      +
                                                                                                                                                                                      1337 * on #m_peer_socket, once an error is detected. So it's nice to nullify it. Then this `m_peer_socket_hosed`
                                                                                                                                                                                      +
                                                                                                                                                                                      1338 * just lives in peace, on death row, until it is safe to really close (in dtor).
                                                                                                                                                                                      +
                                                                                                                                                                                      1339 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1340 boost::movelib::unique_ptr<asio_local_stream_socket::Peer_socket> m_peer_socket_hosed;
                                                                                                                                                                                      +
                                                                                                                                                                                      1341
                                                                                                                                                                                      +
                                                                                                                                                                                      1342 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1343 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      1344 * used to wait on events from) #m_peer_socket.
                                                                                                                                                                                      +
                                                                                                                                                                                      1345 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1346 * Protected by #m_peer_socket_mutex, along with #m_peer_socket. To be accessed only if an error hasn't
                                                                                                                                                                                      +
                                                                                                                                                                                      1347 * nullified #m_peer_socket since the last critical section. Now, "accessed" *always* (once set up)
                                                                                                                                                                                      +
                                                                                                                                                                                      1348 * means calling `m_*_ev_wait_wait_func` with this guy as the 1st arg; it can be pictured as a `sync_io`
                                                                                                                                                                                      +
                                                                                                                                                                                      1349 * equivalent of `m_peer_socket->async_wait()`. However it does mean the `*this` user must be careful
                                                                                                                                                                                      +
                                                                                                                                                                                      1350 * not to lock something in that function that is already locked when they call `(*on_active_ev_func)()` --
                                                                                                                                                                                      +
                                                                                                                                                                                      1351 * that would cause a deadlock -- and if it's a recursive mutex, then they risk an AB/BA deadlock.
                                                                                                                                                                                      +
                                                                                                                                                                                      1352 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1353 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1354 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1356
                                                                                                                                                                                      +
                                                                                                                                                                                      1357 /// Protects #m_peer_socket and its bros #m_ev_wait_hndl_peer_socket and #m_peer_socket_hosed.
                                                                                                                                                                                      +
                                                                                                                                                                                      1358 flow::util::Mutex_non_recursive m_peer_socket_mutex;
                                                                                                                                                                                      +
                                                                                                                                                                                      1359
                                                                                                                                                                                      +
                                                                                                                                                                                      1360 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1361 * As typical in timer-needing `sync_io`-pattern-implementing objects, maintains a thread exclusively for
                                                                                                                                                                                      +
                                                                                                                                                                                      1362 * `Timer` wait completion handlers which ferry timer-fired events to internal IPC-mechanisms waitable
                                                                                                                                                                                      +
                                                                                                                                                                                      1363 * by the `sync_io`-pattern-using outside event loop. In our case we (optionally) maintain the auto-ping timer
                                                                                                                                                                                      +
                                                                                                                                                                                      1364 * (send direction) and idle timer (receive direction).
                                                                                                                                                                                      +
                                                                                                                                                                                      1365 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1366 * @see util::sync_io::Timer_event_emitter doc header for design/rationale discussion.
                                                                                                                                                                                      +
                                                                                                                                                                                      1367 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1369
                                                                                                                                                                                      +
                                                                                                                                                                                      1370 // Connect-ops data.
                                                                                                                                                                                      +
                                                                                                                                                                                      1371
                                                                                                                                                                                      +
                                                                                                                                                                                      1372 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1373 * Event loop used exclusively by sync_connect() which as needed `->start()`s a short-lived thread and `->stop()`s it
                                                                                                                                                                                      +
                                                                                                                                                                                      1374 * before returning, in case async_connect() does not complete synchronously. Null in PEER state; non-null in NULL
                                                                                                                                                                                      +
                                                                                                                                                                                      1375 * state (when sync_connect() might be called and not no-op).
                                                                                                                                                                                      +
                                                                                                                                                                                      1376 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1377 * See "Connect-ops impl design" in class doc header for key background discussion of sync_connect() et al.
                                                                                                                                                                                      +
                                                                                                                                                                                      1378 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1379 std::optional<flow::async::Single_thread_task_loop> m_conn_async_worker;
                                                                                                                                                                                      +
                                                                                                                                                                                      1380
                                                                                                                                                                                      +
                                                                                                                                                                                      1381 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1382 * This is to (#m_peer_socket, #m_conn_async_worker) what #m_ev_wait_hndl_peer_socket is to (#m_peer_socket,
                                                                                                                                                                                      +
                                                                                                                                                                                      1383 * transport::Native_socket_stream::Impl::m_worker), respectively. Thus it stores yet another copy of
                                                                                                                                                                                      +
                                                                                                                                                                                      1384 * `m_peer_socket->native_handle()` but associated with `m_conn_async_worker->task_engine()`; so that
                                                                                                                                                                                      +
                                                                                                                                                                                      1385 * async_connect() -- if it needs to execute an async-wait -- can (via `sync_io` pattern) make use of
                                                                                                                                                                                      +
                                                                                                                                                                                      1386 * `m_conn_ev_wait_hndl_peer_socket->async_wait(F)`, and completion handler `F()` shall be posted onto the
                                                                                                                                                                                      +
                                                                                                                                                                                      1387 * short-lived thread resulting from `m_conn_async_worker->start()` in sync_connect().
                                                                                                                                                                                      +
                                                                                                                                                                                      1388 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1389 * Null if and only if #m_conn_async_worker is null.
                                                                                                                                                                                      +
                                                                                                                                                                                      1390 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1391 * See "Connect-ops impl design" in class doc header for key background discussion of sync_connect() et al.
                                                                                                                                                                                      +
                                                                                                                                                                                      1392 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1393 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      1394 * It is also possible to instead just use #m_ev_wait_hndl_peer_socket for the connect-ops `sync_io`-pattern
                                                                                                                                                                                      +
                                                                                                                                                                                      1395 * setup, along with using it for send-ops and receive-ops. However, while storing marginally less state,
                                                                                                                                                                                      +
                                                                                                                                                                                      1396 * it is pretty annoying in other ways: replace_event_wait_handles() to set up future send-ops and receive-ops
                                                                                                                                                                                      +
                                                                                                                                                                                      1397 * can happen at any time, including before sync_connect(); so sync_connect() would need to save
                                                                                                                                                                                      +
                                                                                                                                                                                      1398 * #m_ev_wait_hndl_peer_socket, then re-associate it with #m_conn_async_worker, then restore it. Whereas by
                                                                                                                                                                                      +
                                                                                                                                                                                      1399 * decoupling as we do here, we separate the NULL-state and PEER-state algorithms cleanly and need to worry
                                                                                                                                                                                      +
                                                                                                                                                                                      1400 * about that stuff.
                                                                                                                                                                                      +
                                                                                                                                                                                      1401 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1402 * (Maintenance note: If/when -- as speculated in class doc header section "Connect-ops impl design" -- we make
                                                                                                                                                                                      +
                                                                                                                                                                                      1403 * start_connect_ops() and async_connect() public at some point, then probably it'll be best to indeed
                                                                                                                                                                                      +
                                                                                                                                                                                      1404 * eliminate `m_conn_ev_wait_hndl_peer_socket` and use `m_ev_wait_hndl_peer_socket` for all the ops, including
                                                                                                                                                                                      +
                                                                                                                                                                                      1405 * having replace_event_wait_handles() handle connect-ops stuff in addition to send-ops and receive-ops. Now
                                                                                                                                                                                      +
                                                                                                                                                                                      1406 * the user will be in charge of providing async-waiting machinery for connect-ops per normal `sync_op` pattern,
                                                                                                                                                                                      +
                                                                                                                                                                                      1407 * as opposed to the existing situation where we manage that internally to `*this`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1408 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1409 std::optional<util::sync_io::Asio_waitable_native_handle> m_conn_ev_wait_hndl_peer_socket;
                                                                                                                                                                                      +
                                                                                                                                                                                      1410
                                                                                                                                                                                      +
                                                                                                                                                                                      1411 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1412 * Function (set forever in start_connect_ops()) through which we invoke the outside event loop's
                                                                                                                                                                                      +
                                                                                                                                                                                      1413 * async-wait facility for descriptors/events relevant to connect-ops. See util::sync_io::Event_wait_func
                                                                                                                                                                                      +
                                                                                                                                                                                      1414 * doc header for a refresher on this mechanic.
                                                                                                                                                                                      +
                                                                                                                                                                                      1415 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1417
                                                                                                                                                                                      +
                                                                                                                                                                                      1418 // Outgoing-direction data.
                                                                                                                                                                                      1419
                                                                                                                                                                                      1420 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1421 * Timer that fires snd_on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always
                                                                                                                                                                                      -
                                                                                                                                                                                      1422 * scheduled to fire #m_snd_auto_ping_period after the last send (send_native_handle(), auto_ping(),
                                                                                                                                                                                      -
                                                                                                                                                                                      1423 * snd_on_ev_auto_ping_now_timer_fired() itself). Each of these calls indicates a send occurs, hence
                                                                                                                                                                                      -
                                                                                                                                                                                      1424 * at worst the pipe will be idle (in need of auto-ping) in #m_snd_auto_ping_period. Note that
                                                                                                                                                                                      -
                                                                                                                                                                                      1425 * `*end_sending()`, while also sending bytes, does not schedule #m_snd_auto_ping_timer, as `*end_sending()`
                                                                                                                                                                                      -
                                                                                                                                                                                      1426 * closes the conceptual pipe, and there is no need for auto-pinging (see Native_handle_receiver::idle_timer_run()).
                                                                                                                                                                                      -
                                                                                                                                                                                      1427 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1428 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      -
                                                                                                                                                                                      1429 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1430 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1431 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1432 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1433 flow::util::Timer m_snd_auto_ping_timer;
                                                                                                                                                                                      -
                                                                                                                                                                                      1434
                                                                                                                                                                                      -
                                                                                                                                                                                      1435 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1436 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_snd_auto_ping_timer
                                                                                                                                                                                      -
                                                                                                                                                                                      1437 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      -
                                                                                                                                                                                      1438 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1439 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1440 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1442
                                                                                                                                                                                      -
                                                                                                                                                                                      1443 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1444 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      1445 * used to wait on events from) #m_snd_auto_ping_timer_fired_peer.
                                                                                                                                                                                      -
                                                                                                                                                                                      1446 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1447 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1448 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1450
                                                                                                                                                                                      -
                                                                                                                                                                                      1451 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1452 * Function (set forever in `start_send_*_ops()`) through which we invoke the
                                                                                                                                                                                      -
                                                                                                                                                                                      1453 * outside event loop's async-wait facility for descriptors/events relevant to send-ops.
                                                                                                                                                                                      -
                                                                                                                                                                                      1454 * See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.
                                                                                                                                                                                      -
                                                                                                                                                                                      1455 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1457
                                                                                                                                                                                      -
                                                                                                                                                                                      1458 // Incoming-direction data.
                                                                                                                                                                                      -
                                                                                                                                                                                      1459
                                                                                                                                                                                      -
                                                                                                                                                                                      1460 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1461 * Null if no `async_receive_*()` is currently pending; else describes the arguments to that pending
                                                                                                                                                                                      -
                                                                                                                                                                                      1462 * `async_receive_*()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1463 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1464 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1465 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1466 * ### Rationale ###
                                                                                                                                                                                      -
                                                                                                                                                                                      1467 * It exists for a hopefully obvious reasons: At least a non-immediately-completed `async_receive_*()` needs
                                                                                                                                                                                      -
                                                                                                                                                                                      1468 * to keep track of the request so as to know where to place results and what completion handler to invoke.
                                                                                                                                                                                      -
                                                                                                                                                                                      1469 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1470 * As for it being nullable: this is used to guard against `async_receive_*()` being invoked while another
                                                                                                                                                                                      -
                                                                                                                                                                                      1471 * is already outstanding. We do not queue pending requests per
                                                                                                                                                                                      -
                                                                                                                                                                                      1472 * sync_io::Blob_receiver / sync_io::Native_handle_receiver concept. (However the non-`sync_io` a/k/a async-I/O
                                                                                                                                                                                      -
                                                                                                                                                                                      1473 * Blob_receiver + Native_handle_receiver transport::Native_socket_stream does. Therefore
                                                                                                                                                                                      -
                                                                                                                                                                                      1474 * the latter class does internally implement a `User_request` queue. Rather sync_io::Async_adapter_receiver
                                                                                                                                                                                      -
                                                                                                                                                                                      1475 * does.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1421 * Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed by
                                                                                                                                                                                      +
                                                                                                                                                                                      1422 * the payloads that should be written after that completes, in order.
                                                                                                                                                                                      +
                                                                                                                                                                                      1423 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1424 * Relevant only once terminal State::S_PEER is reached. In that state only touched if would-block is
                                                                                                                                                                                      +
                                                                                                                                                                                      1425 * encountered in... well, see Snd_low_lvl_payload doc header.
                                                                                                                                                                                      +
                                                                                                                                                                                      1426 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1427 std::queue<Snd_low_lvl_payload::Ptr> m_snd_pending_payloads_q;
                                                                                                                                                                                      +
                                                                                                                                                                                      1428
                                                                                                                                                                                      +
                                                                                                                                                                                      1429 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1430 * The first and only connection-hosing error condition detected when attempting to low-level-write on
                                                                                                                                                                                      +
                                                                                                                                                                                      1431 * #m_peer_socket; or falsy if no such error has yet been detected. Among possible other uses, it is returned
                                                                                                                                                                                      +
                                                                                                                                                                                      1432 * by send_native_handle() and the completion handler of async_end_sending().
                                                                                                                                                                                      +
                                                                                                                                                                                      1433 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1434 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1435 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1437
                                                                                                                                                                                      +
                                                                                                                                                                                      1438 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1439 * `false` at start; set to `true` forever on the first `*end_sending()` invocation;
                                                                                                                                                                                      +
                                                                                                                                                                                      1440 * `true` will prevent any subsequent send_native_handle()/send_blob() calls from proceeding.
                                                                                                                                                                                      +
                                                                                                                                                                                      1441 * See class doc header impl section for design discussion.
                                                                                                                                                                                      +
                                                                                                                                                                                      1442 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1443 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1444 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1446
                                                                                                                                                                                      +
                                                                                                                                                                                      1447 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1448 * Function passed to async_end_sending(), if it returned `true` and was unable to synchronously flush everything
                                                                                                                                                                                      +
                                                                                                                                                                                      1449 * including the graceful-close itself (synchronously detecting new or previous pipe-hosing error *does* entail
                                                                                                                                                                                      +
                                                                                                                                                                                      1450 * flushing everything); otherwise `.empty()`. It's the completion handler of that graceful-close-send API.
                                                                                                                                                                                      +
                                                                                                                                                                                      1451 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1452 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1453 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1455
                                                                                                                                                                                      +
                                                                                                                                                                                      1456 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1457 * Equals `zero()` before auto_ping(); immutably equals `period` (auto_ping() arg) subsequently to that first
                                                                                                                                                                                      +
                                                                                                                                                                                      1458 * successful call (if any).
                                                                                                                                                                                      +
                                                                                                                                                                                      1459 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1460 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1461 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1463
                                                                                                                                                                                      +
                                                                                                                                                                                      1464 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1465 * Timer that fires snd_on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always
                                                                                                                                                                                      +
                                                                                                                                                                                      1466 * scheduled to fire #m_snd_auto_ping_period after the last send (send_native_handle(), auto_ping(),
                                                                                                                                                                                      +
                                                                                                                                                                                      1467 * snd_on_ev_auto_ping_now_timer_fired() itself). Each of these calls indicates a send occurs, hence
                                                                                                                                                                                      +
                                                                                                                                                                                      1468 * at worst the pipe will be idle (in need of auto-ping) in #m_snd_auto_ping_period. Note that
                                                                                                                                                                                      +
                                                                                                                                                                                      1469 * `*end_sending()`, while also sending bytes, does not schedule #m_snd_auto_ping_timer, as `*end_sending()`
                                                                                                                                                                                      +
                                                                                                                                                                                      1470 * closes the conceptual pipe, and there is no need for auto-pinging (see Native_handle_receiver::idle_timer_run()).
                                                                                                                                                                                      +
                                                                                                                                                                                      1471 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1472 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      +
                                                                                                                                                                                      1473 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1474 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1475 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      1476 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1477 std::optional<Rcv_user_request> m_rcv_user_request;
                                                                                                                                                                                      +
                                                                                                                                                                                      1477 flow::util::Timer m_snd_auto_ping_timer;
                                                                                                                                                                                      1478
                                                                                                                                                                                      1479 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1480 * Direct-write target, storing the length in bytes of the next meta-blob; 0 meaning the
                                                                                                                                                                                      -
                                                                                                                                                                                      1481 * current user message contains no meta-blob but only a native handle (or represents graceful-close if that
                                                                                                                                                                                      -
                                                                                                                                                                                      1482 * is also not present); and 0xFF... (#S_META_BLOB_LENGTH_PING_SENTINEL) meaning it's a mere ping.
                                                                                                                                                                                      -
                                                                                                                                                                                      1483 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1484 * This plus a `Native_handle` is payload 1 received for each message; if, after successful read,
                                                                                                                                                                                      -
                                                                                                                                                                                      1485 * this is neither 0 nor #S_META_BLOB_LENGTH_PING_SENTINEL, then payload 2 -- the non-zero-sized
                                                                                                                                                                                      -
                                                                                                                                                                                      1486 * meta-blob -- is also read directly into the location specified by `m_rcv_user_request->m_target_meta_blob`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1487 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1488 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1489 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1491
                                                                                                                                                                                      -
                                                                                                                                                                                      1492 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1493 * The first and only connection-hosing error condition detected when attempting to low-level-read on
                                                                                                                                                                                      -
                                                                                                                                                                                      1494 * #m_peer_socket; or falsy if no such error has yet been detected. Among possible other uses, it is emitted
                                                                                                                                                                                      -
                                                                                                                                                                                      1495 * to the ongoing-at-the-time `async_receive_*()`'s completion handler (if one is indeed outstanding)
                                                                                                                                                                                      -
                                                                                                                                                                                      1496 * and immediately to any subsequent `async_receive_*()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1497 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1498 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1480 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_snd_auto_ping_timer
                                                                                                                                                                                      +
                                                                                                                                                                                      1481 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      +
                                                                                                                                                                                      1482 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1483 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1484 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1486
                                                                                                                                                                                      +
                                                                                                                                                                                      1487 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1488 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      1489 * used to wait on events from) #m_snd_auto_ping_timer_fired_peer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1490 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1491 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1492 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1494
                                                                                                                                                                                      +
                                                                                                                                                                                      1495 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1496 * Function (set forever in `start_send_*_ops()`) through which we invoke the
                                                                                                                                                                                      +
                                                                                                                                                                                      1497 * outside event loop's async-wait facility for descriptors/events relevant to send-ops.
                                                                                                                                                                                      +
                                                                                                                                                                                      1498 * See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.
                                                                                                                                                                                      1499 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1501
                                                                                                                                                                                      -
                                                                                                                                                                                      1502 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1503 * `timeout` from idle_timer_run() args; or `zero()` if not yet called. #m_rcv_idle_timer stays inactive
                                                                                                                                                                                      -
                                                                                                                                                                                      1504 * until this becomes not-`zero()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1505 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1506 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1507 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1509
                                                                                                                                                                                      -
                                                                                                                                                                                      1510 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1511 * Timer that fires rcv_on_ev_idle_timer_fired() (which hoses the in-pipe with idle timeour error) and is
                                                                                                                                                                                      -
                                                                                                                                                                                      1512 * (re)scheduled to fire in #m_rcv_idle_timeout each time `*this` receives a complete message
                                                                                                                                                                                      -
                                                                                                                                                                                      1513 * on #m_peer_socket. If it does fire, without being preempted by some error to have occurred since then,
                                                                                                                                                                                      -
                                                                                                                                                                                      1514 * the in-pipe is hosed with a particular error indicating idle-timeout (so that `Error_code` is saved
                                                                                                                                                                                      -
                                                                                                                                                                                      1515 * to #m_rcv_pending_err_code), while the out-pipe continues (#m_peer_socket lives).
                                                                                                                                                                                      -
                                                                                                                                                                                      1516 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1517 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      -
                                                                                                                                                                                      1518 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1519 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1520 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      -
                                                                                                                                                                                      1521 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1522 flow::util::Timer m_rcv_idle_timer;
                                                                                                                                                                                      -
                                                                                                                                                                                      1523
                                                                                                                                                                                      -
                                                                                                                                                                                      1524 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1525 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_rcv_idle_timer
                                                                                                                                                                                      -
                                                                                                                                                                                      1526 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      + +
                                                                                                                                                                                      1501
                                                                                                                                                                                      +
                                                                                                                                                                                      1502 // Incoming-direction data.
                                                                                                                                                                                      +
                                                                                                                                                                                      1503
                                                                                                                                                                                      +
                                                                                                                                                                                      1504 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1505 * Null if no `async_receive_*()` is currently pending; else describes the arguments to that pending
                                                                                                                                                                                      +
                                                                                                                                                                                      1506 * `async_receive_*()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1507 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1508 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1509 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1510 * ### Rationale ###
                                                                                                                                                                                      +
                                                                                                                                                                                      1511 * It exists for a hopefully obvious reasons: At least a non-immediately-completed `async_receive_*()` needs
                                                                                                                                                                                      +
                                                                                                                                                                                      1512 * to keep track of the request so as to know where to place results and what completion handler to invoke.
                                                                                                                                                                                      +
                                                                                                                                                                                      1513 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1514 * As for it being nullable: this is used to guard against `async_receive_*()` being invoked while another
                                                                                                                                                                                      +
                                                                                                                                                                                      1515 * is already outstanding. We do not queue pending requests per
                                                                                                                                                                                      +
                                                                                                                                                                                      1516 * sync_io::Blob_receiver / sync_io::Native_handle_receiver concept. (However the non-`sync_io` a/k/a async-I/O
                                                                                                                                                                                      +
                                                                                                                                                                                      1517 * Blob_receiver + Native_handle_receiver transport::Native_socket_stream does. Therefore
                                                                                                                                                                                      +
                                                                                                                                                                                      1518 * the latter class does internally implement a `User_request` queue. Rather sync_io::Async_adapter_receiver
                                                                                                                                                                                      +
                                                                                                                                                                                      1519 * does.)
                                                                                                                                                                                      +
                                                                                                                                                                                      1520 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1521 std::optional<Rcv_user_request> m_rcv_user_request;
                                                                                                                                                                                      +
                                                                                                                                                                                      1522
                                                                                                                                                                                      +
                                                                                                                                                                                      1523 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1524 * Direct-write target, storing the length in bytes of the next meta-blob; 0 meaning the
                                                                                                                                                                                      +
                                                                                                                                                                                      1525 * current user message contains no meta-blob but only a native handle (or represents graceful-close if that
                                                                                                                                                                                      +
                                                                                                                                                                                      1526 * is also not present); and 0xFF... (#S_META_BLOB_LENGTH_PING_SENTINEL) meaning it's a mere ping.
                                                                                                                                                                                      1527 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1528 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1529 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1531
                                                                                                                                                                                      -
                                                                                                                                                                                      1532 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1533 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      -
                                                                                                                                                                                      1534 * used to wait on events from) #m_rcv_idle_timer_fired_peer.
                                                                                                                                                                                      -
                                                                                                                                                                                      1535 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1536 * @see #m_timer_worker for more info.
                                                                                                                                                                                      -
                                                                                                                                                                                      1537 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1539
                                                                                                                                                                                      -
                                                                                                                                                                                      1540 /**
                                                                                                                                                                                      -
                                                                                                                                                                                      1541 * Function (set forever in `start_receive_*_ops()`) through which we invoke the
                                                                                                                                                                                      -
                                                                                                                                                                                      1542 * outside event loop's async-wait facility for descriptors/events relevant to receive-ops.
                                                                                                                                                                                      -
                                                                                                                                                                                      1543 * See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.
                                                                                                                                                                                      -
                                                                                                                                                                                      1544 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      1546}; // class Native_socket_stream::Impl
                                                                                                                                                                                      -
                                                                                                                                                                                      1547
                                                                                                                                                                                      -
                                                                                                                                                                                      1548// Template implementations.
                                                                                                                                                                                      -
                                                                                                                                                                                      1549
                                                                                                                                                                                      -
                                                                                                                                                                                      1550template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1552{
                                                                                                                                                                                      -
                                                                                                                                                                                      1553 if constexpr(OP == Op::S_SND)
                                                                                                                                                                                      -
                                                                                                                                                                                      1554 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1555 return &m_snd_ev_wait_func;
                                                                                                                                                                                      -
                                                                                                                                                                                      1556 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1557 else if constexpr(OP == Op::S_RCV)
                                                                                                                                                                                      -
                                                                                                                                                                                      1558 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1559 return &m_rcv_ev_wait_func;
                                                                                                                                                                                      -
                                                                                                                                                                                      1560 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1561 else
                                                                                                                                                                                      -
                                                                                                                                                                                      1562 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1563 static_assert(OP == Op::S_CONN, "What the....");
                                                                                                                                                                                      -
                                                                                                                                                                                      1564 return &m_conn_ev_wait_func;
                                                                                                                                                                                      -
                                                                                                                                                                                      1565 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1566} // Native_socket_stream::Impl::sync_io_ev_wait_func()
                                                                                                                                                                                      -
                                                                                                                                                                                      1567
                                                                                                                                                                                      -
                                                                                                                                                                                      1568template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1570{
                                                                                                                                                                                      -
                                                                                                                                                                                      1571 return const_cast<Impl*>(this)->sync_io_ev_wait_func<OP>();
                                                                                                                                                                                      -
                                                                                                                                                                                      1572}
                                                                                                                                                                                      -
                                                                                                                                                                                      1573
                                                                                                                                                                                      -
                                                                                                                                                                                      1574template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1576{
                                                                                                                                                                                      -
                                                                                                                                                                                      1577 if (sync_io_ev_wait_func<OP>()->empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1578 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1579 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: "
                                                                                                                                                                                      -
                                                                                                                                                                                      1580 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      -
                                                                                                                                                                                      1581 "but we are not. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1582 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1583 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1584 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1585 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1586}
                                                                                                                                                                                      -
                                                                                                                                                                                      1587
                                                                                                                                                                                      -
                                                                                                                                                                                      1588template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      - -
                                                                                                                                                                                      1590{
                                                                                                                                                                                      -
                                                                                                                                                                                      1591 const auto ev_wait_func_ptr = sync_io_ev_wait_func<OP>();
                                                                                                                                                                                      -
                                                                                                                                                                                      1592
                                                                                                                                                                                      -
                                                                                                                                                                                      1593 if (!ev_wait_func_ptr->empty())
                                                                                                                                                                                      -
                                                                                                                                                                                      1594 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1595 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: Start-ops requested, "
                                                                                                                                                                                      -
                                                                                                                                                                                      1596 "but we are already started. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1597 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1598 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1599 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1600
                                                                                                                                                                                      -
                                                                                                                                                                                      1601 if constexpr(OP == Op::S_CONN)
                                                                                                                                                                                      +
                                                                                                                                                                                      1528 * This plus a `Native_handle` is payload 1 received for each message; if, after successful read,
                                                                                                                                                                                      +
                                                                                                                                                                                      1529 * this is neither 0 nor #S_META_BLOB_LENGTH_PING_SENTINEL, then payload 2 -- the non-zero-sized
                                                                                                                                                                                      +
                                                                                                                                                                                      1530 * meta-blob -- is also read directly into the location specified by `m_rcv_user_request->m_target_meta_blob`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1531 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1532 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1533 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1535
                                                                                                                                                                                      +
                                                                                                                                                                                      1536 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1537 * The first and only connection-hosing error condition detected when attempting to low-level-read on
                                                                                                                                                                                      +
                                                                                                                                                                                      1538 * #m_peer_socket; or falsy if no such error has yet been detected. Among possible other uses, it is emitted
                                                                                                                                                                                      +
                                                                                                                                                                                      1539 * to the ongoing-at-the-time `async_receive_*()`'s completion handler (if one is indeed outstanding)
                                                                                                                                                                                      +
                                                                                                                                                                                      1540 * and immediately to any subsequent `async_receive_*()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1541 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1542 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1543 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1545
                                                                                                                                                                                      +
                                                                                                                                                                                      1546 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1547 * `timeout` from idle_timer_run() args; or `zero()` if not yet called. #m_rcv_idle_timer stays inactive
                                                                                                                                                                                      +
                                                                                                                                                                                      1548 * until this becomes not-`zero()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1549 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1550 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1551 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1553
                                                                                                                                                                                      +
                                                                                                                                                                                      1554 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1555 * Timer that fires rcv_on_ev_idle_timer_fired() (which hoses the in-pipe with idle timeour error) and is
                                                                                                                                                                                      +
                                                                                                                                                                                      1556 * (re)scheduled to fire in #m_rcv_idle_timeout each time `*this` receives a complete message
                                                                                                                                                                                      +
                                                                                                                                                                                      1557 * on #m_peer_socket. If it does fire, without being preempted by some error to have occurred since then,
                                                                                                                                                                                      +
                                                                                                                                                                                      1558 * the in-pipe is hosed with a particular error indicating idle-timeout (so that `Error_code` is saved
                                                                                                                                                                                      +
                                                                                                                                                                                      1559 * to #m_rcv_pending_err_code), while the out-pipe continues (#m_peer_socket lives).
                                                                                                                                                                                      +
                                                                                                                                                                                      1560 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1561 * Since we implement `sync_io` pattern, the timer is obtained from, and used via, util::sync_io::Timer_event_emitter
                                                                                                                                                                                      +
                                                                                                                                                                                      1562 * #m_timer_worker. See that member's doc header for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1563 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1564 * Relevant only once terminal State::S_PEER is reached.
                                                                                                                                                                                      +
                                                                                                                                                                                      1565 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1566 flow::util::Timer m_rcv_idle_timer;
                                                                                                                                                                                      +
                                                                                                                                                                                      1567
                                                                                                                                                                                      +
                                                                                                                                                                                      1568 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1569 * Read-end of IPC-mechanism used by #m_timer_worker to ferry timer-fired events from #m_rcv_idle_timer
                                                                                                                                                                                      +
                                                                                                                                                                                      1570 * to `sync_io` outside async-wait to our actual on-timer-fired handler logic.
                                                                                                                                                                                      +
                                                                                                                                                                                      1571 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1572 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1573 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1575
                                                                                                                                                                                      +
                                                                                                                                                                                      1576 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1577 * Descriptor waitable by outside event loop async-waits -- storing the same `Native_handle` as (and thus being
                                                                                                                                                                                      +
                                                                                                                                                                                      1578 * used to wait on events from) #m_rcv_idle_timer_fired_peer.
                                                                                                                                                                                      +
                                                                                                                                                                                      1579 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1580 * @see #m_timer_worker for more info.
                                                                                                                                                                                      +
                                                                                                                                                                                      1581 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1583
                                                                                                                                                                                      +
                                                                                                                                                                                      1584 /**
                                                                                                                                                                                      +
                                                                                                                                                                                      1585 * Function (set forever in `start_receive_*_ops()`) through which we invoke the
                                                                                                                                                                                      +
                                                                                                                                                                                      1586 * outside event loop's async-wait facility for descriptors/events relevant to receive-ops.
                                                                                                                                                                                      +
                                                                                                                                                                                      1587 * See util::sync_io::Event_wait_func doc header for a refresher on this mechanic.
                                                                                                                                                                                      +
                                                                                                                                                                                      1588 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      1590}; // class Native_socket_stream::Impl
                                                                                                                                                                                      +
                                                                                                                                                                                      1591
                                                                                                                                                                                      +
                                                                                                                                                                                      1592// Template implementations.
                                                                                                                                                                                      +
                                                                                                                                                                                      1593
                                                                                                                                                                                      +
                                                                                                                                                                                      1594template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1596{
                                                                                                                                                                                      +
                                                                                                                                                                                      1597 if constexpr(OP == Op::S_SND)
                                                                                                                                                                                      +
                                                                                                                                                                                      1598 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1599 return &m_snd_ev_wait_func;
                                                                                                                                                                                      +
                                                                                                                                                                                      1600 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1601 else if constexpr(OP == Op::S_RCV)
                                                                                                                                                                                      1602 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1603 if (m_state == State::S_PEER)
                                                                                                                                                                                      -
                                                                                                                                                                                      1604 {
                                                                                                                                                                                      -
                                                                                                                                                                                      1605 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Start-connect-ops requested, but we are already (and "
                                                                                                                                                                                      -
                                                                                                                                                                                      1606 "irreversibly) in PEER state. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1607 return false;
                                                                                                                                                                                      -
                                                                                                                                                                                      1608 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1609
                                                                                                                                                                                      -
                                                                                                                                                                                      1610 // else
                                                                                                                                                                                      -
                                                                                                                                                                                      1611 assert((m_state == State::S_NULL)
                                                                                                                                                                                      -
                                                                                                                                                                                      1612 && "Should not be able to get to CONNECTING state without start_connect_ops() in the first place.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1613 }
                                                                                                                                                                                      -
                                                                                                                                                                                      1614
                                                                                                                                                                                      -
                                                                                                                                                                                      1615 *ev_wait_func_ptr = std::move(ev_wait_func);
                                                                                                                                                                                      -
                                                                                                                                                                                      1616
                                                                                                                                                                                      -
                                                                                                                                                                                      1617 FLOW_LOG_INFO("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: Start-ops requested. Done.");
                                                                                                                                                                                      -
                                                                                                                                                                                      1618 return true;
                                                                                                                                                                                      -
                                                                                                                                                                                      1619} // Native_socket_stream::Impl::start_ops()
                                                                                                                                                                                      -
                                                                                                                                                                                      1620
                                                                                                                                                                                      -
                                                                                                                                                                                      1621// Free functions.
                                                                                                                                                                                      -
                                                                                                                                                                                      1622
                                                                                                                                                                                      -
                                                                                                                                                                                      1623/**
                                                                                                                                                                                      -
                                                                                                                                                                                      1624 * Prints string representation of the given Native_socket_stream::Impl to the given `ostream`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1625 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1626 * @relatesalso Native_socket_stream::Impl
                                                                                                                                                                                      -
                                                                                                                                                                                      1627 *
                                                                                                                                                                                      -
                                                                                                                                                                                      1628 * @param os
                                                                                                                                                                                      -
                                                                                                                                                                                      1629 * Stream to which to write.
                                                                                                                                                                                      -
                                                                                                                                                                                      1630 * @param val
                                                                                                                                                                                      -
                                                                                                                                                                                      1631 * Object to serialize.
                                                                                                                                                                                      -
                                                                                                                                                                                      1632 * @return `os`.
                                                                                                                                                                                      -
                                                                                                                                                                                      1633 */
                                                                                                                                                                                      -
                                                                                                                                                                                      1634std::ostream& operator<<(std::ostream& os, const Native_socket_stream::Impl& val);
                                                                                                                                                                                      -
                                                                                                                                                                                      1635
                                                                                                                                                                                      -
                                                                                                                                                                                      1636} // namespace ipc::transport::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      1603 return &m_rcv_ev_wait_func;
                                                                                                                                                                                      +
                                                                                                                                                                                      1604 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1605 else
                                                                                                                                                                                      +
                                                                                                                                                                                      1606 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1607 static_assert(OP == Op::S_CONN, "What the....");
                                                                                                                                                                                      +
                                                                                                                                                                                      1608 return &m_conn_ev_wait_func;
                                                                                                                                                                                      +
                                                                                                                                                                                      1609 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1610} // Native_socket_stream::Impl::sync_io_ev_wait_func()
                                                                                                                                                                                      +
                                                                                                                                                                                      1611
                                                                                                                                                                                      +
                                                                                                                                                                                      1612template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1614{
                                                                                                                                                                                      +
                                                                                                                                                                                      1615 return const_cast<Impl*>(this)->sync_io_ev_wait_func<OP>();
                                                                                                                                                                                      +
                                                                                                                                                                                      1616}
                                                                                                                                                                                      +
                                                                                                                                                                                      1617
                                                                                                                                                                                      +
                                                                                                                                                                                      1618template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1620{
                                                                                                                                                                                      +
                                                                                                                                                                                      1621 if (sync_io_ev_wait_func<OP>()->empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1622 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1623 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: "
                                                                                                                                                                                      +
                                                                                                                                                                                      1624 "In context [" << context << "] we must be start_...()ed, "
                                                                                                                                                                                      +
                                                                                                                                                                                      1625 "but we are not. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1626 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1627 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1628 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1629 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1630}
                                                                                                                                                                                      +
                                                                                                                                                                                      1631
                                                                                                                                                                                      +
                                                                                                                                                                                      1632template<Native_socket_stream::Impl::Op OP>
                                                                                                                                                                                      + +
                                                                                                                                                                                      1634{
                                                                                                                                                                                      +
                                                                                                                                                                                      1635 const auto ev_wait_func_ptr = sync_io_ev_wait_func<OP>();
                                                                                                                                                                                      +
                                                                                                                                                                                      1636
                                                                                                                                                                                      +
                                                                                                                                                                                      1637 if (!ev_wait_func_ptr->empty())
                                                                                                                                                                                      +
                                                                                                                                                                                      1638 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1639 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: Start-ops requested, "
                                                                                                                                                                                      +
                                                                                                                                                                                      1640 "but we are already started. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1641 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1642 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1643 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1644
                                                                                                                                                                                      +
                                                                                                                                                                                      1645 if constexpr(OP == Op::S_CONN)
                                                                                                                                                                                      +
                                                                                                                                                                                      1646 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1647 if (m_state == State::S_PEER)
                                                                                                                                                                                      +
                                                                                                                                                                                      1648 {
                                                                                                                                                                                      +
                                                                                                                                                                                      1649 FLOW_LOG_WARNING("Socket stream [" << *this << "]: Start-connect-ops requested, but we are already (and "
                                                                                                                                                                                      +
                                                                                                                                                                                      1650 "irreversibly) in PEER state. Probably a caller bug, but it is not for us to judge.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1651 return false;
                                                                                                                                                                                      +
                                                                                                                                                                                      1652 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1653
                                                                                                                                                                                      +
                                                                                                                                                                                      1654 // else
                                                                                                                                                                                      +
                                                                                                                                                                                      1655 assert((m_state == State::S_NULL)
                                                                                                                                                                                      +
                                                                                                                                                                                      1656 && "Should not be able to get to CONNECTING state without start_connect_ops() in the first place.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1657 }
                                                                                                                                                                                      +
                                                                                                                                                                                      1658
                                                                                                                                                                                      +
                                                                                                                                                                                      1659 *ev_wait_func_ptr = std::move(ev_wait_func);
                                                                                                                                                                                      +
                                                                                                                                                                                      1660
                                                                                                                                                                                      +
                                                                                                                                                                                      1661 FLOW_LOG_INFO("Socket stream [" << *this << "]: Op-type [" << int(OP) << "]: Start-ops requested. Done.");
                                                                                                                                                                                      +
                                                                                                                                                                                      1662 return true;
                                                                                                                                                                                      +
                                                                                                                                                                                      1663} // Native_socket_stream::Impl::start_ops()
                                                                                                                                                                                      +
                                                                                                                                                                                      1664
                                                                                                                                                                                      +
                                                                                                                                                                                      1665// Free functions.
                                                                                                                                                                                      +
                                                                                                                                                                                      1666
                                                                                                                                                                                      +
                                                                                                                                                                                      1667/**
                                                                                                                                                                                      +
                                                                                                                                                                                      1668 * Prints string representation of the given Native_socket_stream::Impl to the given `ostream`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1669 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1670 * @relatesalso Native_socket_stream::Impl
                                                                                                                                                                                      +
                                                                                                                                                                                      1671 *
                                                                                                                                                                                      +
                                                                                                                                                                                      1672 * @param os
                                                                                                                                                                                      +
                                                                                                                                                                                      1673 * Stream to which to write.
                                                                                                                                                                                      +
                                                                                                                                                                                      1674 * @param val
                                                                                                                                                                                      +
                                                                                                                                                                                      1675 * Object to serialize.
                                                                                                                                                                                      +
                                                                                                                                                                                      1676 * @return `os`.
                                                                                                                                                                                      +
                                                                                                                                                                                      1677 */
                                                                                                                                                                                      +
                                                                                                                                                                                      1678std::ostream& operator<<(std::ostream& os, const Native_socket_stream::Impl& val);
                                                                                                                                                                                      +
                                                                                                                                                                                      1679
                                                                                                                                                                                      +
                                                                                                                                                                                      1680} // namespace ipc::transport::sync_io
                                                                                                                                                                                      A simple state machine that, assuming the opposide side of a comm pathway uses an equivalent state ma...
                                                                                                                                                                                      Internal, non-movable pImpl implementation of sync_io::Native_socket_stream class.
                                                                                                                                                                                      -
                                                                                                                                                                                      Error_code m_snd_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      +
                                                                                                                                                                                      Error_code m_snd_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-write on m...
                                                                                                                                                                                      flow::util::Task_engine m_ev_hndl_task_engine_unused
                                                                                                                                                                                      The Task_engine for m_*ev_wait_hndl_*, unless it is replaced via replace_event_wait_handles().
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_peer_socket
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_ev_wait_hndl_peer_socket
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      bool async_end_sending(Error_code *sync_err_code, flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void rcv_read_blob(Rcv_msg_state msg_state, const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      A somewhat-general utility that continues read chain with the aim to complete the present in-message,...
                                                                                                                                                                                      const std::string & nickname() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      @@ -1721,75 +1765,76 @@
                                                                                                                                                                                      bool start_receive_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool state_peer(util::String_view context) const
                                                                                                                                                                                      Checks whether m_state has reached State::S_PEER; if so returns true; if not logs WARNING and returns...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::queue< Snd_low_lvl_payload::Ptr > m_snd_pending_payloads_q
                                                                                                                                                                                      Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed b...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::queue< Snd_low_lvl_payload::Ptr > m_snd_pending_payloads_q
                                                                                                                                                                                      Queue storing (at head) the currently in-progress async write-op of a Snd_low_lvl_payload; followed b...
                                                                                                                                                                                      flow::util::Task_engine m_nb_task_engine
                                                                                                                                                                                      The Task_engine for m_peer_socket.
                                                                                                                                                                                      size_t rcv_nb_read_low_lvl_payload(Native_handle *target_payload_hndl_or_null, const util::Blob_mutable &target_payload_blob, Error_code *err_code)
                                                                                                                                                                                      Utility that synchronously, non-blockingly attempts to read over m_peer_socket into the target blob a...
                                                                                                                                                                                      -
                                                                                                                                                                                      void snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by snd_...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_snd_auto_ping_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_snd_auto_ping_tim...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Timer m_snd_auto_ping_timer
                                                                                                                                                                                      Timer that fires snd_on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always sched...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_rcv_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socket > m_peer_socket_hosed
                                                                                                                                                                                      Null to start, this takes on the value from m_peer_socket when and only when m_peer_socket is nullifi...
                                                                                                                                                                                      +
                                                                                                                                                                                      void snd_on_ev_peer_socket_writable_or_error()
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by snd_...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_snd_auto_ping_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_snd_auto_ping_tim...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Timer m_snd_auto_ping_timer
                                                                                                                                                                                      Timer that fires snd_on_ev_auto_ping_now_timer_fired() (which sends an auto-ping) and is always sched...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_rcv_ev_wait_hndl_idle_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      Protocol_negotiator m_protocol_negotiator
                                                                                                                                                                                      Handles the protocol negotiation at the start of the pipe.
                                                                                                                                                                                      void rcv_on_head_payload(Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Reacts to payload 1 having been completely received.
                                                                                                                                                                                      bool snd_sync_write_or_q_payload(Native_handle hndl_or_null, const util::Blob_const &orig_blob, bool avoid_qing)
                                                                                                                                                                                      Either synchronously sends hndl_or_null handle (if any) and orig_blob low-level blob over m_peer_sock...
                                                                                                                                                                                      -
                                                                                                                                                                                      const util::sync_io::Event_wait_func * sync_io_ev_wait_func() const
                                                                                                                                                                                      For boiler-plate-reducing generic code: Returns the m_*_ev_wait_func corresponding to the given Op.
                                                                                                                                                                                      +
                                                                                                                                                                                      const util::sync_io::Event_wait_func * sync_io_ev_wait_func() const
                                                                                                                                                                                      For boiler-plate-reducing generic code: Returns the m_*_ev_wait_func corresponding to the given Op.
                                                                                                                                                                                      bool sync_connect(const Shared_name &absolute_name, Error_code *err_code)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool start_connect_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      It is start_ops<Op::S_CONN>().
                                                                                                                                                                                      -
                                                                                                                                                                                      boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socket > m_peer_socket
                                                                                                                                                                                      The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become ...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_snd_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      +
                                                                                                                                                                                      boost::movelib::unique_ptr< asio_local_stream_socket::Peer_socket > m_peer_socket
                                                                                                                                                                                      The peer stream-type Unix domain socket; or null pointer if we've detected the connection has become ...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Asio_waitable_native_handle m_snd_ev_wait_hndl_auto_ping_timer_fired_peer
                                                                                                                                                                                      Descriptor waitable by outside event loop async-waits – storing the same Native_handle as (and thus b...
                                                                                                                                                                                      bool start_receive_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void snd_on_ev_auto_ping_now_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the auto-ping timer firing; if...
                                                                                                                                                                                      bool async_receive_blob(const util::Blob_mutable &target_blob, Error_code *sync_err_code, size_t *sync_sz, flow::async::Task_asio_err_sz &&on_done_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::Fine_duration m_snd_auto_ping_period
                                                                                                                                                                                      Equals zero() before auto_ping(); immutably equals period (auto_ping() arg) subsequently to that firs...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::Fine_duration m_snd_auto_ping_period
                                                                                                                                                                                      Equals zero() before auto_ping(); immutably equals period (auto_ping() arg) subsequently to that firs...
                                                                                                                                                                                      void rcv_on_ev_idle_timer_fired()
                                                                                                                                                                                      Handler for the async-wait, via util::sync_io::Timer_event_emitter, of the idle timer firing; if stil...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter m_timer_worker
                                                                                                                                                                                      As typical in timer-needing sync_io-pattern-implementing objects, maintains a thread exclusively for ...
                                                                                                                                                                                      bool send_native_handle(Native_handle hndl_or_null, const util::Blob_const &meta_blob, Error_code *err_code)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Event_wait_func m_rcv_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_receive_*_ops()) through which we invoke the outside event loop's asyn...
                                                                                                                                                                                      -
                                                                                                                                                                                      void snd_async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_peer_socket of the low-level payload at the head of out-queue m_snd_pend...
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t send_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Event_wait_func m_rcv_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_receive_*_ops()) through which we invoke the outside event loop's asyn...
                                                                                                                                                                                      +
                                                                                                                                                                                      void snd_async_write_q_head_payload()
                                                                                                                                                                                      Initiates async-write over m_peer_socket of the low-level payload at the head of out-queue m_snd_pend...
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t send_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      bool async_end_sending_impl(Error_code *sync_err_code_ptr_or_null, flow::async::Task_asio_err &&on_done_func_or_empty)
                                                                                                                                                                                      *end_sending() body.
                                                                                                                                                                                      bool start_send_native_handle_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      util::Process_credentials remote_peer_process_credentials(Error_code *err_code) const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      low_lvl_payload_blob_length_t m_rcv_target_meta_length
                                                                                                                                                                                      Direct-write target, storing the length in bytes of the next meta-blob; 0 meaning the current user me...
                                                                                                                                                                                      +
                                                                                                                                                                                      low_lvl_payload_blob_length_t m_rcv_target_meta_length
                                                                                                                                                                                      Direct-write target, storing the length in bytes of the next meta-blob; 0 meaning the current user me...
                                                                                                                                                                                      bool start_send_blob_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool start_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      Boiler-plate-reducing body of start_*_ops() for the given Op.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if the given Op start_*_ops() has been called; else logs WARNING an...
                                                                                                                                                                                      +
                                                                                                                                                                                      bool start_ops(util::sync_io::Event_wait_func &&ev_wait_func)
                                                                                                                                                                                      Boiler-plate-reducing body of start_*_ops() for the given Op.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool op_started(util::String_view context) const
                                                                                                                                                                                      Helper that returns true silently if the given Op start_*_ops() has been called; else logs WARNING an...
                                                                                                                                                                                      static const size_t S_MAX_META_BLOB_LENGTH
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      uint16_t low_lvl_payload_blob_length_t
                                                                                                                                                                                      The type used to encode the meta-blob length; this puts a cap on how long the meta-blobs can be.
                                                                                                                                                                                      bool replace_event_wait_handles(const Function< util::sync_io::Asio_waitable_native_handle()> &create_ev_wait_hndl_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< Rcv_user_request > m_rcv_user_request
                                                                                                                                                                                      Null if no async_receive_*() is currently pending; else describes the arguments to that pending async...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::async::Task_asio_err m_snd_pending_on_last_send_done_func_or_empty
                                                                                                                                                                                      Function passed to async_end_sending(), if it returned true and was unable to synchronously flush eve...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< Rcv_user_request > m_rcv_user_request
                                                                                                                                                                                      Null if no async_receive_*() is currently pending; else describes the arguments to that pending async...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::async::Task_asio_err m_snd_pending_on_last_send_done_func_or_empty
                                                                                                                                                                                      Function passed to async_end_sending(), if it returned true and was unable to synchronously flush eve...
                                                                                                                                                                                      State
                                                                                                                                                                                      Overall state of a Native_socket_stream::Impl.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Event_wait_func m_conn_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_connect_ops()) through which we invoke the outside event loop's async-...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< util::sync_io::Asio_waitable_native_handle > m_conn_ev_wait_hndl_peer_socket
                                                                                                                                                                                      This is to (m_peer_socket, m_conn_async_worker) what m_ev_wait_hndl_peer_socket is to (m_peer_socket,...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Event_wait_func m_conn_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_connect_ops()) through which we invoke the outside event loop's async-...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< util::sync_io::Asio_waitable_native_handle > m_conn_ev_wait_hndl_peer_socket
                                                                                                                                                                                      This is to (m_peer_socket, m_conn_async_worker) what m_ev_wait_hndl_peer_socket is to (m_peer_socket,...
                                                                                                                                                                                      void rcv_on_handle_finalized(Native_handle hndl_or_null, size_t n_rcvd, Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Helper of rcv_read_msg() – it could have been inlined instead of a method but for readability concern...
                                                                                                                                                                                      bool async_receive_native_handle(Native_handle *target_hndl, const util::Blob_mutable &target_meta_blob, Error_code *sync_err_code, size_t *sync_sz, flow::async::Task_asio_err_sz &&on_done_func)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void rcv_read_msg(Error_code *sync_err_code, size_t *sync_sz)
                                                                                                                                                                                      Begins read chain (completing it as synchronously as possible, async-completing the rest) for the nex...
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_rcv_idle_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_rcv_idle_timer to...
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Timer_event_emitter::Timer_fired_read_end * m_rcv_idle_timer_fired_peer
                                                                                                                                                                                      Read-end of IPC-mechanism used by m_timer_worker to ferry timer-fired events from m_rcv_idle_timer to...
                                                                                                                                                                                      bool send_blob(const util::Blob_const &blob, Error_code *err_code)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      void conn_on_ev_peer_socket_writable(flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      Handler for the async-wait in case async_connect() cannot synchronously complete the m_peer_socket co...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Timer m_rcv_idle_timer
                                                                                                                                                                                      Timer that fires rcv_on_ev_idle_timer_fired() (which hoses the in-pipe with idle timeour error) and i...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Timer m_rcv_idle_timer
                                                                                                                                                                                      Timer that fires rcv_on_ev_idle_timer_fired() (which hoses the in-pipe with idle timeour error) and i...
                                                                                                                                                                                      bool auto_ping(util::Fine_duration period)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      Error_code m_rcv_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-read on m_...
                                                                                                                                                                                      -
                                                                                                                                                                                      flow::util::Mutex_non_recursive m_peer_socket_mutex
                                                                                                                                                                                      Protects m_peer_socket and its bro m_ev_wait_hndl_peer_socket.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::sync_io::Event_wait_func m_snd_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_send_*_ops()) through which we invoke the outside event loop's async-w...
                                                                                                                                                                                      +
                                                                                                                                                                                      Error_code m_rcv_pending_err_code
                                                                                                                                                                                      The first and only connection-hosing error condition detected when attempting to low-level-read on m_...
                                                                                                                                                                                      +
                                                                                                                                                                                      flow::util::Mutex_non_recursive m_peer_socket_mutex
                                                                                                                                                                                      Protects m_peer_socket and its bros m_ev_wait_hndl_peer_socket and m_peer_socket_hosed.
                                                                                                                                                                                      +
                                                                                                                                                                                      util::sync_io::Event_wait_func m_snd_ev_wait_func
                                                                                                                                                                                      Function (set forever in start_send_*_ops()) through which we invoke the outside event loop's async-w...
                                                                                                                                                                                      bool idle_timer_run(util::Fine_duration timeout)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      Op
                                                                                                                                                                                      Compile-time tagging enumeration identifying the op-type of a given sync_io activity.
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      bool m_snd_finished
                                                                                                                                                                                      false at start; set to true forever on the first *end_sending() invocation; true will prevent any sub...
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t receive_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      bool m_snd_finished
                                                                                                                                                                                      false at start; set to true forever on the first *end_sending() invocation; true will prevent any sub...
                                                                                                                                                                                      static const low_lvl_payload_blob_length_t S_META_BLOB_LENGTH_PING_SENTINEL
                                                                                                                                                                                      Value for the length field in payload 1 that means "not a length; indicating this is a ping message....
                                                                                                                                                                                      void async_connect(const Shared_name &absolute_name, Error_code *sync_err_code, flow::async::Task_asio_err &&on_done_func)
                                                                                                                                                                                      The core of sync_connect(), written in the sync_io-pattern style.
                                                                                                                                                                                      -
                                                                                                                                                                                      util::Fine_duration m_rcv_idle_timeout
                                                                                                                                                                                      timeout from idle_timer_run() args; or zero() if not yet called.
                                                                                                                                                                                      +
                                                                                                                                                                                      util::Fine_duration m_rcv_idle_timeout
                                                                                                                                                                                      timeout from idle_timer_run() args; or zero() if not yet called.
                                                                                                                                                                                      void rcv_not_idle()
                                                                                                                                                                                      No-ops if idle_timer_run() is not engaged; otherwise reacts to non-idleness of the in-pipe by resched...
                                                                                                                                                                                      -
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_conn_async_worker
                                                                                                                                                                                      Event loop used exclusively by sync_connect() which as needed ->start()s a short-lived thread and ->s...
                                                                                                                                                                                      +
                                                                                                                                                                                      std::optional< flow::async::Single_thread_task_loop > m_conn_async_worker
                                                                                                                                                                                      Event loop used exclusively by sync_connect() which as needed ->start()s a short-lived thread and ->s...
                                                                                                                                                                                      bool async_receive_native_handle_impl(Native_handle *target_hndl_or_null, const util::Blob_mutable &target_meta_blob, Error_code *sync_err_code, size_t *sync_sz, flow::async::Task_asio_err_sz &&on_done_func)
                                                                                                                                                                                      Body of both async_receive_native_handle() and async_receive_blob().
                                                                                                                                                                                      Impl(flow::log::Logger *logger_ptr, util::String_view nickname_str)
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      size_t snd_nb_write_low_lvl_payload(Native_handle hndl_or_null, const util::Blob_const &blob, Error_code *err_code)
                                                                                                                                                                                      Utility that sends non-empty blob, and (unless null) hndl_or_null associated with its 1st byte,...
                                                                                                                                                                                      void rcv_on_ev_peer_socket_readable_or_error(Rcv_msg_state msg_state, size_t n_left)
                                                                                                                                                                                      Completion handler, from outside event loop via sync_io pattern, for the async-wait initiated by vari...
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t receive_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      -
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t receive_meta_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      +
                                                                                                                                                                                      size_t send_blob_max_size() const
                                                                                                                                                                                      See Native_socket_stream counterpart.
                                                                                                                                                                                      friend std::ostream & operator<<(std::ostream &os, const Native_socket_stream &val)
                                                                                                                                                                                      Friend of Native_socket_stream.
                                                                                                                                                                                      A process's credentials (PID, UID, GID as of this writing).
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      @@ -1798,7 +1843,7 @@
                                                                                                                                                                                      boost::asio::readable_pipe Timer_fired_read_end
                                                                                                                                                                                      Object representing the read end of IPC mechanism, where readable status indicates the associated tim...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      boost::asio::const_buffer Blob_const
                                                                                                                                                                                      Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:134
                                                                                                                                                                                      @@ -1821,7 +1866,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp.html index 2fb4e2394..46538e0a3 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp_source.html index 64d3a0d02..4b2e3b03e 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__handle__transport_8hpp_source.html @@ -652,7 +652,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp.html index 4c770473f..e69be2e3b 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp_source.html index b6ecb4a95..44b054fbc 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8cpp_source.html @@ -315,9 +315,9 @@
                                                                                                                                                                                      static Shared_name ct(const Source &src)
                                                                                                                                                                                      Copy-constructs from a char-sequence container (including string, util::String_view,...
                                                                                                                                                                                      Useful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flo...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      util::Shared_name Shared_name
                                                                                                                                                                                      Convenience alias for the commonly used type util::Shared_name.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      boost::asio::const_buffer Blob_const
                                                                                                                                                                                      Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:134
                                                                                                                                                                                      @@ -329,7 +329,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp.html index 249f465ba..2eaf3bb40 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp_source.html index a5ef9f16d..9c0ae4ebe 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream_8hpp_source.html @@ -965,7 +965,7 @@
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      Useful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flo...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      boost::asio::mutable_buffer Blob_mutable
                                                                                                                                                                                      Short-hand for an mutable blob somewhere in memory, stored as exactly a void* and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:140
                                                                                                                                                                                      flow::Fine_duration Fine_duration
                                                                                                                                                                                      Short-hand for Flow's Fine_duration.
                                                                                                                                                                                      Definition: util_fwd.hpp:117
                                                                                                                                                                                      boost::asio::const_buffer Blob_const
                                                                                                                                                                                      Short-hand for an immutable blob somewhere in memory, stored as exactly a void const * and a size_t.
                                                                                                                                                                                      Definition: util_fwd.hpp:134
                                                                                                                                                                                      @@ -980,7 +980,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp.html index a35c5c6ff..7b6e6d4c2 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp_source.html index 8de2114a3..c69cf1fcb 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8cpp_source.html @@ -170,7 +170,7 @@
                                                                                                                                                                                      static Shared_name ct(const Source &src)
                                                                                                                                                                                      Copy-constructs from a char-sequence container (including string, util::String_view,...
                                                                                                                                                                                      void assign(Native_handle hndl)
                                                                                                                                                                                      Loads value to be returned by native_handle().
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      util::Shared_name Shared_name
                                                                                                                                                                                      Convenience alias for the commonly used type util::Shared_name.
                                                                                                                                                                                      util::Native_handle Native_handle
                                                                                                                                                                                      Convenience alias for the commonly used type util::Native_handle.
                                                                                                                                                                                      Log_component
                                                                                                                                                                                      The flow::log::Component payload enumeration containing various log components used by Flow-IPC inter...
                                                                                                                                                                                      Definition: common.hpp:323
                                                                                                                                                                                      @@ -179,7 +179,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp.html index 88bb88612..d1c71fec0 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp_source.html index 8bdaefc7a..79d60e497 100644 --- a/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io_2native__socket__stream__acceptor_8hpp_source.html @@ -434,7 +434,7 @@
                                                                                                                                                                                      @ S_OBJECT_SHUTDOWN_ABORTED_COMPLETION_HANDLER
                                                                                                                                                                                      Async completion handler is being called prematurely, because underlying object is shutting down,...
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      flow::async::Task Task
                                                                                                                                                                                      Short-hand for polymorphic function (a-la std::function<>) that takes no arguments and returns nothin...
                                                                                                                                                                                      Definition: util_fwd.hpp:122
                                                                                                                                                                                      void pipe_produce(flow::log::Logger *logger_ptr, Pipe_writer *pipe)
                                                                                                                                                                                      Writes a byte to the given pipe writer.
                                                                                                                                                                                      Definition: util.cpp:67
                                                                                                                                                                                      void pipe_consume(flow::log::Logger *logger_ptr, Pipe_reader *pipe)
                                                                                                                                                                                      Reads a byte via the given pipe reader.
                                                                                                                                                                                      Definition: util.cpp:96
                                                                                                                                                                                      @@ -448,7 +448,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp.html index 60d8785e9..be846de4f 100644 --- a/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp_source.html index 5811bc05b..4a6449704 100644 --- a/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/sync__io__fwd_8hpp_source.html @@ -723,167 +723,184 @@
                                                                                                                                                                                      651 * not asking for this and log WARNING or even FATAL/abort program. With `epoll_*()`, `EPOLLONESHOT` and/or
                                                                                                                                                                                      652 * `EPOLLET` may be of aid, but be very careful.
                                                                                                                                                                                      653 *
                                                                                                                                                                                      -
                                                                                                                                                                                      654 * ### Integrating with reactor-pattern `poll()` and similar ###
                                                                                                                                                                                      -
                                                                                                                                                                                      655 * Suppose your application is using POSIX `poll()`. Typically a data structure will be maintained mirroring
                                                                                                                                                                                      -
                                                                                                                                                                                      656 * the `fds[].events` (events of interest) sub-argument to `poll()`; for example an `unordered_map<>` from FD
                                                                                                                                                                                      -
                                                                                                                                                                                      657 * (Native_handle::m_native_handle) to an `enum { S_NONE, S_RD, S_WR, S_RD_WR }`; or simply the `fds[]` array itself.
                                                                                                                                                                                      -
                                                                                                                                                                                      658 * (In the latter case lookup by FD may not be constant-time. However `fds[].events` does not need to be built
                                                                                                                                                                                      -
                                                                                                                                                                                      659 * from a mirroring structure ahead of each `poll()`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      654 * @warning With this mechanism we are exposing native handles/FDs on which work is potentially performed
                                                                                                                                                                                      +
                                                                                                                                                                                      655 * by Flow-IPC internals. You may perform operations only as described here, namely read-only "watching"
                                                                                                                                                                                      +
                                                                                                                                                                                      656 * of events; do not transmit anything or close such handles under any circumstances. In addition such
                                                                                                                                                                                      +
                                                                                                                                                                                      657 * a native handle is guaranteed to be valid until the `sync_io`-pattern object exists, but once the
                                                                                                                                                                                      +
                                                                                                                                                                                      658 * destructor begins you must never touch it again. Corollary: See warning below in `epoll`-focused
                                                                                                                                                                                      +
                                                                                                                                                                                      659 * section below.
                                                                                                                                                                                      660 *
                                                                                                                                                                                      -
                                                                                                                                                                                      661 * When `Event_wait_func F(hndl, snd_else_rcv, on_ev_func)` is invoked, you will register the event:
                                                                                                                                                                                      -
                                                                                                                                                                                      662 * -# If necessary, insert `raw_hndl = hndl->native_handle().m_native_handle` into the data structure,
                                                                                                                                                                                      -
                                                                                                                                                                                      663 * with no events of interest (which will change in the next step).
                                                                                                                                                                                      -
                                                                                                                                                                                      664 * If not necessary (already inserted, hence with a (different) event of interest already), continue to next step.
                                                                                                                                                                                      -
                                                                                                                                                                                      665 * -# Depending on `snd_else_rcv`, change the events-of-interest `enum` NONE->RD, NONE->WR, WR->RD_WR, or
                                                                                                                                                                                      -
                                                                                                                                                                                      666 * RD->RD_WR. (If operating on an `fd[].events` directly, that's: `fd.events = fd.events | POLLIN` or
                                                                                                                                                                                      -
                                                                                                                                                                                      667 * `fd.events = fd.events | POLLOUT`.)
                                                                                                                                                                                      -
                                                                                                                                                                                      668 * -# In some data structure keyed on, conceptually, the pair `(raw_hndl, bool snd_else_rcv)`,
                                                                                                                                                                                      -
                                                                                                                                                                                      669 * record `std::move(on_ev_func)`. Call it, say, `ipc_events_map`.
                                                                                                                                                                                      -
                                                                                                                                                                                      670 *
                                                                                                                                                                                      -
                                                                                                                                                                                      671 * At some point in your reactor-pattern event loop, you are ready to call `poll()`. Construct `fds[].events` array
                                                                                                                                                                                      -
                                                                                                                                                                                      672 * if needed, or just use the long-term-maintained one, depending on how you've set this up. Call `poll()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      673 * For each *individual* active event in an `fds[].revents`:
                                                                                                                                                                                      -
                                                                                                                                                                                      674 * -# Construct the pair `(raw_hndl, snd_else_rcv)`.
                                                                                                                                                                                      -
                                                                                                                                                                                      675 * -# If it's not in `ipc_events_map`, no IPC-relevant event fired; it must be something relevant to other
                                                                                                                                                                                      -
                                                                                                                                                                                      676 * parts of your application (such as network traffic). Exit algorithm for now (until next `poll()`);
                                                                                                                                                                                      -
                                                                                                                                                                                      677 * the IPC-registered event is still being waited-on.
                                                                                                                                                                                      -
                                                                                                                                                                                      678 * -# If it *is* in `ipc_events_map`:
                                                                                                                                                                                      -
                                                                                                                                                                                      679 * -# Remove it from there.
                                                                                                                                                                                      -
                                                                                                                                                                                      680 * -# Deregister the event w/r/t next `poll()`:
                                                                                                                                                                                      -
                                                                                                                                                                                      681 * -# Depending on `snd_else_rcv`: Change the events-of-interest `enum` RD->NONE, WR->NONE, RD_WR->WR, or
                                                                                                                                                                                      -
                                                                                                                                                                                      682 * RD_WR->RD. (If operating on an `fd[].events` directly, that's `fd.events = fd.events & ~POLLIN)` or
                                                                                                                                                                                      -
                                                                                                                                                                                      683 * `fd.events = fd.events & ~POLLOUT`.)
                                                                                                                                                                                      -
                                                                                                                                                                                      684 * -# If the events-of-interest for the FD have become NONE (or `fd.events == 0` if tracking it directly),
                                                                                                                                                                                      -
                                                                                                                                                                                      685 * delete the handle's entry from the `events`-mirroring structure (or `events` itself if tracking it
                                                                                                                                                                                      -
                                                                                                                                                                                      686 * directly).
                                                                                                                                                                                      -
                                                                                                                                                                                      687 * -# Invoke the saved `(*on_ev_func)()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      688 *
                                                                                                                                                                                      -
                                                                                                                                                                                      689 * @note While each `F()` invocation indicates one-off event interest, the handler `(*on_ev_func)()` will sometimes,
                                                                                                                                                                                      -
                                                                                                                                                                                      690 * or possibly frequently, re-indicate interest in the same event within its own handler. If done very
                                                                                                                                                                                      -
                                                                                                                                                                                      691 * carefully, it *might* be possible to detect this situation by deferring the editing of `events` or
                                                                                                                                                                                      -
                                                                                                                                                                                      692 * the mirroring structure until `(*on_ev_func)()` finishes; possibly this would net to making no change to
                                                                                                                                                                                      -
                                                                                                                                                                                      693 * the events-of-interest structure. This could save some processor cycles. I (ygoldfel) would recommend
                                                                                                                                                                                      -
                                                                                                                                                                                      694 * only getting into that if compelling perf savings evidence appears.
                                                                                                                                                                                      +
                                                                                                                                                                                      661 * ### Integrating with reactor-pattern `poll()` and similar ###
                                                                                                                                                                                      +
                                                                                                                                                                                      662 * Suppose your application is using POSIX `poll()`. Typically a data structure will be maintained mirroring
                                                                                                                                                                                      +
                                                                                                                                                                                      663 * the `fds[].events` (events of interest) sub-argument to `poll()`; for example an `unordered_map<>` from FD
                                                                                                                                                                                      +
                                                                                                                                                                                      664 * (Native_handle::m_native_handle) to an `enum { S_NONE, S_RD, S_WR, S_RD_WR }`; or simply the `fds[]` array itself.
                                                                                                                                                                                      +
                                                                                                                                                                                      665 * (In the latter case lookup by FD may not be constant-time. However `fds[].events` does not need to be built
                                                                                                                                                                                      +
                                                                                                                                                                                      666 * from a mirroring structure ahead of each `poll()`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      667 *
                                                                                                                                                                                      +
                                                                                                                                                                                      668 * When `Event_wait_func F(hndl, snd_else_rcv, on_ev_func)` is invoked, you will register the event:
                                                                                                                                                                                      +
                                                                                                                                                                                      669 * -# If necessary, insert `raw_hndl = hndl->native_handle().m_native_handle` into the data structure,
                                                                                                                                                                                      +
                                                                                                                                                                                      670 * with no events of interest (which will change in the next step).
                                                                                                                                                                                      +
                                                                                                                                                                                      671 * If not necessary (already inserted, hence with a (different) event of interest already), continue to next step.
                                                                                                                                                                                      +
                                                                                                                                                                                      672 * -# Depending on `snd_else_rcv`, change the events-of-interest `enum` NONE->RD, NONE->WR, WR->RD_WR, or
                                                                                                                                                                                      +
                                                                                                                                                                                      673 * RD->RD_WR. (If operating on an `fd[].events` directly, that's: `fd.events = fd.events | POLLIN` or
                                                                                                                                                                                      +
                                                                                                                                                                                      674 * `fd.events = fd.events | POLLOUT`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      675 * -# In some data structure keyed on, conceptually, the pair `(raw_hndl, bool snd_else_rcv)`,
                                                                                                                                                                                      +
                                                                                                                                                                                      676 * record `std::move(on_ev_func)`. Call it, say, `ipc_events_map`.
                                                                                                                                                                                      +
                                                                                                                                                                                      677 *
                                                                                                                                                                                      +
                                                                                                                                                                                      678 * At some point in your reactor-pattern event loop, you are ready to call `poll()`. Construct `fds[].events` array
                                                                                                                                                                                      +
                                                                                                                                                                                      679 * if needed, or just use the long-term-maintained one, depending on how you've set this up. Call `poll()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      680 * For each *individual* active event in an `fds[].revents`:
                                                                                                                                                                                      +
                                                                                                                                                                                      681 * -# Construct the pair `(raw_hndl, snd_else_rcv)`.
                                                                                                                                                                                      +
                                                                                                                                                                                      682 * -# If it's not in `ipc_events_map`, no IPC-relevant event fired; it must be something relevant to other
                                                                                                                                                                                      +
                                                                                                                                                                                      683 * parts of your application (such as network traffic). Exit algorithm for now (until next `poll()`);
                                                                                                                                                                                      +
                                                                                                                                                                                      684 * the IPC-registered event is still being waited-on.
                                                                                                                                                                                      +
                                                                                                                                                                                      685 * -# If it *is* in `ipc_events_map`:
                                                                                                                                                                                      +
                                                                                                                                                                                      686 * -# Remove it from there.
                                                                                                                                                                                      +
                                                                                                                                                                                      687 * -# Deregister the event w/r/t next `poll()`:
                                                                                                                                                                                      +
                                                                                                                                                                                      688 * -# Depending on `snd_else_rcv`: Change the events-of-interest `enum` RD->NONE, WR->NONE, RD_WR->WR, or
                                                                                                                                                                                      +
                                                                                                                                                                                      689 * RD_WR->RD. (If operating on an `fd[].events` directly, that's `fd.events = fd.events & ~POLLIN)` or
                                                                                                                                                                                      +
                                                                                                                                                                                      690 * `fd.events = fd.events & ~POLLOUT`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      691 * -# If the events-of-interest for the FD have become NONE (or `fd.events == 0` if tracking it directly),
                                                                                                                                                                                      +
                                                                                                                                                                                      692 * delete the handle's entry from the `events`-mirroring structure (or `events` itself if tracking it
                                                                                                                                                                                      +
                                                                                                                                                                                      693 * directly).
                                                                                                                                                                                      +
                                                                                                                                                                                      694 * -# Invoke the saved `(*on_ev_func)()`.
                                                                                                                                                                                      695 *
                                                                                                                                                                                      -
                                                                                                                                                                                      696 * @note You might notice `hndl` is a pointer to Asio_waitable_native_handle, but you simply get `raw_hndl`
                                                                                                                                                                                      -
                                                                                                                                                                                      697 * out of it and forget about the rest of `*hndl`. Why not just provide `raw_hndl` to you? Answer:
                                                                                                                                                                                      -
                                                                                                                                                                                      698 * It is useful when *not* integrating with a reactor-pattern event loop a-la `poll()` or similar but
                                                                                                                                                                                      -
                                                                                                                                                                                      699 * rather when integrating with a boost.asio event loop. See "Integrating with boost.asio" below.
                                                                                                                                                                                      -
                                                                                                                                                                                      700 *
                                                                                                                                                                                      -
                                                                                                                                                                                      701 * ### What about `epoll_*()`? ###
                                                                                                                                                                                      -
                                                                                                                                                                                      702 * In Linux `epoll_*()` is considered superior (its `man` page at least says that, when used in non-`EPOLLET`
                                                                                                                                                                                      -
                                                                                                                                                                                      703 * mode, it is a "faster" `poll()`). We leave the exercise of how to apply the above suggestions (for `poll()`)
                                                                                                                                                                                      -
                                                                                                                                                                                      704 * to `epoll_*()` to the reader. Briefly: Essentially `epoll_ctl()` lets the kernel track a long-running `fds[].events`
                                                                                                                                                                                      -
                                                                                                                                                                                      705 * sub-array, with add/remove/modify operations specified by the user as syscalls. However, it's not possible to simply
                                                                                                                                                                                      -
                                                                                                                                                                                      706 * say "I am interested in FD X, event writable"; the events-of-interest per FD are still specified as
                                                                                                                                                                                      -
                                                                                                                                                                                      707 * an ORing of `EPOLLIN` and/or `EPOLLOUT` in one per-FD entry, whereas `Event_wait_func` is finer-grained than that.
                                                                                                                                                                                      -
                                                                                                                                                                                      708 * It is not possible to iterate through the kernel-stored events-of-interest set or obtain the existing
                                                                                                                                                                                      -
                                                                                                                                                                                      709 * `events` bit-mask so as to then `|=` or `&=` it. Therefore a mirroring data structure (such as the
                                                                                                                                                                                      -
                                                                                                                                                                                      710 * aforementioned `unordered_map<>` from FD to rd/wr/rd-wr) may be necessary in practice. In my (ygoldfel)
                                                                                                                                                                                      -
                                                                                                                                                                                      711 * experience using such a mirroring thing is typical in any case.
                                                                                                                                                                                      -
                                                                                                                                                                                      712 *
                                                                                                                                                                                      -
                                                                                                                                                                                      713 * One tip: `EPOLLONESHOT` may be quite useful: It means you can limit your code to just doing
                                                                                                                                                                                      -
                                                                                                                                                                                      714 * `epoll_ctl(...ADD)` without requiring the counterpart `epoll_ctl(...DEL)` once the event does fire.
                                                                                                                                                                                      -
                                                                                                                                                                                      715 * (`EPOLLET` may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing
                                                                                                                                                                                      -
                                                                                                                                                                                      716 * we haven't investigated this sufficiently to make a statement.)
                                                                                                                                                                                      -
                                                                                                                                                                                      717 *
                                                                                                                                                                                      -
                                                                                                                                                                                      718 * However `EPOLLONESHOT` pertains to the entire descriptor, not one specific waited-on event (read or write).
                                                                                                                                                                                      -
                                                                                                                                                                                      719 * Therefore this optimization is helpful only if `.events` is being set to `EPOLLIN` or `EPOLLOUT` -- not
                                                                                                                                                                                      -
                                                                                                                                                                                      720 * `EPOLLIN | EPOLLOUT`. Be careful. That said, it should be possible to use `dup()` to clone the descriptor
                                                                                                                                                                                      -
                                                                                                                                                                                      721 * in question; then use the original for (e.g.) `EPOLLIN` exclusively and the clone for `EPOLLOUT` exclusively
                                                                                                                                                                                      -
                                                                                                                                                                                      722 * resulting in a clean solution.
                                                                                                                                                                                      -
                                                                                                                                                                                      723 *
                                                                                                                                                                                      -
                                                                                                                                                                                      724 * ### Integrating with boost.asio ###
                                                                                                                                                                                      -
                                                                                                                                                                                      725 * Suppose your application is using boost.asio (possibly with flow.async to manage threads),
                                                                                                                                                                                      -
                                                                                                                                                                                      726 * with a `flow::util::Task_engine::run()` comprising the event loop, in proactor pattern fashion.
                                                                                                                                                                                      -
                                                                                                                                                                                      727 * (We would recommend just that, preferring it to an old-school reactor-pattern via `[e]poll*()` directly.)
                                                                                                                                                                                      -
                                                                                                                                                                                      728 * *Your* loop is asynchronously expressed, but you can still use the `sync_io` pattern to graft
                                                                                                                                                                                      -
                                                                                                                                                                                      729 * Flow-IPC operations into it, so that they are invoked synchronously, when you want, in the exact thread you
                                                                                                                                                                                      -
                                                                                                                                                                                      730 * want. In fact, doing so is *significantly* simpler than integrating with a reactor-style `[e]poll*()`.
                                                                                                                                                                                      -
                                                                                                                                                                                      731 * That is because, conceptually, each `Event_wait_func` invocation is essentially expressing the following
                                                                                                                                                                                      -
                                                                                                                                                                                      732 * boost.asio operation:
                                                                                                                                                                                      -
                                                                                                                                                                                      733 *
                                                                                                                                                                                      -
                                                                                                                                                                                      734 * ~~~
                                                                                                                                                                                      -
                                                                                                                                                                                      735 * some_low_level_transport.async_wait(wait_write, // (or `wait_read`.)
                                                                                                                                                                                      -
                                                                                                                                                                                      736 * [...](const Error_code& err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      737 * {
                                                                                                                                                                                      -
                                                                                                                                                                                      738 * // Can do I/O, or error? Do I/O, or handle error.
                                                                                                                                                                                      -
                                                                                                                                                                                      739 * // ...If no error then possibly even at some point continue the async-op chain...
                                                                                                                                                                                      -
                                                                                                                                                                                      740 * same_or_other_low_level_transport.async_wait(wait_write, // (or `wait_read`.)
                                                                                                                                                                                      -
                                                                                                                                                                                      741 * ...);
                                                                                                                                                                                      -
                                                                                                                                                                                      742 * }
                                                                                                                                                                                      -
                                                                                                                                                                                      743 * ~~~
                                                                                                                                                                                      -
                                                                                                                                                                                      744 *
                                                                                                                                                                                      -
                                                                                                                                                                                      745 * Because of that you have to code essentially none of the stuff above (pertaining to a reactor-style `[e]poll*()`
                                                                                                                                                                                      -
                                                                                                                                                                                      746 * loop): no manual registering/deregistering, wondering how to handle error-event, etc. etc.
                                                                                                                                                                                      -
                                                                                                                                                                                      747 *
                                                                                                                                                                                      -
                                                                                                                                                                                      748 * So what to do, specifically? It is quite straightforward. Suppose you're got `Task_engine E` doing
                                                                                                                                                                                      -
                                                                                                                                                                                      749 * `E.run()` as your event loop. (Any `flow::async::*_loop` does that too, just internally once you do
                                                                                                                                                                                      -
                                                                                                                                                                                      750 * `loop.start()`.) E.g., if you've got TCP sockets attached to `E`, you might be doing
                                                                                                                                                                                      -
                                                                                                                                                                                      751 * `m_tcp_sock.async_read_some(..., [](const Error_code& err_code) { ... };` and so on.
                                                                                                                                                                                      -
                                                                                                                                                                                      752 *
                                                                                                                                                                                      -
                                                                                                                                                                                      753 * When `Event_wait_func F(hndl, snd_else_rcv, on_ev_func)` is invoked, you will simply do:
                                                                                                                                                                                      -
                                                                                                                                                                                      754 *
                                                                                                                                                                                      -
                                                                                                                                                                                      755 * ~~~
                                                                                                                                                                                      -
                                                                                                                                                                                      756 * hndl->async_wait(snd_else_rcv ? Asio_waitable_native_handle::Base::wait_write
                                                                                                                                                                                      -
                                                                                                                                                                                      757 * : Asio_waitable_native_handle::Base::wait_read,
                                                                                                                                                                                      -
                                                                                                                                                                                      758 * [on_ev_func = std::move(on_ev_func)](const Error_code& err_code)
                                                                                                                                                                                      -
                                                                                                                                                                                      759 * {
                                                                                                                                                                                      -
                                                                                                                                                                                      760 * if (err_code != boost::asio::error::operation_aborted)
                                                                                                                                                                                      -
                                                                                                                                                                                      761 * {
                                                                                                                                                                                      -
                                                                                                                                                                                      762 * (*on_ev_func)(); // Note: err_code is disregarded. Whether it's readable/writable or hosed, must invoke.
                                                                                                                                                                                      -
                                                                                                                                                                                      763 * }
                                                                                                                                                                                      -
                                                                                                                                                                                      764 * // else { Stuff is shutting down; do absolutely nothing! SOP on operation_aborted generally. }
                                                                                                                                                                                      -
                                                                                                                                                                                      765 * }
                                                                                                                                                                                      -
                                                                                                                                                                                      766 * ~~~
                                                                                                                                                                                      -
                                                                                                                                                                                      767 *
                                                                                                                                                                                      -
                                                                                                                                                                                      768 * Basically, Flow-IPC wants to do an `async_wait()`... so you do it for Flow-IPC, being the master of your
                                                                                                                                                                                      -
                                                                                                                                                                                      769 * (boost.asio) domain (so to speak).
                                                                                                                                                                                      -
                                                                                                                                                                                      770 *
                                                                                                                                                                                      -
                                                                                                                                                                                      771 * `hndl` is an `Asio_waitable_native_handle*`. Asio_waitable_native_handle is a razor-thin wrapper around
                                                                                                                                                                                      -
                                                                                                                                                                                      772 * a boost.asio `posix::descriptor` which itself is a thin wrapper around a native handle (FD). It has
                                                                                                                                                                                      -
                                                                                                                                                                                      773 * boost.asio-supplied `.async_wait()`. However, and this is a key point:
                                                                                                                                                                                      -
                                                                                                                                                                                      774 *
                                                                                                                                                                                      -
                                                                                                                                                                                      775 * To make it work, before invoking `T::start_*ops()`, you must supply your execution context/executor -- usually
                                                                                                                                                                                      -
                                                                                                                                                                                      776 * a boost.asio `Task_engine` (a/k/a `boost::asio::io_contexst`) or strand (`boost::asio::io_context::strand`) --
                                                                                                                                                                                      -
                                                                                                                                                                                      777 * w/r/t which you plan to `.async_wait()` down the line. This is done via `T::replace_event_wait_handles()`,
                                                                                                                                                                                      -
                                                                                                                                                                                      778 * an otherwise optional call. If using flow.async, this might be (e.g.):
                                                                                                                                                                                      -
                                                                                                                                                                                      779 *
                                                                                                                                                                                      -
                                                                                                                                                                                      780 * ~~~
                                                                                                                                                                                      -
                                                                                                                                                                                      781 * flow::async::Single_thread_task_loop m_your_single_threaded_event_loop;
                                                                                                                                                                                      -
                                                                                                                                                                                      782 * ipc::transport::Native_socket_stream m_sock_stream;
                                                                                                                                                                                      -
                                                                                                                                                                                      783 * // ...
                                                                                                                                                                                      -
                                                                                                                                                                                      784 * m_sock_stream.replace_event_wait_handles([this]() -> auto
                                                                                                                                                                                      -
                                                                                                                                                                                      785 * {
                                                                                                                                                                                      -
                                                                                                                                                                                      786 * return ipc::util::async_io::Asio_waitable_native_handle
                                                                                                                                                                                      -
                                                                                                                                                                                      787 * (*(m_your_single_threaded_event_loop.task_engine()));
                                                                                                                                                                                      -
                                                                                                                                                                                      788 * });
                                                                                                                                                                                      -
                                                                                                                                                                                      789 * m_sock_stream.start_send_blob_ops(F); // F is your Event_wait_func.
                                                                                                                                                                                      -
                                                                                                                                                                                      790 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      696 * @note While each `F()` invocation indicates one-off event interest, the handler `(*on_ev_func)()` will sometimes,
                                                                                                                                                                                      +
                                                                                                                                                                                      697 * or possibly frequently, re-indicate interest in the same event within its own handler. If done very
                                                                                                                                                                                      +
                                                                                                                                                                                      698 * carefully, it *might* be possible to detect this situation by deferring the editing of `events` or
                                                                                                                                                                                      +
                                                                                                                                                                                      699 * the mirroring structure until `(*on_ev_func)()` finishes; possibly this would net to making no change to
                                                                                                                                                                                      +
                                                                                                                                                                                      700 * the events-of-interest structure. This could save some processor cycles. I (ygoldfel) would recommend
                                                                                                                                                                                      +
                                                                                                                                                                                      701 * only getting into that if compelling perf savings evidence appears.
                                                                                                                                                                                      +
                                                                                                                                                                                      702 *
                                                                                                                                                                                      +
                                                                                                                                                                                      703 * @note You might notice `hndl` is a pointer to Asio_waitable_native_handle, but you simply get `raw_hndl`
                                                                                                                                                                                      +
                                                                                                                                                                                      704 * out of it and forget about the rest of `*hndl`. Why not just provide `raw_hndl` to you? Answer:
                                                                                                                                                                                      +
                                                                                                                                                                                      705 * It is useful when *not* integrating with a reactor-pattern event loop a-la `poll()` or similar but
                                                                                                                                                                                      +
                                                                                                                                                                                      706 * rather when integrating with a boost.asio event loop. See "Integrating with boost.asio" below.
                                                                                                                                                                                      +
                                                                                                                                                                                      707 *
                                                                                                                                                                                      +
                                                                                                                                                                                      708 * ### What about `epoll_*()`? ###
                                                                                                                                                                                      +
                                                                                                                                                                                      709 * In Linux `epoll_*()` is considered superior (its `man` page at least says that, when used in non-`EPOLLET`
                                                                                                                                                                                      +
                                                                                                                                                                                      710 * mode, it is a "faster" `poll()`). We leave the exercise of how to apply the above suggestions (for `poll()`)
                                                                                                                                                                                      +
                                                                                                                                                                                      711 * to `epoll_*()` to the reader. Briefly: Essentially `epoll_ctl()` lets the kernel track a long-running `fds[].events`
                                                                                                                                                                                      +
                                                                                                                                                                                      712 * sub-array, with add/remove/modify operations specified by the user as syscalls. However, it's not possible to simply
                                                                                                                                                                                      +
                                                                                                                                                                                      713 * say "I am interested in FD X, event writable"; the events-of-interest per FD are still specified as
                                                                                                                                                                                      +
                                                                                                                                                                                      714 * an ORing of `EPOLLIN` and/or `EPOLLOUT` in one per-FD entry, whereas `Event_wait_func` is finer-grained than that.
                                                                                                                                                                                      +
                                                                                                                                                                                      715 * It is not possible to iterate through the kernel-stored events-of-interest set or obtain the existing
                                                                                                                                                                                      +
                                                                                                                                                                                      716 * `events` bit-mask so as to then `|=` or `&=` it. Therefore a mirroring data structure (such as the
                                                                                                                                                                                      +
                                                                                                                                                                                      717 * aforementioned `unordered_map<>` from FD to rd/wr/rd-wr) may be necessary in practice. In my (ygoldfel)
                                                                                                                                                                                      +
                                                                                                                                                                                      718 * experience using such a mirroring thing is typical in any case.
                                                                                                                                                                                      +
                                                                                                                                                                                      719 *
                                                                                                                                                                                      +
                                                                                                                                                                                      720 * @warning When a `sync_io`-pattern-API object (e.g., transport::sync_io::Native_socket_stream or
                                                                                                                                                                                      +
                                                                                                                                                                                      721 * transport::struc::sync_io::Channel or session::sync_io::Server_session_adapter) is about to be
                                                                                                                                                                                      +
                                                                                                                                                                                      722 * destroyed (by you), it is very possible you have 1+ outstanding async-waits on 1+ native handles (FDs).
                                                                                                                                                                                      +
                                                                                                                                                                                      723 * You *must* deregister any earlier `epoll_ctl(...ADD)`s via `epoll_ctl(...DEL)`, and you must do
                                                                                                                                                                                      +
                                                                                                                                                                                      724 * so *before* destroying the Flow-IPC object. Failure to do so can lead to unexpected chaos
                                                                                                                                                                                      +
                                                                                                                                                                                      725 * (such as [explained here](https://idea.popcount.org/2017-03-20-epoll-is-fundamentally-broken-22/)).
                                                                                                                                                                                      +
                                                                                                                                                                                      726 * Conversely doing so but after Flow-IPC object destructor has begun executing breaks the earlier-mentioned
                                                                                                                                                                                      +
                                                                                                                                                                                      727 * rule wherein a handle must not be touched at that point (and is likely invalid or refers to something else
                                                                                                                                                                                      +
                                                                                                                                                                                      728 * by then).
                                                                                                                                                                                      +
                                                                                                                                                                                      729 *
                                                                                                                                                                                      +
                                                                                                                                                                                      730 * One tip: `EPOLLONESHOT` may be quite useful: It means you can limit your code to just doing
                                                                                                                                                                                      +
                                                                                                                                                                                      731 * `epoll_ctl(...ADD)` without requiring the counterpart `epoll_ctl(...DEL)` once the event does fire.
                                                                                                                                                                                      +
                                                                                                                                                                                      732 * (`EPOLLET` may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing
                                                                                                                                                                                      +
                                                                                                                                                                                      733 * we haven't investigated this sufficiently to make a statement.)
                                                                                                                                                                                      +
                                                                                                                                                                                      734 *
                                                                                                                                                                                      +
                                                                                                                                                                                      735 * However `EPOLLONESHOT` pertains to the entire descriptor, not one specific waited-on event (read or write).
                                                                                                                                                                                      +
                                                                                                                                                                                      736 * Therefore this optimization is helpful only if `.events` is being set to `EPOLLIN` or `EPOLLOUT` -- not
                                                                                                                                                                                      +
                                                                                                                                                                                      737 * `EPOLLIN | EPOLLOUT`. Be careful. That said, it should be possible to use `dup()` to clone the descriptor
                                                                                                                                                                                      +
                                                                                                                                                                                      738 * in question; then use the original for (e.g.) `EPOLLIN` exclusively and the clone for `EPOLLOUT` exclusively
                                                                                                                                                                                      +
                                                                                                                                                                                      739 * resulting in a clean solution.
                                                                                                                                                                                      +
                                                                                                                                                                                      740 *
                                                                                                                                                                                      +
                                                                                                                                                                                      741 * ### Integrating with boost.asio ###
                                                                                                                                                                                      +
                                                                                                                                                                                      742 * Suppose your application is using boost.asio (possibly with flow.async to manage threads),
                                                                                                                                                                                      +
                                                                                                                                                                                      743 * with a `flow::util::Task_engine::run()` comprising the event loop, in proactor pattern fashion.
                                                                                                                                                                                      +
                                                                                                                                                                                      744 * (We would recommend just that, preferring it to an old-school reactor-pattern via `[e]poll*()` directly.)
                                                                                                                                                                                      +
                                                                                                                                                                                      745 * *Your* loop is asynchronously expressed, but you can still use the `sync_io` pattern to graft
                                                                                                                                                                                      +
                                                                                                                                                                                      746 * Flow-IPC operations into it, so that they are invoked synchronously, when you want, in the exact thread you
                                                                                                                                                                                      +
                                                                                                                                                                                      747 * want. In fact, doing so is *significantly* simpler than integrating with a reactor-style `[e]poll*()`.
                                                                                                                                                                                      +
                                                                                                                                                                                      748 * That is because, conceptually, each `Event_wait_func` invocation is essentially expressing the following
                                                                                                                                                                                      +
                                                                                                                                                                                      749 * boost.asio operation:
                                                                                                                                                                                      +
                                                                                                                                                                                      750 *
                                                                                                                                                                                      +
                                                                                                                                                                                      751 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      752 * some_low_level_transport.async_wait(wait_write, // (or `wait_read`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      753 * [...](const Error_code& err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      754 * {
                                                                                                                                                                                      +
                                                                                                                                                                                      755 * // Can do I/O, or error? Do I/O, or handle error.
                                                                                                                                                                                      +
                                                                                                                                                                                      756 * // ...If no error then possibly even at some point continue the async-op chain...
                                                                                                                                                                                      +
                                                                                                                                                                                      757 * same_or_other_low_level_transport.async_wait(wait_write, // (or `wait_read`.)
                                                                                                                                                                                      +
                                                                                                                                                                                      758 * ...);
                                                                                                                                                                                      +
                                                                                                                                                                                      759 * }
                                                                                                                                                                                      +
                                                                                                                                                                                      760 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      761 *
                                                                                                                                                                                      +
                                                                                                                                                                                      762 * Because of that you have to code essentially none of the stuff above (pertaining to a reactor-style `[e]poll*()`
                                                                                                                                                                                      +
                                                                                                                                                                                      763 * loop): no manual registering/deregistering, wondering how to handle error-event, etc. etc.
                                                                                                                                                                                      +
                                                                                                                                                                                      764 *
                                                                                                                                                                                      +
                                                                                                                                                                                      765 * So what to do, specifically? It is quite straightforward. Suppose you're got `Task_engine E` doing
                                                                                                                                                                                      +
                                                                                                                                                                                      766 * `E.run()` as your event loop. (Any `flow::async::*_loop` does that too, just internally once you do
                                                                                                                                                                                      +
                                                                                                                                                                                      767 * `loop.start()`.) E.g., if you've got TCP sockets attached to `E`, you might be doing
                                                                                                                                                                                      +
                                                                                                                                                                                      768 * `m_tcp_sock.async_read_some(..., [](const Error_code& err_code) { ... };` and so on.
                                                                                                                                                                                      +
                                                                                                                                                                                      769 *
                                                                                                                                                                                      +
                                                                                                                                                                                      770 * When `Event_wait_func F(hndl, snd_else_rcv, on_ev_func)` is invoked, you will simply do:
                                                                                                                                                                                      +
                                                                                                                                                                                      771 *
                                                                                                                                                                                      +
                                                                                                                                                                                      772 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      773 * hndl->async_wait(snd_else_rcv ? Asio_waitable_native_handle::Base::wait_write
                                                                                                                                                                                      +
                                                                                                                                                                                      774 * : Asio_waitable_native_handle::Base::wait_read,
                                                                                                                                                                                      +
                                                                                                                                                                                      775 * [on_ev_func = std::move(on_ev_func)](const Error_code& err_code)
                                                                                                                                                                                      +
                                                                                                                                                                                      776 * {
                                                                                                                                                                                      +
                                                                                                                                                                                      777 * if (err_code != boost::asio::error::operation_aborted)
                                                                                                                                                                                      +
                                                                                                                                                                                      778 * {
                                                                                                                                                                                      +
                                                                                                                                                                                      779 * (*on_ev_func)(); // Note: err_code is disregarded. Whether it's readable/writable or hosed, must invoke.
                                                                                                                                                                                      +
                                                                                                                                                                                      780 * }
                                                                                                                                                                                      +
                                                                                                                                                                                      781 * // else { Stuff is shutting down; do absolutely nothing! SOP on operation_aborted generally. }
                                                                                                                                                                                      +
                                                                                                                                                                                      782 * }
                                                                                                                                                                                      +
                                                                                                                                                                                      783 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      784 *
                                                                                                                                                                                      +
                                                                                                                                                                                      785 * Basically, Flow-IPC wants to do an `async_wait()`... so you do it for Flow-IPC, being the master of your
                                                                                                                                                                                      +
                                                                                                                                                                                      786 * (boost.asio) domain (so to speak).
                                                                                                                                                                                      +
                                                                                                                                                                                      787 *
                                                                                                                                                                                      +
                                                                                                                                                                                      788 * `hndl` is an `Asio_waitable_native_handle*`. Asio_waitable_native_handle is a razor-thin wrapper around
                                                                                                                                                                                      +
                                                                                                                                                                                      789 * a boost.asio `posix::descriptor` which itself is a thin wrapper around a native handle (FD). It has
                                                                                                                                                                                      +
                                                                                                                                                                                      790 * boost.asio-supplied `.async_wait()`. However, and this is a key point:
                                                                                                                                                                                      791 *
                                                                                                                                                                                      -
                                                                                                                                                                                      792 * @note As explained in "Integrating with reactor-pattern..." above, `hndl` is
                                                                                                                                                                                      -
                                                                                                                                                                                      793 * a boost.asio I/O object, as opposed to just a Native_handle or even Native_handle::handle_t,
                                                                                                                                                                                      -
                                                                                                                                                                                      794 * specifically for the boost.asio integration use case. If *not* integrating with boost.asio,
                                                                                                                                                                                      -
                                                                                                                                                                                      795 * `start_*ops()` is to be used without preceding it by `replace_event_wait_handles()`,
                                                                                                                                                                                      -
                                                                                                                                                                                      796 * and `hndl->native_handle()` is the only meaningful part of `*hndl`, with `.async_wait()` being meaningless
                                                                                                                                                                                      -
                                                                                                                                                                                      797 * and unused. Conversely, if integrating with boost.asio, `hndl->native_handle()` itself should not be
                                                                                                                                                                                      -
                                                                                                                                                                                      798 * required in your code, while `.async_wait()` is the only meaningful aspect of `*hndl`.
                                                                                                                                                                                      -
                                                                                                                                                                                      799 */
                                                                                                                                                                                      - -
                                                                                                                                                                                      801 bool ev_of_interest_snd_else_rcv,
                                                                                                                                                                                      -
                                                                                                                                                                                      802 Task_ptr&& on_active_ev_func)>;
                                                                                                                                                                                      -
                                                                                                                                                                                      803
                                                                                                                                                                                      -
                                                                                                                                                                                      804} // namespace ipc::util::sync_io
                                                                                                                                                                                      +
                                                                                                                                                                                      792 * To make it work, before invoking `T::start_*ops()`, you must supply your execution context/executor -- usually
                                                                                                                                                                                      +
                                                                                                                                                                                      793 * a boost.asio `Task_engine` (a/k/a `boost::asio::io_contexst`) or strand (`boost::asio::io_context::strand`) --
                                                                                                                                                                                      +
                                                                                                                                                                                      794 * w/r/t which you plan to `.async_wait()` down the line. This is done via `T::replace_event_wait_handles()`,
                                                                                                                                                                                      +
                                                                                                                                                                                      795 * an otherwise optional call. If using flow.async, this might be (e.g.):
                                                                                                                                                                                      +
                                                                                                                                                                                      796 *
                                                                                                                                                                                      +
                                                                                                                                                                                      797 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      798 * flow::async::Single_thread_task_loop m_your_single_threaded_event_loop;
                                                                                                                                                                                      +
                                                                                                                                                                                      799 * ipc::transport::Native_socket_stream m_sock_stream;
                                                                                                                                                                                      +
                                                                                                                                                                                      800 * // ...
                                                                                                                                                                                      +
                                                                                                                                                                                      801 * m_sock_stream.replace_event_wait_handles([this]() -> auto
                                                                                                                                                                                      +
                                                                                                                                                                                      802 * {
                                                                                                                                                                                      +
                                                                                                                                                                                      803 * return ipc::util::async_io::Asio_waitable_native_handle
                                                                                                                                                                                      +
                                                                                                                                                                                      804 * (*(m_your_single_threaded_event_loop.task_engine()));
                                                                                                                                                                                      +
                                                                                                                                                                                      805 * });
                                                                                                                                                                                      +
                                                                                                                                                                                      806 * m_sock_stream.start_send_blob_ops(F); // F is your Event_wait_func.
                                                                                                                                                                                      +
                                                                                                                                                                                      807 * ~~~
                                                                                                                                                                                      +
                                                                                                                                                                                      808 *
                                                                                                                                                                                      +
                                                                                                                                                                                      809 * @note As explained in "Integrating with reactor-pattern..." above, `hndl` is
                                                                                                                                                                                      +
                                                                                                                                                                                      810 * a boost.asio I/O object, as opposed to just a Native_handle or even Native_handle::handle_t,
                                                                                                                                                                                      +
                                                                                                                                                                                      811 * specifically for the boost.asio integration use case. If *not* integrating with boost.asio,
                                                                                                                                                                                      +
                                                                                                                                                                                      812 * `start_*ops()` is to be used without preceding it by `replace_event_wait_handles()`,
                                                                                                                                                                                      +
                                                                                                                                                                                      813 * and `hndl->native_handle()` is the only meaningful part of `*hndl`, with `.async_wait()` being meaningless
                                                                                                                                                                                      +
                                                                                                                                                                                      814 * and unused. Conversely, if integrating with boost.asio, `hndl->native_handle()` itself should not be
                                                                                                                                                                                      +
                                                                                                                                                                                      815 * required in your code, while `.async_wait()` is the only meaningful aspect of `*hndl`.
                                                                                                                                                                                      +
                                                                                                                                                                                      816 */
                                                                                                                                                                                      + +
                                                                                                                                                                                      818 bool ev_of_interest_snd_else_rcv,
                                                                                                                                                                                      +
                                                                                                                                                                                      819 Task_ptr&& on_active_ev_func)>;
                                                                                                                                                                                      +
                                                                                                                                                                                      820
                                                                                                                                                                                      +
                                                                                                                                                                                      821} // namespace ipc::util::sync_io
                                                                                                                                                                                      Useful if using the sync_io pattern within a user event loop built on boost.asio (optionally with flo...
                                                                                                                                                                                      Contains common code, as well as important explanatory documentation in the following text,...
                                                                                                                                                                                      Definition: util_fwd.hpp:209
                                                                                                                                                                                      -
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      +
                                                                                                                                                                                      Function< void(Asio_waitable_native_handle *hndl_of_interest, bool ev_of_interest_snd_else_rcv, Task_ptr &&on_active_ev_func)> Event_wait_func
                                                                                                                                                                                      In sync_io pattern, concrete type storing user-supplied function invoked by pattern-implementing ipc:...
                                                                                                                                                                                      boost::shared_ptr< Task > Task_ptr
                                                                                                                                                                                      Short-hand for ref-counted pointer to a Function<> that takes no arguments and returns nothing; in pa...
                                                                                                                                                                                      flow::Function< Signature > Function
                                                                                                                                                                                      Short-hand for polymorphic functor holder which is very common. This is essentially std::function.
                                                                                                                                                                                      Definition: common.hpp:302
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp.html b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp.html index 0e47ff199..7ea0101b9 100644 --- a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp.html +++ b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp_source.html b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp_source.html index cc5d2abfc..e8399f1c0 100644 --- a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8cpp_source.html @@ -231,7 +231,7 @@ diff --git a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp.html b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp.html index 0572b3fc1..22780a714 100644 --- a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp.html +++ b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp_source.html b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp_source.html index 8b4a6f0d9..8325ebaf1 100644 --- a/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/timer__ev__emitter_8hpp_source.html @@ -137,7 +137,7 @@
                                                                                                                                                                                      65 * know which timer it is, by being informed via `Event_wait_func`'s' `on_active_ev_func` arg.
                                                                                                                                                                                      66 *
                                                                                                                                                                                      67 * The latter option is much more attractive in terms of API simplicity from the user's point of view (at least).
                                                                                                                                                                                      -
                                                                                                                                                                                      68 * So we go with that. Having make this decision, how to actually make it work? Possibilities:
                                                                                                                                                                                      +
                                                                                                                                                                                      68 * So we go with that. Having made this decision, how to actually make it work? Possibilities:
                                                                                                                                                                                      69 * - The OS has these mechanisms. Linux, at least, has `timerfd_create()` and buddies, specifically for this.
                                                                                                                                                                                      70 * One can schedule a timer, so the kernel keeps track of all that and does it in the background; when
                                                                                                                                                                                      71 * ready the FD becomes readable. Done.
                                                                                                                                                                                      @@ -359,7 +359,7 @@ diff --git a/doc/ipc_doc/generated/html_full/todo.html b/doc/ipc_doc/generated/html_full/todo.html index cee1a399a..157c7d780 100644 --- a/doc/ipc_doc/generated/html_full/todo.html +++ b/doc/ipc_doc/generated/html_full/todo.html @@ -131,7 +131,7 @@
                                                                                                                                                                                      Class ipc::transport::sync_io::Native_socket_stream::Impl
                                                                                                                                                                                      Internal Native_socket_stream and Native_socket_stream_acceptor queue algorithms and data structures should be checked for RAM use; perhaps something should be periodically shrunk if applicable. Look for vectors, deques (including inside queues).
                                                                                                                                                                                      Member ipc::transport::sync_io::Native_socket_stream::Impl::m_peer_socket
                                                                                                                                                                                      -
                                                                                                                                                                                      Peer_socket m_peer_socket synchronous-read ops (read_some()) are actually documented in boost::asio to be thread-safe against concurrently invoked synchronous-write ops (write_some()), as are OS calls "::recvmsg()", "::sendmsg()"; therefore for possible perf bump consider never nullifying Impl::m_peer_socket; eliminating Impl::m_peer_socket_mutex; and letting each direction's logic discover any socket-error independently. (But, at the moment, m_peer_socket_mutex also covers mirror-guy m_ev_wait_hndl_peer_socket, so that must be worked out.)
                                                                                                                                                                                      +
                                                                                                                                                                                      Peer_socket m_peer_socket synchronous-read ops (read_some()) are actually documented in boost::asio to be thread-safe against concurrently invoked synchronous-write ops (write_some()), as are OS calls "::recvmsg()", "::sendmsg()"; therefore for possible perf bump consider never nullifying Impl::m_peer_socket; eliminating Impl::m_peer_socket_mutex; and letting each direction's logic discover any socket-error independently. (But, at the moment, m_peer_socket_mutex also covers mirror-guy m_ev_wait_hndl_peer_socket, so that must be worked out.)
                                                                                                                                                                                      Class ipc::util::Default_init_allocator< T, Allocator >
                                                                                                                                                                                      ipc::util::Default_init_allocator should be moved into Flow's flow::util.
                                                                                                                                                                                      Member ipc::util::operator<< (std::ostream &os, const Shared_name &val)
                                                                                                                                                                                      @@ -154,7 +154,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html index 914e47bb2..3371edbc9 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html index 8bf322188..ad5105e80 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp_source.html @@ -127,7 +127,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html index 167f910ef..e53345aa0 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html index eeb68d9a3..a47072e65 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp_source.html @@ -130,7 +130,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp.html index 9b243f0b0..5c5abb166 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp_source.html index 6f0f4f5d4..f423808a4 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic_8hpp_source.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html index e95042e28..208ab377d 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp_source.html index 1888313b3..0d4068d4d 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2classic_2classic__fwd_8hpp_source.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp.html index 63c4e4d84..8f8c9638c 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp.html @@ -117,7 +117,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp_source.html index fa8739c0a..bfd03efd1 100644 --- a/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport_2struc_2shm_2shm__fwd_8hpp_source.html @@ -224,7 +224,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/transport__fwd_8hpp.html index 4e013b4a9..4a2e9cb84 100644 --- a/doc/ipc_doc/generated/html_full/transport__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/transport__fwd_8hpp.html @@ -201,7 +201,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/transport__fwd_8hpp_source.html index 7e4b6bf49..5891839bf 100644 --- a/doc/ipc_doc/generated/html_full/transport__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/transport__fwd_8hpp_source.html @@ -496,7 +496,7 @@
                                                                                                                                                                                      String-wrapping abstraction representing a name uniquely distinguishing a kernel-persistent entity fr...
                                                                                                                                                                                      struc::Channel< Channel_obj, Message_body, Builder::Config, Reader::Config > Channel
                                                                                                                                                                                      Convenience alias: Use this when constructing a struc::Channel with tag Channel_base::S_SERIALIZE_VIA...
                                                                                                                                                                                      Definition: classic.hpp:42
                                                                                                                                                                                      sync_io-pattern counterparts to async-I/O-pattern object types in parent namespace ipc::transport.
                                                                                                                                                                                      -
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      +
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Blob_stream_mq_receiver_impl< Persistent_mq_handle > &val)
                                                                                                                                                                                      Prints string representation of the given Blob_stream_mq_receiver_impl to the given ostream.
                                                                                                                                                                                      Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...
                                                                                                                                                                                      util::Shared_name Shared_name
                                                                                                                                                                                      Convenience alias for the commonly used type util::Shared_name.
                                                                                                                                                                                      std::ostream & operator<<(std::ostream &os, const Bipc_mq_handle &val)
                                                                                                                                                                                      Prints string representation of the given Bipc_mq_handle to the given ostream.
                                                                                                                                                                                      @@ -508,7 +508,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_core.html b/doc/ipc_doc/generated/html_full/transport_core.html index f65524ac7..f9ad178ba 100644 --- a/doc/ipc_doc/generated/html_full/transport_core.html +++ b/doc/ipc_doc/generated/html_full/transport_core.html @@ -76,7 +76,7 @@ diff --git a/doc/ipc_doc/generated/html_full/transport_shm.html b/doc/ipc_doc/generated/html_full/transport_shm.html index ad466356f..dfeaed9a2 100644 --- a/doc/ipc_doc/generated/html_full/transport_shm.html +++ b/doc/ipc_doc/generated/html_full/transport_shm.html @@ -398,7 +398,7 @@

                                                                                                                                                                                      What can you do with a borrowed (received) data structured in SHM?

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_full/universes.html b/doc/ipc_doc/generated/html_full/universes.html index 6e02e6490..cf0222b34 100644 --- a/doc/ipc_doc/generated/html_full/universes.html +++ b/doc/ipc_doc/generated/html_full/universes.html @@ -76,7 +76,7 @@ diff --git a/doc/ipc_doc/generated/html_full/use__counted__object_8cpp.html b/doc/ipc_doc/generated/html_full/use__counted__object_8cpp.html index 94666092c..c5907bc5e 100644 --- a/doc/ipc_doc/generated/html_full/use__counted__object_8cpp.html +++ b/doc/ipc_doc/generated/html_full/use__counted__object_8cpp.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_full/use__counted__object_8cpp_source.html b/doc/ipc_doc/generated/html_full/use__counted__object_8cpp_source.html index a207bb590..42d13f9ba 100644 --- a/doc/ipc_doc/generated/html_full/use__counted__object_8cpp_source.html +++ b/doc/ipc_doc/generated/html_full/use__counted__object_8cpp_source.html @@ -125,7 +125,7 @@ diff --git a/doc/ipc_doc/generated/html_full/use__counted__object_8hpp.html b/doc/ipc_doc/generated/html_full/use__counted__object_8hpp.html index fba0e53e7..8122bf7a5 100644 --- a/doc/ipc_doc/generated/html_full/use__counted__object_8hpp.html +++ b/doc/ipc_doc/generated/html_full/use__counted__object_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_full/use__counted__object_8hpp_source.html b/doc/ipc_doc/generated/html_full/use__counted__object_8hpp_source.html index f349ea99c..f30b607c9 100644 --- a/doc/ipc_doc/generated/html_full/use__counted__object_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/use__counted__object_8hpp_source.html @@ -137,7 +137,7 @@ diff --git a/doc/ipc_doc/generated/html_full/util_8hpp.html b/doc/ipc_doc/generated/html_full/util_8hpp.html index 7c15cf551..f052b4f26 100644 --- a/doc/ipc_doc/generated/html_full/util_8hpp.html +++ b/doc/ipc_doc/generated/html_full/util_8hpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_full/util_8hpp_source.html b/doc/ipc_doc/generated/html_full/util_8hpp_source.html index ded1910d0..01c088cc2 100644 --- a/doc/ipc_doc/generated/html_full/util_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/util_8hpp_source.html @@ -222,7 +222,7 @@ diff --git a/doc/ipc_doc/generated/html_full/util__fwd_8hpp.html b/doc/ipc_doc/generated/html_full/util__fwd_8hpp.html index 0da40a58c..13ed8e30c 100644 --- a/doc/ipc_doc/generated/html_full/util__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_full/util__fwd_8hpp.html @@ -174,7 +174,7 @@ diff --git a/doc/ipc_doc/generated/html_full/util__fwd_8hpp_source.html b/doc/ipc_doc/generated/html_full/util__fwd_8hpp_source.html index cd2544d11..55f5f347e 100644 --- a/doc/ipc_doc/generated/html_full/util__fwd_8hpp_source.html +++ b/doc/ipc_doc/generated/html_full/util__fwd_8hpp_source.html @@ -387,7 +387,7 @@ diff --git a/doc/ipc_doc/generated/html_public/about.html b/doc/ipc_doc/generated/html_public/about.html index bc56a247e..1075371e5 100644 --- a/doc/ipc_doc/generated/html_public/about.html +++ b/doc/ipc_doc/generated/html_public/about.html @@ -132,7 +132,7 @@

                                                                                                                                                                                      Future directions of work

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/annotated.html b/doc/ipc_doc/generated/html_public/annotated.html index 8021cf50b..517c4397b 100644 --- a/doc/ipc_doc/generated/html_public/annotated.html +++ b/doc/ipc_doc/generated/html_public/annotated.html @@ -181,7 +181,7 @@ diff --git a/doc/ipc_doc/generated/html_public/api_overview.html b/doc/ipc_doc/generated/html_public/api_overview.html index bfb5ab6d9..c6c01b0fc 100644 --- a/doc/ipc_doc/generated/html_public/api_overview.html +++ b/doc/ipc_doc/generated/html_public/api_overview.html @@ -683,7 +683,7 @@

                                                                                                                                                                                      Safety

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/app_8cpp.html b/doc/ipc_doc/generated/html_public/app_8cpp.html index 0bd9a0fcf..78d352808 100644 --- a/doc/ipc_doc/generated/html_public/app_8cpp.html +++ b/doc/ipc_doc/generated/html_public/app_8cpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/app_8hpp.html b/doc/ipc_doc/generated/html_public/app_8hpp.html index 843299363..e2b63a74c 100644 --- a/doc/ipc_doc/generated/html_public/app_8hpp.html +++ b/doc/ipc_doc/generated/html_public/app_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/arena__activator_8hpp.html b/doc/ipc_doc/generated/html_public/arena__activator_8hpp.html index 581a73c97..1ee5aec30 100644 --- a/doc/ipc_doc/generated/html_public/arena__activator_8hpp.html +++ b/doc/ipc_doc/generated/html_public/arena__activator_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8cpp.html b/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8cpp.html index fd5a242f1..0abc34d22 100644 --- a/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8cpp.html +++ b/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8hpp.html b/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8hpp.html index c382bb9eb..284dca037 100644 --- a/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8hpp.html +++ b/doc/ipc_doc/generated/html_public/asio__local__stream__socket_8hpp.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/asio__local__stream__socket__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/asio__local__stream__socket__fwd_8hpp.html index 83ece6359..98ded73c5 100644 --- a/doc/ipc_doc/generated/html_public/asio__local__stream__socket__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/asio__local__stream__socket__fwd_8hpp.html @@ -136,7 +136,7 @@ diff --git a/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8cpp.html b/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8cpp.html index 1c7066aba..820ae1723 100644 --- a/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8cpp.html +++ b/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8cpp.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8hpp.html b/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8hpp.html index 828eea16b..b167409c7 100644 --- a/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8hpp.html +++ b/doc/ipc_doc/generated/html_public/asio__waitable__native__hndl_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/async_loop.html b/doc/ipc_doc/generated/html_public/async_loop.html index a9cd01773..fd0f13f80 100644 --- a/doc/ipc_doc/generated/html_public/async_loop.html +++ b/doc/ipc_doc/generated/html_public/async_loop.html @@ -299,7 +299,7 @@

                                                                                                                                                                                      Recap

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/bipc__mq__handle_8cpp.html b/doc/ipc_doc/generated/html_public/bipc__mq__handle_8cpp.html index 687c84f14..e33d6ee4a 100644 --- a/doc/ipc_doc/generated/html_public/bipc__mq__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_public/bipc__mq__handle_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/bipc__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_public/bipc__mq__handle_8hpp.html index c308dc6c2..fb3c74b79 100644 --- a/doc/ipc_doc/generated/html_public/bipc__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_public/bipc__mq__handle_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/blob__stream__mq_8hpp.html b/doc/ipc_doc/generated/html_public/blob__stream__mq_8hpp.html index 442dfc178..874bb6e24 100644 --- a/doc/ipc_doc/generated/html_public/blob__stream__mq_8hpp.html +++ b/doc/ipc_doc/generated/html_public/blob__stream__mq_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/blob__stream__mq__rcv_8hpp.html b/doc/ipc_doc/generated/html_public/blob__stream__mq__rcv_8hpp.html index 721c7a79d..1f4f72409 100644 --- a/doc/ipc_doc/generated/html_public/blob__stream__mq__rcv_8hpp.html +++ b/doc/ipc_doc/generated/html_public/blob__stream__mq__rcv_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/blob__stream__mq__snd_8hpp.html b/doc/ipc_doc/generated/html_public/blob__stream__mq__snd_8hpp.html index 173fa39f2..1e4c60816 100644 --- a/doc/ipc_doc/generated/html_public/blob__stream__mq__snd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/blob__stream__mq__snd_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/blob__transport_8hpp.html b/doc/ipc_doc/generated/html_public/blob__transport_8hpp.html index 6c0874c56..3b8421118 100644 --- a/doc/ipc_doc/generated/html_public/blob__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_public/blob__transport_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/capnp__msg__builder_8hpp.html b/doc/ipc_doc/generated/html_public/capnp__msg__builder_8hpp.html index fd9552ccc..32f232a98 100644 --- a/doc/ipc_doc/generated/html_public/capnp__msg__builder_8hpp.html +++ b/doc/ipc_doc/generated/html_public/capnp__msg__builder_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_public/chan_open.html b/doc/ipc_doc/generated/html_public/chan_open.html index b51cf7283..bf1bf950f 100644 --- a/doc/ipc_doc/generated/html_public/chan_open.html +++ b/doc/ipc_doc/generated/html_public/chan_open.html @@ -399,7 +399,7 @@

                                                                                                                                                                                      Opening init-channels

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/chan_struct.html b/doc/ipc_doc/generated/html_public/chan_struct.html index 00e4fc452..d53cf18a9 100644 --- a/doc/ipc_doc/generated/html_public/chan_struct.html +++ b/doc/ipc_doc/generated/html_public/chan_struct.html @@ -617,7 +617,7 @@

                                                                                                                                                                                      Destroying struc::Channel

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/chan_struct_advanced.html b/doc/ipc_doc/generated/html_public/chan_struct_advanced.html index 901c05c1f..eebd0a4f9 100644 --- a/doc/ipc_doc/generated/html_public/chan_struct_advanced.html +++ b/doc/ipc_doc/generated/html_public/chan_struct_advanced.html @@ -165,7 +165,7 @@

                                                                                                                                                                                      Message lifetime

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/channel__base_8hpp.html b/doc/ipc_doc/generated/html_public/channel__base_8hpp.html index 2f0e1864c..b6c8090f5 100644 --- a/doc/ipc_doc/generated/html_public/channel__base_8hpp.html +++ b/doc/ipc_doc/generated/html_public/channel__base_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classes.html b/doc/ipc_doc/generated/html_public/classes.html index c8a90b4ba..44bb87b9c 100644 --- a/doc/ipc_doc/generated/html_public/classes.html +++ b/doc/ipc_doc/generated/html_public/classes.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv-members.html index 9e3b444be..45e1fbc4f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv-members.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv.html index 85211ffd6..69f44461e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Client__session__mv.html @@ -648,7 +648,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv-members.html index 23216ea53..b4262704f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv-members.html @@ -119,7 +119,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv.html index 1a6d22b3c..1a348d752 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Server__session__mv.html @@ -631,7 +631,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session-members.html index c83848fb3..9a3e3245c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session-members.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session.html index bb3edb221..f225dc45d 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session.html @@ -681,7 +681,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv-members.html index 4d3c56119..0159722fa 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv-members.html @@ -113,7 +113,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv.html index d61c84817..dfa4c1256 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__mv.html @@ -1047,7 +1047,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server-members.html index 4d6ddbda7..1543d3ecc 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server-members.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server.html index 500be7646..d705c56fd 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1Session__server.html @@ -534,7 +534,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html index a90fea765..62d56a626 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session-members.html @@ -141,7 +141,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html index 7174e3998..88a8b92f0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Server__session.html @@ -579,7 +579,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html index d4484a463..8978cb32a 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv-members.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html index f06ce969e..ee9a54933 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__mv.html @@ -629,7 +629,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html index 33451790d..737180d65 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server-members.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html index 880f41d7f..9f1dc73b5 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1Session__server.html @@ -629,7 +629,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html index 5620e8540..84f2fba7c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session-members.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html index 285b9154b..6d734c7ff 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html @@ -333,7 +333,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html index d3c5155da..468ed2509 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv-members.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html index 3a93b8965..4be6f175f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html @@ -629,7 +629,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html index 01ec1ad1a..2cf67e2f3 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server-members.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html index a07f6edea..7a8ce9630 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html @@ -643,7 +643,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html index d7f4279cd..b6ae282b0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter-members.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html index c03004ad8..e94962e6f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Client__session__adapter.html @@ -386,7 +386,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html index 40f6da58f..028ba86a6 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter-members.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html index 5cf596e6c..5720ba918 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Server__session__adapter.html @@ -391,7 +391,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html index 5bc223699..508db1dc2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html index 32f4d2e38..705c3ec6e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1session_1_1sync__io_1_1Session__server__adapter.html @@ -565,7 +565,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html index 2b5f0fb33..a3fdf651c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena-members.html @@ -93,7 +93,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena.html index 99e74252a..e3aa08a51 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1classic_1_1Pool__arena.html @@ -904,7 +904,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html index acca84f45..ddc834f84 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator.html index d748bed6c..bfc293208 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Arena__activator.html @@ -187,7 +187,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html index 83a49bf53..8b831ce6e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html index 590d682f7..1f80a024a 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1shm_1_1stl_1_1Stateless__allocator.html @@ -478,7 +478,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle-members.html index f85cb8bfa..9b3e5dfe1 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle-members.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle.html index 40714b1a1..b82610925 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Bipc__mq__handle.html @@ -1350,7 +1350,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver-members.html index 1248457fb..43b4713a2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver.html index 0f9cac60b..70d5913c7 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__receiver.html @@ -391,7 +391,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender-members.html index 5bf5dd930..3ca593777 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender.html index a9a75bc7c..5abc85c78 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__sender.html @@ -416,7 +416,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base-members.html index 345e681cc..7c17181d0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base.html index 878c6de4a..b5ef27a9a 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__base.html @@ -219,7 +219,7 @@

                                                                                                                                                                                      Rationale

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html index 5a9156ff5..69e792bb6 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver-members.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver.html index a59749a5b..5b3bc9ccd 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__receiver.html @@ -686,7 +686,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html index a39f4a41b..7539e75e3 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender-members.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender.html index 44066ea45..b7bb79ee3 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Blob__stream__mq__sender.html @@ -759,7 +759,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel-members.html index ff3f5c133..30052af1c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel-members.html @@ -131,7 +131,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel.html index 012fac2b1..31c6495e2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Channel.html @@ -1715,7 +1715,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel-members.html index 8f63248a2..2e6c8dbca 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel-members.html @@ -134,7 +134,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel.html index 1fca36397..300206083 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__channel.html @@ -415,7 +415,7 @@

                                                                                                                                                                                      Error semantics

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html index b22bae2eb..3951fe5c7 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel-members.html @@ -137,7 +137,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel.html index a67c67a46..7fcaaaf35 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Mqs__socket__stream__channel.html @@ -447,7 +447,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver-members.html index 672f43a31..1d4d6c724 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver.html index 80d30f646..c06fafb06 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__receiver.html @@ -493,7 +493,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender-members.html index 4e1162148..c3d5e3fb7 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender.html index 8da635218..cbe763590 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__handle__sender.html @@ -545,7 +545,7 @@

                                                                                                                                                                                      Thread safety

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream-members.html index 5e4ddcee6..5340f6dbb 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream-members.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream.html index eef8c6f5f..e8fa583c0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream.html @@ -1192,7 +1192,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html index a8c3af7ba..79e31b039 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor-members.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor.html index 6d254c480..21460a2d9 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Native__socket__stream__acceptor.html @@ -360,7 +360,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer-members.html index 31efaab55..adab95ed2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer.html index 498ee4d4b..9bf51863c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Null__peer.html @@ -158,7 +158,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle-members.html index 181d59bf4..072d4edf9 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle-members.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle.html index bf9319047..3f916c2fb 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Persistent__mq__handle.html @@ -1340,7 +1340,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle-members.html index 8bcce045b..07c7375e0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle-members.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle.html index 1a9594466..1787c373a 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Posix__mq__handle.html @@ -1359,7 +1359,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator-members.html index 13b1eac28..39c200986 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator.html index f6dbdfe42..fb7e783ed 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Protocol__negotiator.html @@ -577,7 +577,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel-members.html index 9e899f182..a806ea35f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel-members.html @@ -134,7 +134,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel.html index d2bc68299..48723b1a8 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel.html @@ -402,7 +402,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html index 4d4cc7ad4..5569963f5 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs-members.html @@ -134,7 +134,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html index 6f4a6ac63..7299a58c8 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1Socket__stream__channel__of__blobs.html @@ -406,7 +406,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html index f34797c4e..aab250e75 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials-members.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html index 25d7e11e8..dc0978169 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1asio__local__stream__socket_1_1Opt__peer__process__credentials.html @@ -449,7 +449,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel-members.html index a0e2114a7..e13707831 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel-members.html @@ -116,7 +116,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel.html index cd46b737d..fe7ca6651 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel.html @@ -1668,7 +1668,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base-members.html index 9280269ac..d94f1acfa 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base.html index c056ffc0d..a2d73804f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Channel__base.html @@ -152,7 +152,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html index d6a46a8db..fdc4e1c69 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html index f012e30bd..d42fa195e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder.html @@ -480,7 +480,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html index 076c05a77..fdffe8bb2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html index a3dedea02..17f9e3784 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__fixed__builder__capnp__message__builder.html @@ -287,7 +287,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html index 9a4228ad7..c2e2b8109 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader.html index 2b70e4fb2..9c91399be 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Heap__reader.html @@ -300,7 +300,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in-members.html index 8ca59683e..fc2898890 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in-members.html @@ -97,7 +97,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in.html index 2355df76e..3380f3485 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__in.html @@ -710,7 +710,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out-members.html index d63e87a9a..3abe39b5e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out-members.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out.html index a163feece..d62063334 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Msg__out.html @@ -717,7 +717,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html index 16a906cd8..7f3ee24cd 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder-members.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder.html index 574af21af..82305d441 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__builder.html @@ -395,7 +395,7 @@

                                                                                                                                                                                      Errors

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html index 57470fdaa..fd49fa310 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader-members.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader.html index d94d13a59..5b1f81812 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1Struct__reader.html @@ -341,7 +341,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html index a6fb8e00e..be0dcfbe5 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html index d77b0223f..14fb3176c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder.html @@ -524,7 +524,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html index cc88dbb19..4abcacd93 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html index 4353be693..d23435f51 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Builder__base.html @@ -125,7 +125,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html index 9305c911d..24089e85f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder-members.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html index 6b5c0f5a5..f68f934f5 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Capnp__message__builder.html @@ -444,7 +444,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html index 10bdc3a58..1c6fdde60 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader-members.html @@ -83,7 +83,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html index b10d868af..947fb11a1 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1shm_1_1Reader.html @@ -329,7 +329,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html index b061ff262..c2a109ea2 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel-members.html @@ -125,7 +125,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html index e81451ba6..42be541d8 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1struc_1_1sync__io_1_1Channel.html @@ -1832,7 +1832,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html index 338849306..0d93b69af 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html index b73b6081b..399f2bad8 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__receiver.html @@ -427,7 +427,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html index 808b72eaf..fd4097405 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html index 354df9f26..1a0e23e67 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__sender.html @@ -475,7 +475,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html index 01693a505..f518aa047 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver-members.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html index e6ac8d98a..1bddde17e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__receiver.html @@ -745,7 +745,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html index 3825f0281..afacde044 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender-members.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html index d996a487d..3c0d2692f 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Blob__stream__mq__sender.html @@ -778,7 +778,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html index d4bba7b26..bc53912de 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver-members.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html index 324d60ad0..f3348552d 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__receiver.html @@ -444,7 +444,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html index 5e212c172..248eaa50e 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html index 07f37e46c..ec1ffd166 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__handle__sender.html @@ -516,7 +516,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html index 1d2b8393b..83d18e2b0 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream-members.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html index 6f77bf906..7617688e5 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream.html @@ -1403,7 +1403,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor-members.html index b8fb07bcf..fbbf99f81 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor-members.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html index e2c2b8b7f..87a691ffd 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1transport_1_1sync__io_1_1Native__socket__stream__acceptor.html @@ -415,7 +415,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator-members.html index 93d03ca94..a99f78806 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator-members.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator.html index 4dfedd411..5a50174d1 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Default__init__allocator.html @@ -217,7 +217,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials-members.html index 0e8007442..10f30daef 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials-members.html @@ -91,7 +91,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials.html index 7d1dbf81d..de399ba08 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Process__credentials.html @@ -634,7 +634,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name-members.html index 40ca16df1..0ac13eeaa 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name-members.html @@ -123,7 +123,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name.html index d9505a532..f6592626c 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Shared__name.html @@ -1748,7 +1748,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object-members.html index 40a1f661e..23244c9f6 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object.html index 9a632da73..9c4dab672 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1Use__counted__object.html @@ -127,7 +127,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle-members.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle-members.html index 572176165..d3ccd5d3a 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle-members.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle-members.html @@ -86,7 +86,7 @@ diff --git a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html index e2518049a..d9d1963e6 100644 --- a/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html +++ b/doc/ipc_doc/generated/html_public/classipc_1_1util_1_1sync__io_1_1Asio__waitable__native__handle.html @@ -471,7 +471,7 @@

                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/client__session__adapter_8hpp.html b/doc/ipc_doc/generated/html_public/client__session__adapter_8hpp.html index 41ff7c05d..72789b3bc 100644 --- a/doc/ipc_doc/generated/html_public/client__session__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_public/client__session__adapter_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/common_8cpp.html b/doc/ipc_doc/generated/html_public/common_8cpp.html index 5f13ebc0e..49a307a20 100644 --- a/doc/ipc_doc/generated/html_public/common_8cpp.html +++ b/doc/ipc_doc/generated/html_public/common_8cpp.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_public/common_8hpp.html b/doc/ipc_doc/generated/html_public/common_8hpp.html index 725ca746d..dbe4245c8 100644 --- a/doc/ipc_doc/generated/html_public/common_8hpp.html +++ b/doc/ipc_doc/generated/html_public/common_8hpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/default__init__allocator_8hpp.html b/doc/ipc_doc/generated/html_public/default__init__allocator_8hpp.html index 91bf04dda..4398f65f2 100644 --- a/doc/ipc_doc/generated/html_public/default__init__allocator_8hpp.html +++ b/doc/ipc_doc/generated/html_public/default__init__allocator_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_000000_000007.html b/doc/ipc_doc/generated/html_public/dir_000000_000007.html index f98ff9087..5d2e94e46 100644 --- a/doc/ipc_doc/generated/html_public/dir_000000_000007.html +++ b/doc/ipc_doc/generated/html_public/dir_000000_000007.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      arena_lend → session Relation

                                                                                                                                                                                      File in session/shm/arena_lendIncludes file in session
                                                                                                                                                                                      jemalloc / client_session.hppclient_session.hpp
                                                                                                                                                                                      jemalloc / server_session.hppserver_session.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000000_000008.html b/doc/ipc_doc/generated/html_public/dir_000000_000008.html index 96aad32b4..189e1e905 100644 --- a/doc/ipc_doc/generated/html_public/dir_000000_000008.html +++ b/doc/ipc_doc/generated/html_public/dir_000000_000008.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      arena_lend → session Relation

                                                                                                                                                                                      File in session/shm/arena_lendIncludes file in session
                                                                                                                                                                                      jemalloc / jemalloc.hppshm / shm.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000000_000011.html b/doc/ipc_doc/generated/html_public/dir_000000_000011.html index 7109dc7fc..6e0f43447 100644 --- a/doc/ipc_doc/generated/html_public/dir_000000_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000000_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      arena_lend → shm Relation

                                                                                                                                                                                      File in session/shm/arena_lendIncludes file in shm
                                                                                                                                                                                      jemalloc / session.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      jemalloc / session_server.hppclassic / pool_arena.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000000_000027.html b/doc/ipc_doc/generated/html_public/dir_000000_000027.html index 11838e14e..86a48b670 100644 --- a/doc/ipc_doc/generated/html_public/dir_000000_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000000_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      arena_lend → util Relation

                                                                                                                                                                                      File in session/shm/arena_lendIncludes file in util
                                                                                                                                                                                      jemalloc / error.cpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000001_000024.html b/doc/ipc_doc/generated/html_public/dir_000001_000024.html index 9dc1614a8..48a5c4a80 100644 --- a/doc/ipc_doc/generated/html_public/dir_000001_000024.html +++ b/doc/ipc_doc/generated/html_public/dir_000001_000024.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      arena_lend → transport Relation

                                                                                                                                                                                      File in transport/struc/shm/arena_lendIncludes file in transport
                                                                                                                                                                                      jemalloc / jemalloc.hppstruc / shm / serializer.hpp
                                                                                                                                                                                      jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000002_000007.html b/doc/ipc_doc/generated/html_public/dir_000002_000007.html index cbf3d0070..5f1e8abca 100644 --- a/doc/ipc_doc/generated/html_public/dir_000002_000007.html +++ b/doc/ipc_doc/generated/html_public/dir_000002_000007.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      classic → session Relation

                                                                                                                                                                                      File in session/shm/classicIncludes file in session
                                                                                                                                                                                      client_session.hppclient_session.hpp
                                                                                                                                                                                      server_session.hppserver_session.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000002_000011.html b/doc/ipc_doc/generated/html_public/dir_000002_000011.html index b3440666b..2c1a646ea 100644 --- a/doc/ipc_doc/generated/html_public/dir_000002_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000002_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      classic → shm Relation

                                                                                                                                                                                      File in session/shm/classicIncludes file in shm
                                                                                                                                                                                      classic.hppclassic / classic_fwd.hpp
                                                                                                                                                                                      classic.hppclassic / pool_arena.hpp
                                                                                                                                                                                      client_session.hppclassic / classic.hpp
                                                                                                                                                                                      server_session.hppclassic / classic.hpp
                                                                                                                                                                                      session.hppclassic / classic.hpp
                                                                                                                                                                                      session.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000003_000015.html b/doc/ipc_doc/generated/html_public/dir_000003_000015.html index a5695c99b..52da41212 100644 --- a/doc/ipc_doc/generated/html_public/dir_000003_000015.html +++ b/doc/ipc_doc/generated/html_public/dir_000003_000015.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      classic → stl Relation

                                                                                                                                                                                      File in shm/classicIncludes file in shm/stl
                                                                                                                                                                                      classic_fwd.hppstl_fwd.hpp
                                                                                                                                                                                      pool_arena.hpparena_activator.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000003_000027.html b/doc/ipc_doc/generated/html_public/dir_000003_000027.html index 53d7d1369..bb426ce30 100644 --- a/doc/ipc_doc/generated/html_public/dir_000003_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000003_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      classic → util Relation

                                                                                                                                                                                      File in shm/classicIncludes file in util
                                                                                                                                                                                      classic_fwd.hppshared_name_fwd.hpp
                                                                                                                                                                                      error.cpputil_fwd.hpp
                                                                                                                                                                                      pool_arena.hppshared_name.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000004_000011.html b/doc/ipc_doc/generated/html_public/dir_000004_000011.html index 0dafc949a..53a78f16c 100644 --- a/doc/ipc_doc/generated/html_public/dir_000004_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000004_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      classic → shm Relation

                                                                                                                                                                                      File in transport/struc/shm/classicIncludes file in shm
                                                                                                                                                                                      classic_fwd.hppclassic / classic_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000005_000007.html b/doc/ipc_doc/generated/html_public/dir_000005_000007.html index aeb0b72e0..137e84d02 100644 --- a/doc/ipc_doc/generated/html_public/dir_000005_000007.html +++ b/doc/ipc_doc/generated/html_public/dir_000005_000007.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      jemalloc → session Relation

                                                                                                                                                                                      File in session/shm/arena_lend/jemallocIncludes file in session
                                                                                                                                                                                      client_session.hppclient_session.hpp
                                                                                                                                                                                      server_session.hppserver_session.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000005_000008.html b/doc/ipc_doc/generated/html_public/dir_000005_000008.html index a010da671..32fea05ec 100644 --- a/doc/ipc_doc/generated/html_public/dir_000005_000008.html +++ b/doc/ipc_doc/generated/html_public/dir_000005_000008.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      jemalloc → session Relation

                                                                                                                                                                                      File in session/shm/arena_lend/jemallocIncludes file in session
                                                                                                                                                                                      jemalloc.hppshm / shm.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000005_000011.html b/doc/ipc_doc/generated/html_public/dir_000005_000011.html index c4f557e45..b46651d6f 100644 --- a/doc/ipc_doc/generated/html_public/dir_000005_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000005_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      jemalloc → shm Relation

                                                                                                                                                                                      File in session/shm/arena_lend/jemallocIncludes file in shm
                                                                                                                                                                                      session.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      session_server.hppclassic / pool_arena.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000005_000027.html b/doc/ipc_doc/generated/html_public/dir_000005_000027.html index 296a63b99..7ad94aa6d 100644 --- a/doc/ipc_doc/generated/html_public/dir_000005_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000005_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      jemalloc → util Relation

                                                                                                                                                                                      File in session/shm/arena_lend/jemallocIncludes file in util
                                                                                                                                                                                      error.cpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000006_000024.html b/doc/ipc_doc/generated/html_public/dir_000006_000024.html index 0445dc3d6..4fc5a2fa1 100644 --- a/doc/ipc_doc/generated/html_public/dir_000006_000024.html +++ b/doc/ipc_doc/generated/html_public/dir_000006_000024.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      jemalloc → transport Relation

                                                                                                                                                                                      File in transport/struc/shm/arena_lend/jemallocIncludes file in transport
                                                                                                                                                                                      jemalloc.hppstruc / shm / serializer.hpp
                                                                                                                                                                                      jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000007_000023.html b/doc/ipc_doc/generated/html_public/dir_000007_000023.html index be3b7e4c7..3039f9c08 100644 --- a/doc/ipc_doc/generated/html_public/dir_000007_000023.html +++ b/doc/ipc_doc/generated/html_public/dir_000007_000023.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      session → transport Relation

                                                                                                                                                                                      File in sessionIncludes file in transport
                                                                                                                                                                                      session_fwd.hpptransport_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000007_000026.html b/doc/ipc_doc/generated/html_public/dir_000007_000026.html index d8a4a42a6..514044951 100644 --- a/doc/ipc_doc/generated/html_public/dir_000007_000026.html +++ b/doc/ipc_doc/generated/html_public/dir_000007_000026.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      session → transport Relation

                                                                                                                                                                                      File in sessionIncludes file in transport
                                                                                                                                                                                      session.hppstruc / heap_serializer.hpp
                                                                                                                                                                                      session_fwd.hppstruc / struc_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000007_000027.html b/doc/ipc_doc/generated/html_public/dir_000007_000027.html index 2fe6f31d9..5098ef51b 100644 --- a/doc/ipc_doc/generated/html_public/dir_000007_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000007_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      session → util Relation

                                                                                                                                                                                      File in sessionIncludes file in util
                                                                                                                                                                                      app.cppnative_handle.hpp
                                                                                                                                                                                      app.hpputil_fwd.hpp
                                                                                                                                                                                      error.cpputil_fwd.hpp
                                                                                                                                                                                      session_fwd.hppnative_handle.hpp
                                                                                                                                                                                      session_fwd.hpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000010_000007.html b/doc/ipc_doc/generated/html_public/dir_000010_000007.html index 5ffb59f54..a1b73b2ff 100644 --- a/doc/ipc_doc/generated/html_public/dir_000010_000007.html +++ b/doc/ipc_doc/generated/html_public/dir_000010_000007.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → session Relation

                                                                                                                                                                                      File in session/shmIncludes file in session
                                                                                                                                                                                      classic / client_session.hppclient_session.hpp
                                                                                                                                                                                      classic / server_session.hppserver_session.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000010_000011.html b/doc/ipc_doc/generated/html_public/dir_000010_000011.html index 8872b63ae..a012fa62d 100644 --- a/doc/ipc_doc/generated/html_public/dir_000010_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000010_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → shm Relation

                                                                                                                                                                                      File in session/shmIncludes file in shm
                                                                                                                                                                                      classic / classic.hppclassic / classic_fwd.hpp
                                                                                                                                                                                      classic / classic.hppclassic / pool_arena.hpp
                                                                                                                                                                                      classic / client_session.hppclassic / classic.hpp
                                                                                                                                                                                      classic / server_session.hppclassic / classic.hpp
                                                                                                                                                                                      classic / session.hppclassic / classic.hpp
                                                                                                                                                                                      classic / session.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000012_000008.html b/doc/ipc_doc/generated/html_public/dir_000012_000008.html index 52df519fc..a5ca1628b 100644 --- a/doc/ipc_doc/generated/html_public/dir_000012_000008.html +++ b/doc/ipc_doc/generated/html_public/dir_000012_000008.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → session Relation

                                                                                                                                                                                      File in transport/struc/shmIncludes file in session
                                                                                                                                                                                      capnp_msg_builder.hppshm / shm.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000012_000011.html b/doc/ipc_doc/generated/html_public/dir_000012_000011.html index 6b85cc7cb..6e9364da2 100644 --- a/doc/ipc_doc/generated/html_public/dir_000012_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000012_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → shm Relation

                                                                                                                                                                                      File in transport/struc/shmIncludes file in shm
                                                                                                                                                                                      capnp_msg_builder.hppstl / arena_activator.hpp
                                                                                                                                                                                      capnp_msg_builder.hppshm.hpp
                                                                                                                                                                                      capnp_msg_builder.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      classic / classic_fwd.hppclassic / classic_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000012_000026.html b/doc/ipc_doc/generated/html_public/dir_000012_000026.html index 0a3c6fa2f..f3720bdb0 100644 --- a/doc/ipc_doc/generated/html_public/dir_000012_000026.html +++ b/doc/ipc_doc/generated/html_public/dir_000012_000026.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → transport Relation

                                                                                                                                                                                      File in transport/struc/shmIncludes file in transport
                                                                                                                                                                                      capnp_msg_builder.hppstruc / struc_fwd.hpp
                                                                                                                                                                                      serializer.hppstruc / heap_serializer.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000012_000027.html b/doc/ipc_doc/generated/html_public/dir_000012_000027.html index 85571f312..f66764686 100644 --- a/doc/ipc_doc/generated/html_public/dir_000012_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000012_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → util Relation

                                                                                                                                                                                      File in transport/struc/shmIncludes file in util
                                                                                                                                                                                      util.cpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000013_000007.html b/doc/ipc_doc/generated/html_public/dir_000013_000007.html index 1c03491eb..631b2da3c 100644 --- a/doc/ipc_doc/generated/html_public/dir_000013_000007.html +++ b/doc/ipc_doc/generated/html_public/dir_000013_000007.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → session Relation

                                                                                                                                                                                      File in session/shmIncludes file in session
                                                                                                                                                                                      arena_lend / jemalloc / client_session.hppclient_session.hpp
                                                                                                                                                                                      arena_lend / jemalloc / server_session.hppserver_session.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000013_000008.html b/doc/ipc_doc/generated/html_public/dir_000013_000008.html index abeb01078..32e69e7b3 100644 --- a/doc/ipc_doc/generated/html_public/dir_000013_000008.html +++ b/doc/ipc_doc/generated/html_public/dir_000013_000008.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → session Relation

                                                                                                                                                                                      File in session/shmIncludes file in session
                                                                                                                                                                                      arena_lend / jemalloc / jemalloc.hppshm / shm.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000013_000011.html b/doc/ipc_doc/generated/html_public/dir_000013_000011.html index cd9275f0d..1b4c18911 100644 --- a/doc/ipc_doc/generated/html_public/dir_000013_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000013_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → shm Relation

                                                                                                                                                                                      File in session/shmIncludes file in shm
                                                                                                                                                                                      arena_lend / jemalloc / session.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      arena_lend / jemalloc / session_server.hppclassic / pool_arena.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000013_000027.html b/doc/ipc_doc/generated/html_public/dir_000013_000027.html index d70850220..9d84f851f 100644 --- a/doc/ipc_doc/generated/html_public/dir_000013_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000013_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → util Relation

                                                                                                                                                                                      File in session/shmIncludes file in util
                                                                                                                                                                                      arena_lend / jemalloc / error.cpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000014_000024.html b/doc/ipc_doc/generated/html_public/dir_000014_000024.html index 4a38c8a7d..36f6d62c9 100644 --- a/doc/ipc_doc/generated/html_public/dir_000014_000024.html +++ b/doc/ipc_doc/generated/html_public/dir_000014_000024.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      shm → transport Relation

                                                                                                                                                                                      File in transport/struc/shmIncludes file in transport
                                                                                                                                                                                      arena_lend / jemalloc / jemalloc.hppstruc / shm / serializer.hpp
                                                                                                                                                                                      arena_lend / jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000016_000008.html b/doc/ipc_doc/generated/html_public/dir_000016_000008.html index c214106fb..c0489129f 100644 --- a/doc/ipc_doc/generated/html_public/dir_000016_000008.html +++ b/doc/ipc_doc/generated/html_public/dir_000016_000008.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → session Relation

                                                                                                                                                                                      File in transport/strucIncludes file in session
                                                                                                                                                                                      shm / capnp_msg_builder.hppshm / shm.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000016_000011.html b/doc/ipc_doc/generated/html_public/dir_000016_000011.html index 05146e81b..4e072f680 100644 --- a/doc/ipc_doc/generated/html_public/dir_000016_000011.html +++ b/doc/ipc_doc/generated/html_public/dir_000016_000011.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → shm Relation

                                                                                                                                                                                      File in transport/strucIncludes file in shm
                                                                                                                                                                                      shm / capnp_msg_builder.hppstl / arena_activator.hpp
                                                                                                                                                                                      shm / capnp_msg_builder.hppshm.hpp
                                                                                                                                                                                      shm / capnp_msg_builder.hppstl / stateless_allocator.hpp
                                                                                                                                                                                      shm / classic / classic_fwd.hppclassic / classic_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000016_000026.html b/doc/ipc_doc/generated/html_public/dir_000016_000026.html index 84369bb62..4bff54bdf 100644 --- a/doc/ipc_doc/generated/html_public/dir_000016_000026.html +++ b/doc/ipc_doc/generated/html_public/dir_000016_000026.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → transport Relation

                                                                                                                                                                                      File in transport/strucIncludes file in transport
                                                                                                                                                                                      shm / capnp_msg_builder.hppstruc / struc_fwd.hpp
                                                                                                                                                                                      shm / serializer.hppstruc / heap_serializer.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000016_000027.html b/doc/ipc_doc/generated/html_public/dir_000016_000027.html index a6773d24b..605804516 100644 --- a/doc/ipc_doc/generated/html_public/dir_000016_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000016_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → util Relation

                                                                                                                                                                                      File in transport/strucIncludes file in util
                                                                                                                                                                                      shm / util.cpputil_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000017_000024.html b/doc/ipc_doc/generated/html_public/dir_000017_000024.html index 4100e35e0..0b64d700e 100644 --- a/doc/ipc_doc/generated/html_public/dir_000017_000024.html +++ b/doc/ipc_doc/generated/html_public/dir_000017_000024.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → transport Relation

                                                                                                                                                                                      File in transport/strucIncludes file in transport
                                                                                                                                                                                      shm / arena_lend / jemalloc / jemalloc.hppstruc / shm / serializer.hpp
                                                                                                                                                                                      shm / arena_lend / jemalloc / jemalloc_fwd.hppstruc / shm / shm_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000018_000022.html b/doc/ipc_doc/generated/html_public/dir_000018_000022.html index d0954806e..57ddb428c 100644 --- a/doc/ipc_doc/generated/html_public/dir_000018_000022.html +++ b/doc/ipc_doc/generated/html_public/dir_000018_000022.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → sync_io Relation

                                                                                                                                                                                      File in transport/strucIncludes file in transport/struc/sync_io
                                                                                                                                                                                      channel.hppchannel.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000018_000023.html b/doc/ipc_doc/generated/html_public/dir_000018_000023.html index e35f5772e..0cc54cc5b 100644 --- a/doc/ipc_doc/generated/html_public/dir_000018_000023.html +++ b/doc/ipc_doc/generated/html_public/dir_000018_000023.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → transport Relation

                                                                                                                                                                                      File in transport/strucIncludes file in transport
                                                                                                                                                                                      msg.hppasio_local_stream_socket_fwd.hpp
                                                                                                                                                                                      msg.hpptransport_fwd.hpp
                                                                                                                                                                                      struc_fwd.hpptransport_fwd.hpp
                                                                                                                                                                                      sync_io / channel.hppchannel.hpp
                                                                                                                                                                                      sync_io / channel.hpperror.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000018_000027.html b/doc/ipc_doc/generated/html_public/dir_000018_000027.html index 4af43f76b..cb7275f93 100644 --- a/doc/ipc_doc/generated/html_public/dir_000018_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000018_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      struc → util Relation

                                                                                                                                                                                      File in transport/strucIncludes file in util
                                                                                                                                                                                      error.cpputil_fwd.hpp
                                                                                                                                                                                      heap_serializer.hpputil_fwd.hpp
                                                                                                                                                                                      msg.hppnative_handle.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000019_000027.html b/doc/ipc_doc/generated/html_public/dir_000019_000027.html index 3aac8ffe1..79bb16307 100644 --- a/doc/ipc_doc/generated/html_public/dir_000019_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000019_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      sync_io → util Relation

                                                                                                                                                                                      File in transport/sync_ioIncludes file in util
                                                                                                                                                                                      native_socket_stream.hppprocess_credentials.hpp
                                                                                                                                                                                      native_socket_stream.hppshared_name.hpp
                                                                                                                                                                                      native_socket_stream.hppsync_io / sync_io_fwd.hpp
                                                                                                                                                                                      native_socket_stream_acceptor.hppsync_io / asio_waitable_native_hndl.hpp
                                                                                                                                                                                      native_socket_stream_acceptor.hppsync_io / sync_io_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000022_000023.html b/doc/ipc_doc/generated/html_public/dir_000022_000023.html index c74da7b73..5133ae97e 100644 --- a/doc/ipc_doc/generated/html_public/dir_000022_000023.html +++ b/doc/ipc_doc/generated/html_public/dir_000022_000023.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      sync_io → transport Relation

                                                                                                                                                                                      File in transport/struc/sync_ioIncludes file in transport
                                                                                                                                                                                      channel.hppchannel.hpp
                                                                                                                                                                                      channel.hpperror.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000023_000019.html b/doc/ipc_doc/generated/html_public/dir_000023_000019.html index bed2ae6ef..bd3e672ed 100644 --- a/doc/ipc_doc/generated/html_public/dir_000023_000019.html +++ b/doc/ipc_doc/generated/html_public/dir_000023_000019.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      transport → sync_io Relation

                                                                                                                                                                                      File in transportIncludes file in transport/sync_io
                                                                                                                                                                                      channel.hppblob_stream_mq_rcv.hpp
                                                                                                                                                                                      channel.hppblob_stream_mq_snd.hpp
                                                                                                                                                                                      channel.hppnative_socket_stream.hpp
                                                                                                                                                                                      native_socket_stream.cppnative_socket_stream.hpp
                                                                                                                                                                                      native_socket_stream_acceptor.cppnative_socket_stream.hpp
                                                                                                                                                                                      native_socket_stream_acceptor.cppnative_socket_stream_acceptor.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_000023_000027.html b/doc/ipc_doc/generated/html_public/dir_000023_000027.html index 15a496b5e..aaa339092 100644 --- a/doc/ipc_doc/generated/html_public/dir_000023_000027.html +++ b/doc/ipc_doc/generated/html_public/dir_000023_000027.html @@ -70,7 +70,7 @@

                                                                                                                                                                                      transport → util Relation

                                                                                                                                                                                      File in transportIncludes file in util
                                                                                                                                                                                      asio_local_stream_socket.hppprocess_credentials.hpp
                                                                                                                                                                                      asio_local_stream_socket_fwd.hppnative_handle.hpp
                                                                                                                                                                                      asio_local_stream_socket_fwd.hpputil_fwd.hpp
                                                                                                                                                                                      bipc_mq_handle.hppshared_name.hpp
                                                                                                                                                                                      bipc_mq_handle.hpputil_fwd.hpp
                                                                                                                                                                                      channel.hppprocess_credentials.hpp
                                                                                                                                                                                      error.cpputil_fwd.hpp
                                                                                                                                                                                      native_socket_stream.hppnative_handle.hpp
                                                                                                                                                                                      sync_io / native_socket_stream.hppprocess_credentials.hpp
                                                                                                                                                                                      native_socket_stream.hppprocess_credentials.hpp
                                                                                                                                                                                      sync_io / native_socket_stream.hppshared_name.hpp
                                                                                                                                                                                      native_socket_stream.hppshared_name_fwd.hpp
                                                                                                                                                                                      sync_io / native_socket_stream.hppsync_io / sync_io_fwd.hpp
                                                                                                                                                                                      sync_io / native_socket_stream_acceptor.hppsync_io / asio_waitable_native_hndl.hpp
                                                                                                                                                                                      native_socket_stream_acceptor.hppshared_name.hpp
                                                                                                                                                                                      sync_io / native_socket_stream_acceptor.hppsync_io / sync_io_fwd.hpp
                                                                                                                                                                                      posix_mq_handle.hppnative_handle.hpp
                                                                                                                                                                                      posix_mq_handle.hppshared_name.hpp
                                                                                                                                                                                      posix_mq_handle.hpputil_fwd.hpp
                                                                                                                                                                                      protocol_negotiator.hpputil_fwd.hpp
                                                                                                                                                                                      transport_fwd.hppnative_handle.hpp
                                                                                                                                                                                      transport_fwd.hppshared_name_fwd.hpp
                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/dir_00580eb0cf40d799755587f5d56ed1cf.html b/doc/ipc_doc/generated/html_public/dir_00580eb0cf40d799755587f5d56ed1cf.html index 7a2e77fa8..ee3dbb30d 100644 --- a/doc/ipc_doc/generated/html_public/dir_00580eb0cf40d799755587f5d56ed1cf.html +++ b/doc/ipc_doc/generated/html_public/dir_00580eb0cf40d799755587f5d56ed1cf.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_0c017496b493ff066fbbe686970307ba.html b/doc/ipc_doc/generated/html_public/dir_0c017496b493ff066fbbe686970307ba.html index f12e61917..c97095292 100644 --- a/doc/ipc_doc/generated/html_public/dir_0c017496b493ff066fbbe686970307ba.html +++ b/doc/ipc_doc/generated/html_public/dir_0c017496b493ff066fbbe686970307ba.html @@ -136,7 +136,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_18de54d40c020a62dfebd12c68fa56ae.html b/doc/ipc_doc/generated/html_public/dir_18de54d40c020a62dfebd12c68fa56ae.html index 66765da91..785ff1bb8 100644 --- a/doc/ipc_doc/generated/html_public/dir_18de54d40c020a62dfebd12c68fa56ae.html +++ b/doc/ipc_doc/generated/html_public/dir_18de54d40c020a62dfebd12c68fa56ae.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_23fbec4e7c966aae2efbb90aeb47f596.html b/doc/ipc_doc/generated/html_public/dir_23fbec4e7c966aae2efbb90aeb47f596.html index ca0258dd6..0ea8813de 100644 --- a/doc/ipc_doc/generated/html_public/dir_23fbec4e7c966aae2efbb90aeb47f596.html +++ b/doc/ipc_doc/generated/html_public/dir_23fbec4e7c966aae2efbb90aeb47f596.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_29eca46078f73b220c63d096b03a57e8.html b/doc/ipc_doc/generated/html_public/dir_29eca46078f73b220c63d096b03a57e8.html index 82fd9bbf3..7ef9b9b6d 100644 --- a/doc/ipc_doc/generated/html_public/dir_29eca46078f73b220c63d096b03a57e8.html +++ b/doc/ipc_doc/generated/html_public/dir_29eca46078f73b220c63d096b03a57e8.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_330ec51ed7bfaf381355aaef7c1667ec.html b/doc/ipc_doc/generated/html_public/dir_330ec51ed7bfaf381355aaef7c1667ec.html index 1e786f13d..fd186eea9 100644 --- a/doc/ipc_doc/generated/html_public/dir_330ec51ed7bfaf381355aaef7c1667ec.html +++ b/doc/ipc_doc/generated/html_public/dir_330ec51ed7bfaf381355aaef7c1667ec.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_420eb5c69419e70df9303f96761e9dfb.html b/doc/ipc_doc/generated/html_public/dir_420eb5c69419e70df9303f96761e9dfb.html index 67ba801ee..fb5b493b1 100644 --- a/doc/ipc_doc/generated/html_public/dir_420eb5c69419e70df9303f96761e9dfb.html +++ b/doc/ipc_doc/generated/html_public/dir_420eb5c69419e70df9303f96761e9dfb.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_49621dcf2e58f6d541462f9bec53bd7e.html b/doc/ipc_doc/generated/html_public/dir_49621dcf2e58f6d541462f9bec53bd7e.html index 3d170caba..48dadbb91 100644 --- a/doc/ipc_doc/generated/html_public/dir_49621dcf2e58f6d541462f9bec53bd7e.html +++ b/doc/ipc_doc/generated/html_public/dir_49621dcf2e58f6d541462f9bec53bd7e.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_58e412aa7ace8e71fc01678dc8765e7c.html b/doc/ipc_doc/generated/html_public/dir_58e412aa7ace8e71fc01678dc8765e7c.html index 2f516a39d..9d91b2c15 100644 --- a/doc/ipc_doc/generated/html_public/dir_58e412aa7ace8e71fc01678dc8765e7c.html +++ b/doc/ipc_doc/generated/html_public/dir_58e412aa7ace8e71fc01678dc8765e7c.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_61dc77215bb335d1119be1f67ca641a9.html b/doc/ipc_doc/generated/html_public/dir_61dc77215bb335d1119be1f67ca641a9.html index 69c799469..399d12a35 100644 --- a/doc/ipc_doc/generated/html_public/dir_61dc77215bb335d1119be1f67ca641a9.html +++ b/doc/ipc_doc/generated/html_public/dir_61dc77215bb335d1119be1f67ca641a9.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_6227a2031bab796131cf8c4b0b895649.html b/doc/ipc_doc/generated/html_public/dir_6227a2031bab796131cf8c4b0b895649.html index f0e3656fb..e9b6092de 100644 --- a/doc/ipc_doc/generated/html_public/dir_6227a2031bab796131cf8c4b0b895649.html +++ b/doc/ipc_doc/generated/html_public/dir_6227a2031bab796131cf8c4b0b895649.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_6a9154929a3cacbead8390e6681e37b8.html b/doc/ipc_doc/generated/html_public/dir_6a9154929a3cacbead8390e6681e37b8.html index a886a51d6..8f596598d 100644 --- a/doc/ipc_doc/generated/html_public/dir_6a9154929a3cacbead8390e6681e37b8.html +++ b/doc/ipc_doc/generated/html_public/dir_6a9154929a3cacbead8390e6681e37b8.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_6bf669985e0a4bfed5b74de88b3e7893.html b/doc/ipc_doc/generated/html_public/dir_6bf669985e0a4bfed5b74de88b3e7893.html index 6b7da4e77..8b68d39f4 100644 --- a/doc/ipc_doc/generated/html_public/dir_6bf669985e0a4bfed5b74de88b3e7893.html +++ b/doc/ipc_doc/generated/html_public/dir_6bf669985e0a4bfed5b74de88b3e7893.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_938858dd290fe54e59e3500689c41d32.html b/doc/ipc_doc/generated/html_public/dir_938858dd290fe54e59e3500689c41d32.html index 3a2e12efe..5063e0b12 100644 --- a/doc/ipc_doc/generated/html_public/dir_938858dd290fe54e59e3500689c41d32.html +++ b/doc/ipc_doc/generated/html_public/dir_938858dd290fe54e59e3500689c41d32.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_a762a7cb84c76c9561dbc78c61068184.html b/doc/ipc_doc/generated/html_public/dir_a762a7cb84c76c9561dbc78c61068184.html index ed9a28c4a..d5e7d1df1 100644 --- a/doc/ipc_doc/generated/html_public/dir_a762a7cb84c76c9561dbc78c61068184.html +++ b/doc/ipc_doc/generated/html_public/dir_a762a7cb84c76c9561dbc78c61068184.html @@ -108,7 +108,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_a98fddea045b8b2df4350ebb1d483bf8.html b/doc/ipc_doc/generated/html_public/dir_a98fddea045b8b2df4350ebb1d483bf8.html index 5d55e87da..4f85c2e5a 100644 --- a/doc/ipc_doc/generated/html_public/dir_a98fddea045b8b2df4350ebb1d483bf8.html +++ b/doc/ipc_doc/generated/html_public/dir_a98fddea045b8b2df4350ebb1d483bf8.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_aa9b1de9a811fc0081d5a436dbc37c19.html b/doc/ipc_doc/generated/html_public/dir_aa9b1de9a811fc0081d5a436dbc37c19.html index bd2cedd50..cd119e3ff 100644 --- a/doc/ipc_doc/generated/html_public/dir_aa9b1de9a811fc0081d5a436dbc37c19.html +++ b/doc/ipc_doc/generated/html_public/dir_aa9b1de9a811fc0081d5a436dbc37c19.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_ad52dd8cdf71953d2954f95ecd6c0394.html b/doc/ipc_doc/generated/html_public/dir_ad52dd8cdf71953d2954f95ecd6c0394.html index 02b68c2de..4bc2732a1 100644 --- a/doc/ipc_doc/generated/html_public/dir_ad52dd8cdf71953d2954f95ecd6c0394.html +++ b/doc/ipc_doc/generated/html_public/dir_ad52dd8cdf71953d2954f95ecd6c0394.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_b574b0807182fd54d29cf48452072c45.html b/doc/ipc_doc/generated/html_public/dir_b574b0807182fd54d29cf48452072c45.html index 42047b813..b8f3c3d1f 100644 --- a/doc/ipc_doc/generated/html_public/dir_b574b0807182fd54d29cf48452072c45.html +++ b/doc/ipc_doc/generated/html_public/dir_b574b0807182fd54d29cf48452072c45.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html b/doc/ipc_doc/generated/html_public/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html index 518bd6d94..35387f4d0 100644 --- a/doc/ipc_doc/generated/html_public/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html +++ b/doc/ipc_doc/generated/html_public/dir_b8aa7e2e9741fa9cbe830a8616b13cfd.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_c7ea703034e45a505e1ea635ef215d07.html b/doc/ipc_doc/generated/html_public/dir_c7ea703034e45a505e1ea635ef215d07.html index d24fbf771..0389d3cfe 100644 --- a/doc/ipc_doc/generated/html_public/dir_c7ea703034e45a505e1ea635ef215d07.html +++ b/doc/ipc_doc/generated/html_public/dir_c7ea703034e45a505e1ea635ef215d07.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html b/doc/ipc_doc/generated/html_public/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html index 2f97ad4f7..e73d060a5 100644 --- a/doc/ipc_doc/generated/html_public/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html +++ b/doc/ipc_doc/generated/html_public/dir_d1a5353b5ceb9e8de9acee201f2ed2e4.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_d54aa94669c58d37a530f384e5a8d959.html b/doc/ipc_doc/generated/html_public/dir_d54aa94669c58d37a530f384e5a8d959.html index 10853e2d7..6af04a356 100644 --- a/doc/ipc_doc/generated/html_public/dir_d54aa94669c58d37a530f384e5a8d959.html +++ b/doc/ipc_doc/generated/html_public/dir_d54aa94669c58d37a530f384e5a8d959.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_d618e329fbb069400f9c6c11fc37efe1.html b/doc/ipc_doc/generated/html_public/dir_d618e329fbb069400f9c6c11fc37efe1.html index fbe82ec4b..c1b2bf6ad 100644 --- a/doc/ipc_doc/generated/html_public/dir_d618e329fbb069400f9c6c11fc37efe1.html +++ b/doc/ipc_doc/generated/html_public/dir_d618e329fbb069400f9c6c11fc37efe1.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_ddb0f12d0722949f40b2818843b69123.html b/doc/ipc_doc/generated/html_public/dir_ddb0f12d0722949f40b2818843b69123.html index 1a95dd9e2..461e73ebf 100644 --- a/doc/ipc_doc/generated/html_public/dir_ddb0f12d0722949f40b2818843b69123.html +++ b/doc/ipc_doc/generated/html_public/dir_ddb0f12d0722949f40b2818843b69123.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html b/doc/ipc_doc/generated/html_public/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html index 1f0da049c..9f841f889 100644 --- a/doc/ipc_doc/generated/html_public/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html +++ b/doc/ipc_doc/generated/html_public/dir_df5b0ac3fc1820ebfc25c1160f1f4b3a.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html b/doc/ipc_doc/generated/html_public/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html index 8a011b273..de8d2c461 100644 --- a/doc/ipc_doc/generated/html_public/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html +++ b/doc/ipc_doc/generated/html_public/dir_e51dab5e9c0cdbd0180a6b7afdbe8a41.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/dir_ff5224d8270264443126f24ce9d073a6.html b/doc/ipc_doc/generated/html_public/dir_ff5224d8270264443126f24ce9d073a6.html index d1038007a..e734229a9 100644 --- a/doc/ipc_doc/generated/html_public/dir_ff5224d8270264443126f24ce9d073a6.html +++ b/doc/ipc_doc/generated/html_public/dir_ff5224d8270264443126f24ce9d073a6.html @@ -89,7 +89,7 @@ diff --git a/doc/ipc_doc/generated/html_public/files.html b/doc/ipc_doc/generated/html_public/files.html index ae57b289e..c2072f8ac 100644 --- a/doc/ipc_doc/generated/html_public/files.html +++ b/doc/ipc_doc/generated/html_public/files.html @@ -211,7 +211,7 @@ diff --git a/doc/ipc_doc/generated/html_public/functions.html b/doc/ipc_doc/generated/html_public/functions.html index f3cf4f88d..c5c3d8458 100644 --- a/doc/ipc_doc/generated/html_public/functions.html +++ b/doc/ipc_doc/generated/html_public/functions.html @@ -98,7 +98,7 @@

                                                                                                                                                                                      - a -

                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_b.html b/doc/ipc_doc/generated/html_public/functions_b.html index 9a55a39fd..821eae70b 100644 --- a/doc/ipc_doc/generated/html_public/functions_b.html +++ b/doc/ipc_doc/generated/html_public/functions_b.html @@ -91,7 +91,7 @@

                                                                                                                                                                                        - b -

                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_c.html b/doc/ipc_doc/generated/html_public/functions_c.html index b8ff65f32..a637589c4 100644 --- a/doc/ipc_doc/generated/html_public/functions_c.html +++ b/doc/ipc_doc/generated/html_public/functions_c.html @@ -84,7 +84,7 @@

                                                                                                                                                                                          - c -

                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/functions_d.html b/doc/ipc_doc/generated/html_public/functions_d.html index 6356ec84e..32c98e334 100644 --- a/doc/ipc_doc/generated/html_public/functions_d.html +++ b/doc/ipc_doc/generated/html_public/functions_d.html @@ -76,7 +76,7 @@

                                                                                                                                                                                            - d -

                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/functions_e.html b/doc/ipc_doc/generated/html_public/functions_e.html index a7bf00607..6643ccfb2 100644 --- a/doc/ipc_doc/generated/html_public/functions_e.html +++ b/doc/ipc_doc/generated/html_public/functions_e.html @@ -77,7 +77,7 @@

                                                                                                                                                                                              - e -

                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/functions_f.html b/doc/ipc_doc/generated/html_public/functions_f.html index 35af8dc7d..ef16c4bb6 100644 --- a/doc/ipc_doc/generated/html_public/functions_f.html +++ b/doc/ipc_doc/generated/html_public/functions_f.html @@ -71,7 +71,7 @@

                                                                                                                                                                                                - f -

                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/functions_func.html b/doc/ipc_doc/generated/html_public/functions_func.html index 14f470517..b55d9895c 100644 --- a/doc/ipc_doc/generated/html_public/functions_func.html +++ b/doc/ipc_doc/generated/html_public/functions_func.html @@ -93,7 +93,7 @@

                                                                                                                                                                                                  - a -

                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/functions_func_b.html b/doc/ipc_doc/generated/html_public/functions_func_b.html index dae461366..33a15cb1b 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_b.html +++ b/doc/ipc_doc/generated/html_public/functions_func_b.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                    - b -

                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/functions_func_c.html b/doc/ipc_doc/generated/html_public/functions_func_c.html index ddf328c79..c61f531c9 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_c.html +++ b/doc/ipc_doc/generated/html_public/functions_func_c.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                      - c -

                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_func_d.html b/doc/ipc_doc/generated/html_public/functions_func_d.html index 8e1ea54b6..f107bb7a6 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_d.html +++ b/doc/ipc_doc/generated/html_public/functions_func_d.html @@ -76,7 +76,7 @@

                                                                                                                                                                                                        - d -

                                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_func_e.html b/doc/ipc_doc/generated/html_public/functions_func_e.html index eae8395c0..75ce7eed3 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_e.html +++ b/doc/ipc_doc/generated/html_public/functions_func_e.html @@ -77,7 +77,7 @@

                                                                                                                                                                                                          - e -

                                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/functions_func_f.html b/doc/ipc_doc/generated/html_public/functions_func_f.html index 65f46e0d5..8912a2d17 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_f.html +++ b/doc/ipc_doc/generated/html_public/functions_func_f.html @@ -71,7 +71,7 @@

                                                                                                                                                                                                            - f -

                                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/functions_func_g.html b/doc/ipc_doc/generated/html_public/functions_func_g.html index 75bf761b9..77136c760 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_g.html +++ b/doc/ipc_doc/generated/html_public/functions_func_g.html @@ -74,7 +74,7 @@

                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/functions_func_h.html b/doc/ipc_doc/generated/html_public/functions_func_h.html index f8e001788..3333160d4 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_h.html +++ b/doc/ipc_doc/generated/html_public/functions_func_h.html @@ -79,7 +79,7 @@

                                                                                                                                                                                                                - h -

                                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/functions_func_i.html b/doc/ipc_doc/generated/html_public/functions_func_i.html index 3b908fbfe..4c43f0613 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_i.html +++ b/doc/ipc_doc/generated/html_public/functions_func_i.html @@ -84,7 +84,7 @@

                                                                                                                                                                                                                  - i -

                                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/functions_func_l.html b/doc/ipc_doc/generated/html_public/functions_func_l.html index b6532427b..98fa05208 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_l.html +++ b/doc/ipc_doc/generated/html_public/functions_func_l.html @@ -74,7 +74,7 @@

                                                                                                                                                                                                                    - l -

                                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/functions_func_m.html b/doc/ipc_doc/generated/html_public/functions_func_m.html index dd7b2762c..dbf824839 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_m.html +++ b/doc/ipc_doc/generated/html_public/functions_func_m.html @@ -78,7 +78,7 @@

                                                                                                                                                                                                                      - m -

                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_func_n.html b/doc/ipc_doc/generated/html_public/functions_func_n.html index a3874efb2..8b9294cc7 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_n.html +++ b/doc/ipc_doc/generated/html_public/functions_func_n.html @@ -85,7 +85,7 @@

                                                                                                                                                                                                                        - n -

                                                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_func_o.html b/doc/ipc_doc/generated/html_public/functions_func_o.html index 6d1fa1d3a..792ce8228 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_o.html +++ b/doc/ipc_doc/generated/html_public/functions_func_o.html @@ -90,7 +90,7 @@

                                                                                                                                                                                                                          - o -

                                                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/functions_func_p.html b/doc/ipc_doc/generated/html_public/functions_func_p.html index c1c9b4bd1..a3296ab75 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_p.html +++ b/doc/ipc_doc/generated/html_public/functions_func_p.html @@ -79,7 +79,7 @@

                                                                                                                                                                                                                            - p -

                                                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/functions_func_r.html b/doc/ipc_doc/generated/html_public/functions_func_r.html index ea8408a60..b48f7ed07 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_r.html +++ b/doc/ipc_doc/generated/html_public/functions_func_r.html @@ -79,7 +79,7 @@

                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/functions_func_s.html b/doc/ipc_doc/generated/html_public/functions_func_s.html index 21fcf8003..008026c5a 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_s.html +++ b/doc/ipc_doc/generated/html_public/functions_func_s.html @@ -118,7 +118,7 @@

                                                                                                                                                                                                                                - s -

                                                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/functions_func_t.html b/doc/ipc_doc/generated/html_public/functions_func_t.html index 8bfec8077..e060f36e6 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_t.html +++ b/doc/ipc_doc/generated/html_public/functions_func_t.html @@ -78,7 +78,7 @@

                                                                                                                                                                                                                                  - t -

                                                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/functions_func_u.html b/doc/ipc_doc/generated/html_public/functions_func_u.html index 899e5ddb7..2079c7e5c 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_u.html +++ b/doc/ipc_doc/generated/html_public/functions_func_u.html @@ -76,7 +76,7 @@

                                                                                                                                                                                                                                    - u -

                                                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/functions_func_w.html b/doc/ipc_doc/generated/html_public/functions_func_w.html index cb4723ab8..7cee43012 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_w.html +++ b/doc/ipc_doc/generated/html_public/functions_func_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                      - w -

                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_func_~.html b/doc/ipc_doc/generated/html_public/functions_func_~.html index 4b1bdffd7..f0f01dcc7 100644 --- a/doc/ipc_doc/generated/html_public/functions_func_~.html +++ b/doc/ipc_doc/generated/html_public/functions_func_~.html @@ -97,7 +97,7 @@

                                                                                                                                                                                                                                        - ~ -

                                                                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_g.html b/doc/ipc_doc/generated/html_public/functions_g.html index 41aca3363..5c90104c1 100644 --- a/doc/ipc_doc/generated/html_public/functions_g.html +++ b/doc/ipc_doc/generated/html_public/functions_g.html @@ -74,7 +74,7 @@

                                                                                                                                                                                                                                          - g -

                                                                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/functions_h.html b/doc/ipc_doc/generated/html_public/functions_h.html index fd5137271..45d6d56e8 100644 --- a/doc/ipc_doc/generated/html_public/functions_h.html +++ b/doc/ipc_doc/generated/html_public/functions_h.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                                                            - h -

                                                                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/functions_i.html b/doc/ipc_doc/generated/html_public/functions_i.html index 71f98fbca..0b656d9c1 100644 --- a/doc/ipc_doc/generated/html_public/functions_i.html +++ b/doc/ipc_doc/generated/html_public/functions_i.html @@ -88,7 +88,7 @@

                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/functions_l.html b/doc/ipc_doc/generated/html_public/functions_l.html index 313b05fa7..7eaef1d1f 100644 --- a/doc/ipc_doc/generated/html_public/functions_l.html +++ b/doc/ipc_doc/generated/html_public/functions_l.html @@ -74,7 +74,7 @@

                                                                                                                                                                                                                                                - l -

                                                                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/functions_m.html b/doc/ipc_doc/generated/html_public/functions_m.html index 0e17d7084..a17d2f864 100644 --- a/doc/ipc_doc/generated/html_public/functions_m.html +++ b/doc/ipc_doc/generated/html_public/functions_m.html @@ -116,7 +116,7 @@

                                                                                                                                                                                                                                                  - m -

                                                                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/functions_n.html b/doc/ipc_doc/generated/html_public/functions_n.html index 4467a28fe..5579b83ac 100644 --- a/doc/ipc_doc/generated/html_public/functions_n.html +++ b/doc/ipc_doc/generated/html_public/functions_n.html @@ -87,7 +87,7 @@

                                                                                                                                                                                                                                                    - n -

                                                                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/functions_o.html b/doc/ipc_doc/generated/html_public/functions_o.html index 4aa103690..4dda961d5 100644 --- a/doc/ipc_doc/generated/html_public/functions_o.html +++ b/doc/ipc_doc/generated/html_public/functions_o.html @@ -94,7 +94,7 @@

                                                                                                                                                                                                                                                      - o -

                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_p.html b/doc/ipc_doc/generated/html_public/functions_p.html index 382837250..a721e2b7a 100644 --- a/doc/ipc_doc/generated/html_public/functions_p.html +++ b/doc/ipc_doc/generated/html_public/functions_p.html @@ -83,7 +83,7 @@

                                                                                                                                                                                                                                                        - p -

                                                                                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_r.html b/doc/ipc_doc/generated/html_public/functions_r.html index 36e421bcb..2051c43a2 100644 --- a/doc/ipc_doc/generated/html_public/functions_r.html +++ b/doc/ipc_doc/generated/html_public/functions_r.html @@ -80,7 +80,7 @@

                                                                                                                                                                                                                                                          - r -

                                                                                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/functions_rela.html b/doc/ipc_doc/generated/html_public/functions_rela.html index 130734b8a..2ffd569da 100644 --- a/doc/ipc_doc/generated/html_public/functions_rela.html +++ b/doc/ipc_doc/generated/html_public/functions_rela.html @@ -70,7 +70,7 @@ diff --git a/doc/ipc_doc/generated/html_public/functions_s.html b/doc/ipc_doc/generated/html_public/functions_s.html index d8a0b4415..17781ff6d 100644 --- a/doc/ipc_doc/generated/html_public/functions_s.html +++ b/doc/ipc_doc/generated/html_public/functions_s.html @@ -163,7 +163,7 @@

                                                                                                                                                                                                                                                            - s -

                                                                                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/functions_t.html b/doc/ipc_doc/generated/html_public/functions_t.html index 343229567..a63f71471 100644 --- a/doc/ipc_doc/generated/html_public/functions_t.html +++ b/doc/ipc_doc/generated/html_public/functions_t.html @@ -79,7 +79,7 @@

                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/functions_type.html b/doc/ipc_doc/generated/html_public/functions_type.html index 2cf6568b5..ec1dbe926 100644 --- a/doc/ipc_doc/generated/html_public/functions_type.html +++ b/doc/ipc_doc/generated/html_public/functions_type.html @@ -184,7 +184,7 @@

                                                                                                                                                                                                                                                                - v -

                                                                                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/functions_u.html b/doc/ipc_doc/generated/html_public/functions_u.html index 12d158949..7355c1b50 100644 --- a/doc/ipc_doc/generated/html_public/functions_u.html +++ b/doc/ipc_doc/generated/html_public/functions_u.html @@ -76,7 +76,7 @@

                                                                                                                                                                                                                                                                  - u -

                                                                                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/functions_v.html b/doc/ipc_doc/generated/html_public/functions_v.html index 1797312f5..066571567 100644 --- a/doc/ipc_doc/generated/html_public/functions_v.html +++ b/doc/ipc_doc/generated/html_public/functions_v.html @@ -73,7 +73,7 @@

                                                                                                                                                                                                                                                                    - v -

                                                                                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/functions_vars.html b/doc/ipc_doc/generated/html_public/functions_vars.html index d83e69db8..100f9effb 100644 --- a/doc/ipc_doc/generated/html_public/functions_vars.html +++ b/doc/ipc_doc/generated/html_public/functions_vars.html @@ -132,7 +132,7 @@

                                                                                                                                                                                                                                                                      - v -

                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/functions_w.html b/doc/ipc_doc/generated/html_public/functions_w.html index 2a7c6cfe3..956b7b6a4 100644 --- a/doc/ipc_doc/generated/html_public/functions_w.html +++ b/doc/ipc_doc/generated/html_public/functions_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                                                        - w -

                                                                                                                                                                                                                                                                          diff --git a/doc/ipc_doc/generated/html_public/functions_~.html b/doc/ipc_doc/generated/html_public/functions_~.html index 9db2da5eb..0b9cadcb6 100644 --- a/doc/ipc_doc/generated/html_public/functions_~.html +++ b/doc/ipc_doc/generated/html_public/functions_~.html @@ -97,7 +97,7 @@

                                                                                                                                                                                                                                                                          - ~ -

                                                                                                                                                                                                                                                                            diff --git a/doc/ipc_doc/generated/html_public/globals.html b/doc/ipc_doc/generated/html_public/globals.html index 65a0fbcc8..6a3b62193 100644 --- a/doc/ipc_doc/generated/html_public/globals.html +++ b/doc/ipc_doc/generated/html_public/globals.html @@ -108,7 +108,7 @@

                                                                                                                                                                                                                                                                            - t -

                                                                                                                                                                                                                                                                              diff --git a/doc/ipc_doc/generated/html_public/globals_defs.html b/doc/ipc_doc/generated/html_public/globals_defs.html index c65a461c4..8f6004b97 100644 --- a/doc/ipc_doc/generated/html_public/globals_defs.html +++ b/doc/ipc_doc/generated/html_public/globals_defs.html @@ -108,7 +108,7 @@

                                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/graph_legend.html b/doc/ipc_doc/generated/html_public/graph_legend.html index a2ee0ad2c..5b01123aa 100644 --- a/doc/ipc_doc/generated/html_public/graph_legend.html +++ b/doc/ipc_doc/generated/html_public/graph_legend.html @@ -129,7 +129,7 @@ diff --git a/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8cpp.html b/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8cpp.html index f64754b84..744ed9b2d 100644 --- a/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8cpp.html +++ b/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8cpp.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8hpp.html b/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8hpp.html index 4fe0ff88b..686b2e838 100644 --- a/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8hpp.html +++ b/doc/ipc_doc/generated/html_public/heap__fixed__builder__capnp__msg__builder_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/heap__serializer_8cpp.html b/doc/ipc_doc/generated/html_public/heap__serializer_8cpp.html index 4bc6b3022..73a6fada3 100644 --- a/doc/ipc_doc/generated/html_public/heap__serializer_8cpp.html +++ b/doc/ipc_doc/generated/html_public/heap__serializer_8cpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/heap__serializer_8hpp.html b/doc/ipc_doc/generated/html_public/heap__serializer_8hpp.html index 7467864e4..f17907e6d 100644 --- a/doc/ipc_doc/generated/html_public/heap__serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_public/heap__serializer_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_public/hierarchy.html b/doc/ipc_doc/generated/html_public/hierarchy.html index de2c66edd..d49caacdb 100644 --- a/doc/ipc_doc/generated/html_public/hierarchy.html +++ b/doc/ipc_doc/generated/html_public/hierarchy.html @@ -174,7 +174,7 @@ diff --git a/doc/ipc_doc/generated/html_public/index.html b/doc/ipc_doc/generated/html_public/index.html index 5e7769a56..3983a78b7 100644 --- a/doc/ipc_doc/generated/html_public/index.html +++ b/doc/ipc_doc/generated/html_public/index.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/inherits.html b/doc/ipc_doc/generated/html_public/inherits.html index 9c6de59c9..5b7142688 100644 --- a/doc/ipc_doc/generated/html_public/inherits.html +++ b/doc/ipc_doc/generated/html_public/inherits.html @@ -231,7 +231,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8cpp.html index 25bececf3..84335ecab 100644 --- a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8cpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8hpp.html index ba18d50a5..9296c9526 100644 --- a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2channel_8hpp.html @@ -127,7 +127,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8cpp.html index d70767b73..5314cd2f9 100644 --- a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8hpp.html index 3311647ef..3f128df38 100644 --- a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2transport_2error_8hpp.html @@ -155,7 +155,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2util_2util_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2util_2util_8cpp.html index 3602a5ca0..2a26c000b 100644 --- a/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2util_2util_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__core_2src_2ipc_2util_2util_8cpp.html @@ -127,7 +127,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2client__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2client__session_8hpp.html index 69c9ca59b..9a8fb6256 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2client__session_8hpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8cpp.html index 52a56072a..a110283ac 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8hpp.html index 6c4913965..dc24bf46f 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2error_8hpp.html @@ -146,7 +146,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2server__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2server__session_8hpp.html index 8021b6ca9..5444bf2a0 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2server__session_8hpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session_8hpp.html index 0666f16f7..4b43f721e 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session__server_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session__server_8hpp.html index eb9bbd0a7..410a29f87 100644 --- a/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__session_2src_2ipc_2session_2session__server_8hpp.html @@ -112,7 +112,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html index bf2082295..02bac803d 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2client__session_8hpp.html @@ -73,7 +73,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html index 3361d471e..ee1d9db61 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2server__session_8hpp.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html index 120971464..7fcd0669f 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session_8hpp.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html index b9169fd45..f4b0f15df 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2session_2shm_2classic_2session__server_8hpp.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html index c32d9d18a..0155a31d9 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8cpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html index ce7778b3c..6aef4e862 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2shm_2classic_2error_8hpp.html @@ -131,7 +131,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html index f05f7f6fa..ed10bf5ab 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2serializer_8hpp.html @@ -142,7 +142,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html index 219e184d4..4ffe2aa72 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm_2src_2ipc_2transport_2struc_2shm_2util_8cpp.html @@ -101,7 +101,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html index f2dcca116..fe94f3e84 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2client__session_8hpp.html @@ -73,7 +73,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html index 9c9568dfa..a38c823eb 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8cpp.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html index 5f7507e2a..7ba248702 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2error_8hpp.html @@ -139,7 +139,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html index 6cca0124b..17b730f3e 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2server__session_8hpp.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html index 7677cc9d7..e57b1d1b8 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session_8hpp.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html index 4f0c1d2d5..6e2edcb4a 100644 --- a/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__shm__arena__lend_2src_2ipc_2session_2shm_2arena__lend_2jemalloc_2session__server_8hpp.html @@ -121,7 +121,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html index afc463a70..4b683192b 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html index eadb72587..8f4d89f53 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8hpp.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html index fdd1123d0..db220ccf1 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8cpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html index cf74cfa51..43bd914f5 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2error_8hpp.html @@ -147,7 +147,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html index 1cd5e1c8c..444628ad7 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2serializer_8hpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html index 7e8be7536..f4cdbcada 100644 --- a/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html +++ b/doc/ipc_doc/generated/html_public/ipc__transport__structured_2src_2ipc_2transport_2struc_2sync__io_2channel_8hpp.html @@ -110,7 +110,7 @@ diff --git a/doc/ipc_doc/generated/html_public/msg_8hpp.html b/doc/ipc_doc/generated/html_public/msg_8hpp.html index fb4b25a90..12f1e37b4 100644 --- a/doc/ipc_doc/generated/html_public/msg_8hpp.html +++ b/doc/ipc_doc/generated/html_public/msg_8hpp.html @@ -130,7 +130,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaceboost_1_1system.html b/doc/ipc_doc/generated/html_public/namespaceboost_1_1system.html index 4665ea3c2..ae5291522 100644 --- a/doc/ipc_doc/generated/html_public/namespaceboost_1_1system.html +++ b/doc/ipc_doc/generated/html_public/namespaceboost_1_1system.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespacecapnp.html b/doc/ipc_doc/generated/html_public/namespacecapnp.html index 7468c5911..02df4e6f8 100644 --- a/doc/ipc_doc/generated/html_public/namespacecapnp.html +++ b/doc/ipc_doc/generated/html_public/namespacecapnp.html @@ -126,7 +126,7 @@

                                                                                                                                                                                                                                                                                Rationale for existence

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc.html b/doc/ipc_doc/generated/html_public/namespaceipc.html index b96470913..fb9c64549 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc.html @@ -299,7 +299,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1bipc.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1bipc.html index 2dd6d61e2..e50116c39 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1bipc.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1bipc.html @@ -78,7 +78,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1fs.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1fs.html index 88dc2090b..d14ed8843 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1fs.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1fs.html @@ -80,7 +80,7 @@

                                                                                                                                                                                                                                                                                Rationale for aliasing to boost::filesystem instead of st diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session.html index 512a7246c..fcc7f8956 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session.html @@ -687,7 +687,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1error.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1error.html index d721f753d..4c33ab8f8 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1error.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1error.html @@ -294,7 +294,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm.html index 775c162b8..f55f3d949 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm.html @@ -211,7 +211,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend.html index f30ef19af..1a94d5c4f 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html index ec6689104..3a8519390 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc.html @@ -275,7 +275,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html index 8da288754..4b2149da6 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error.html @@ -255,7 +255,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1classic.html index 94085e9da..8eac957b9 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1shm_1_1classic.html @@ -268,7 +268,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1sync__io.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1sync__io.html index 6b611bfac..6c2e180ae 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1session_1_1sync__io.html @@ -231,7 +231,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm.html index c0c8b3145..00eaa84ff 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm.html @@ -168,7 +168,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic.html index 28acca2e7..4c87baa3a 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic.html @@ -181,7 +181,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic_1_1error.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic_1_1error.html index d1282c72d..8f1c0186e 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic_1_1error.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1classic_1_1error.html @@ -248,7 +248,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1stl.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1stl.html index fcbdb92cb..53ec1c438 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1stl.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1shm_1_1stl.html @@ -257,7 +257,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport.html index 864863ca8..ba31e284a 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport.html @@ -802,7 +802,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket.html index 71320179e..c46bdf0cf 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket.html @@ -651,7 +651,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html index 7639c5975..c758181f4 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1asio__local__stream__socket_1_1local__ns.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1error.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1error.html index 81c660a33..ceb744868 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1error.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1error.html @@ -326,7 +326,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc.html index 121b23263..fcfa3d4d0 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc.html @@ -462,7 +462,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1error.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1error.html index ebadfe38f..7ef375a8f 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1error.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1error.html @@ -286,7 +286,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm.html index 2bb49bf6f..93c213bbf 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm.html @@ -340,7 +340,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html index 76459e6a7..155682f98 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html index f9b2d13ed..83f417cd0 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1arena__lend_1_1jemalloc.html @@ -118,7 +118,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html index 36ce56f54..e942150c8 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1shm_1_1classic.html @@ -118,7 +118,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1sync__io.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1sync__io.html index 4aaaadc62..99b3bfe60 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1struc_1_1sync__io.html @@ -138,7 +138,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1sync__io.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1sync__io.html index 207526d77..f27376651 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1transport_1_1sync__io.html @@ -324,7 +324,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1util.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1util.html index 187984e9b..7f6c40159 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1util.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1util.html @@ -1882,7 +1882,7 @@

                                                                                                                                                                                                                                                                                diff --git a/doc/ipc_doc/generated/html_public/namespaceipc_1_1util_1_1sync__io.html b/doc/ipc_doc/generated/html_public/namespaceipc_1_1util_1_1sync__io.html index 436f8d1d2..5e35735d2 100644 --- a/doc/ipc_doc/generated/html_public/namespaceipc_1_1util_1_1sync__io.html +++ b/doc/ipc_doc/generated/html_public/namespaceipc_1_1util_1_1sync__io.html @@ -405,7 +405,9 @@

                                                                                                                                                                                                                                                                                Use in -
                                                                                                                                                                                                                                                                                Warning
                                                                                                                                                                                                                                                                                Do not forget to deregister the event before (*on_active_ev_func)(). Failure to do so can easily result in processor pegging at best; or undefined behavior/assertion tripping. Worse still, if it's mere processor pegging, you might not notice it happening. E.g., if Native_socket_stream::send*() encounters would-block internally, it will register interest in writability of an internal handle; suppose when you report writability it is able to push-through any queued internal payload. Now it no longer needs writability; if informed of writability anyway, it will at best do nothing – leading to an infinite loop of user reporting writability and Native_socket_stream ignoring it. Or, if that is how Native_socket_stream is written, it will detect that a write event is being reported despite it not asking for this and log WARNING or even FATAL/abort program. With epoll_*(), EPOLLONESHOT and/or EPOLLET may be of aid, but be very careful.
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                Warning
                                                                                                                                                                                                                                                                                Do not forget to deregister the event before (*on_active_ev_func)(). Failure to do so can easily result in processor pegging at best; or undefined behavior/assertion tripping. Worse still, if it's mere processor pegging, you might not notice it happening. E.g., if Native_socket_stream::send*() encounters would-block internally, it will register interest in writability of an internal handle; suppose when you report writability it is able to push-through any queued internal payload. Now it no longer needs writability; if informed of writability anyway, it will at best do nothing – leading to an infinite loop of user reporting writability and Native_socket_stream ignoring it. Or, if that is how Native_socket_stream is written, it will detect that a write event is being reported despite it not asking for this and log WARNING or even FATAL/abort program. With epoll_*(), EPOLLONESHOT and/or EPOLLET may be of aid, but be very careful.
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                +With this mechanism we are exposing native handles/FDs on which work is potentially performed by Flow-IPC internals. You may perform operations only as described here, namely read-only "watching" of events; do not transmit anything or close such handles under any circumstances. In addition such a native handle is guaranteed to be valid until the sync_io-pattern object exists, but once the destructor begins you must never touch it again. Corollary: See warning below in epoll-focused section below.

                                                                                                                                                                                                                                                                                Integrating with reactor-pattern poll() and similar

                                                                                                                                                                                                                                                                                Suppose your application is using POSIX poll(). Typically a data structure will be maintained mirroring the fds[].events (events of interest) sub-argument to poll(); for example an unordered_map<> from FD (Native_handle::m_native_handle) to an enum { S_NONE, S_RD, S_WR, S_RD_WR }; or simply the fds[] array itself. (In the latter case lookup by FD may not be constant-time. However fds[].events does not need to be built from a mirroring structure ahead of each poll().)

                                                                                                                                                                                                                                                                                When Event_wait_func F(hndl, snd_else_rcv, on_ev_func) is invoked, you will register the event:

                                                                                                                                                                                                                                                                                  @@ -432,7 +434,8 @@

                                                                                                                                                                                                                                                                                  Integrating with reactor-pattern poll() and similar

                                                                                                                                                                                                                                                                                  You might notice hndl is a pointer to Asio_waitable_native_handle, but you simply get raw_hndl out of it and forget about the rest of *hndl. Why not just provide raw_hndl to you? Answer: It is useful when not integrating with a reactor-pattern event loop a-la poll() or similar but rather when integrating with a boost.asio event loop. See "Integrating with boost.asio" below.

                                                                                                                                                                                                                                                                                  What about epoll_*()?

                                                                                                                                                                                                                                                                                  In Linux epoll_*() is considered superior (its man page at least says that, when used in non-EPOLLET mode, it is a "faster" poll()). We leave the exercise of how to apply the above suggestions (for poll()) to epoll_*() to the reader. Briefly: Essentially epoll_ctl() lets the kernel track a long-running fds[].events sub-array, with add/remove/modify operations specified by the user as syscalls. However, it's not possible to simply say "I am interested in FD X, event writable"; the events-of-interest per FD are still specified as an ORing of EPOLLIN and/or EPOLLOUT in one per-FD entry, whereas Event_wait_func is finer-grained than that. It is not possible to iterate through the kernel-stored events-of-interest set or obtain the existing events bit-mask so as to then |= or &= it. Therefore a mirroring data structure (such as the aforementioned unordered_map<> from FD to rd/wr/rd-wr) may be necessary in practice. In my (ygoldfel) experience using such a mirroring thing is typical in any case.

                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                  One tip: EPOLLONESHOT may be quite useful: It means you can limit your code to just doing epoll_ctl(...ADD) without requiring the counterpart epoll_ctl(...DEL) once the event does fire. (EPOLLET may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing we haven't investigated this sufficiently to make a statement.)

                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  Warning
                                                                                                                                                                                                                                                                                  When a sync_io-pattern-API object (e.g., transport::sync_io::Native_socket_stream or transport::struc::sync_io::Channel or session::sync_io::Server_session_adapter) is about to be destroyed (by you), it is very possible you have 1+ outstanding async-waits on 1+ native handles (FDs). You must deregister any earlier epoll_ctl(...ADD)s via epoll_ctl(...DEL), and you must do so before destroying the Flow-IPC object. Failure to do so can lead to unexpected chaos (such as explained here). Conversely doing so but after Flow-IPC object destructor has begun executing breaks the earlier-mentioned rule wherein a handle must not be touched at that point (and is likely invalid or refers to something else by then).
                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                  One tip: EPOLLONESHOT may be quite useful: It means you can limit your code to just doing epoll_ctl(...ADD) without requiring the counterpart epoll_ctl(...DEL) once the event does fire. (EPOLLET may be usable to decrease the number of epoll-ctl calls needed further, but as of this writing we haven't investigated this sufficiently to make a statement.)

                                                                                                                                                                                                                                                                                  However EPOLLONESHOT pertains to the entire descriptor, not one specific waited-on event (read or write). Therefore this optimization is helpful only if .events is being set to EPOLLIN or EPOLLOUT – not EPOLLIN | EPOLLOUT. Be careful. That said, it should be possible to use dup() to clone the descriptor in question; then use the original for (e.g.) EPOLLIN exclusively and the clone for EPOLLOUT exclusively resulting in a clean solution.

                                                                                                                                                                                                                                                                                  Integrating with boost.asio

                                                                                                                                                                                                                                                                                  Suppose your application is using boost.asio (possibly with flow.async to manage threads), with a flow::util::Task_engine::run() comprising the event loop, in proactor pattern fashion. (We would recommend just that, preferring it to an old-school reactor-pattern via [e]poll*() directly.) Your loop is asynchronously expressed, but you can still use the sync_io pattern to graft Flow-IPC operations into it, so that they are invoked synchronously, when you want, in the exact thread you want. In fact, doing so is significantly simpler than integrating with a reactor-style [e]poll*(). That is because, conceptually, each Event_wait_func invocation is essentially expressing the following boost.asio operation:

                                                                                                                                                                                                                                                                                  @@ -498,7 +501,7 @@

                                                                                                                                                                                                                                                                                  Rationale

                                                                                                                                                                                                                                                                                  diff --git a/doc/ipc_doc/generated/html_public/namespacemembers.html b/doc/ipc_doc/generated/html_public/namespacemembers.html index 59cc02668..48a3f1532 100644 --- a/doc/ipc_doc/generated/html_public/namespacemembers.html +++ b/doc/ipc_doc/generated/html_public/namespacemembers.html @@ -211,7 +211,7 @@

                                                                                                                                                                                                                                                                                  - u -

                                                                                                                                                                                                                                                                                    diff --git a/doc/ipc_doc/generated/html_public/namespacemembers_enum.html b/doc/ipc_doc/generated/html_public/namespacemembers_enum.html index aaa7d5516..07b53927e 100644 --- a/doc/ipc_doc/generated/html_public/namespacemembers_enum.html +++ b/doc/ipc_doc/generated/html_public/namespacemembers_enum.html @@ -71,7 +71,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespacemembers_func.html b/doc/ipc_doc/generated/html_public/namespacemembers_func.html index 2587d5aec..9f03a97c1 100644 --- a/doc/ipc_doc/generated/html_public/namespacemembers_func.html +++ b/doc/ipc_doc/generated/html_public/namespacemembers_func.html @@ -135,7 +135,7 @@

                                                                                                                                                                                                                                                                                    - s -

                                                                                                                                                                                                                                                                                      diff --git a/doc/ipc_doc/generated/html_public/namespacemembers_type.html b/doc/ipc_doc/generated/html_public/namespacemembers_type.html index 0855fb2ae..2ef5de539 100644 --- a/doc/ipc_doc/generated/html_public/namespacemembers_type.html +++ b/doc/ipc_doc/generated/html_public/namespacemembers_type.html @@ -167,7 +167,7 @@

                                                                                                                                                                                                                                                                                      - u -

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/namespacemembers_vars.html b/doc/ipc_doc/generated/html_public/namespacemembers_vars.html index 307e662b5..b9cb9102d 100644 --- a/doc/ipc_doc/generated/html_public/namespacemembers_vars.html +++ b/doc/ipc_doc/generated/html_public/namespacemembers_vars.html @@ -76,7 +76,7 @@ diff --git a/doc/ipc_doc/generated/html_public/namespaces.html b/doc/ipc_doc/generated/html_public/namespaces.html index 99fbdc867..373ba38ab 100644 --- a/doc/ipc_doc/generated/html_public/namespaces.html +++ b/doc/ipc_doc/generated/html_public/namespaces.html @@ -186,7 +186,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__handle_8cpp.html b/doc/ipc_doc/generated/html_public/native__handle_8cpp.html index 553f3c8ba..713df8690 100644 --- a/doc/ipc_doc/generated/html_public/native__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_public/native__handle_8cpp.html @@ -104,7 +104,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__handle_8hpp.html b/doc/ipc_doc/generated/html_public/native__handle_8hpp.html index aa1940f1a..08abd278a 100644 --- a/doc/ipc_doc/generated/html_public/native__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_public/native__handle_8hpp.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__handle__transport_8hpp.html b/doc/ipc_doc/generated/html_public/native__handle__transport_8hpp.html index ee3ad0335..06ad79dd7 100644 --- a/doc/ipc_doc/generated/html_public/native__handle__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_public/native__handle__transport_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__socket__stream_8cpp.html b/doc/ipc_doc/generated/html_public/native__socket__stream_8cpp.html index c252d8103..dda5f7640 100644 --- a/doc/ipc_doc/generated/html_public/native__socket__stream_8cpp.html +++ b/doc/ipc_doc/generated/html_public/native__socket__stream_8cpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__socket__stream_8hpp.html b/doc/ipc_doc/generated/html_public/native__socket__stream_8hpp.html index 16a6b6d62..a4f8430f2 100644 --- a/doc/ipc_doc/generated/html_public/native__socket__stream_8hpp.html +++ b/doc/ipc_doc/generated/html_public/native__socket__stream_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8cpp.html b/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8cpp.html index 66e37533d..c752d4881 100644 --- a/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8cpp.html +++ b/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8cpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8hpp.html b/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8hpp.html index 086cba061..9ce4d02aa 100644 --- a/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8hpp.html +++ b/doc/ipc_doc/generated/html_public/native__socket__stream__acceptor_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/pages.html b/doc/ipc_doc/generated/html_public/pages.html index 7d5bf6335..c2713c0ce 100644 --- a/doc/ipc_doc/generated/html_public/pages.html +++ b/doc/ipc_doc/generated/html_public/pages.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/persistent__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_public/persistent__mq__handle_8hpp.html index b863ae4c8..519bf574b 100644 --- a/doc/ipc_doc/generated/html_public/persistent__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_public/persistent__mq__handle_8hpp.html @@ -99,7 +99,7 @@ diff --git a/doc/ipc_doc/generated/html_public/pool__arena_8cpp.html b/doc/ipc_doc/generated/html_public/pool__arena_8cpp.html index 718ec2422..6380d1bba 100644 --- a/doc/ipc_doc/generated/html_public/pool__arena_8cpp.html +++ b/doc/ipc_doc/generated/html_public/pool__arena_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/pool__arena_8hpp.html b/doc/ipc_doc/generated/html_public/pool__arena_8hpp.html index 2b6c5b7ca..4449fbfd2 100644 --- a/doc/ipc_doc/generated/html_public/pool__arena_8hpp.html +++ b/doc/ipc_doc/generated/html_public/pool__arena_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/posix__mq__handle_8cpp.html b/doc/ipc_doc/generated/html_public/posix__mq__handle_8cpp.html index 71a563229..b089e2739 100644 --- a/doc/ipc_doc/generated/html_public/posix__mq__handle_8cpp.html +++ b/doc/ipc_doc/generated/html_public/posix__mq__handle_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/posix__mq__handle_8hpp.html b/doc/ipc_doc/generated/html_public/posix__mq__handle_8hpp.html index 9e0679ceb..80ab194d1 100644 --- a/doc/ipc_doc/generated/html_public/posix__mq__handle_8hpp.html +++ b/doc/ipc_doc/generated/html_public/posix__mq__handle_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/process__credentials_8cpp.html b/doc/ipc_doc/generated/html_public/process__credentials_8cpp.html index 1116ff4b3..68b4487e7 100644 --- a/doc/ipc_doc/generated/html_public/process__credentials_8cpp.html +++ b/doc/ipc_doc/generated/html_public/process__credentials_8cpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/process__credentials_8hpp.html b/doc/ipc_doc/generated/html_public/process__credentials_8hpp.html index 486d914be..d65a4de17 100644 --- a/doc/ipc_doc/generated/html_public/process__credentials_8hpp.html +++ b/doc/ipc_doc/generated/html_public/process__credentials_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/process__credentials__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/process__credentials__fwd_8hpp.html index 9a9bf99ec..b856fee68 100644 --- a/doc/ipc_doc/generated/html_public/process__credentials__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/process__credentials__fwd_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/protocol__negotiator_8cpp.html b/doc/ipc_doc/generated/html_public/protocol__negotiator_8cpp.html index 84e24e380..07be28def 100644 --- a/doc/ipc_doc/generated/html_public/protocol__negotiator_8cpp.html +++ b/doc/ipc_doc/generated/html_public/protocol__negotiator_8cpp.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/protocol__negotiator_8hpp.html b/doc/ipc_doc/generated/html_public/protocol__negotiator_8hpp.html index 1d2fe8ecb..5b4e5c1f7 100644 --- a/doc/ipc_doc/generated/html_public/protocol__negotiator_8hpp.html +++ b/doc/ipc_doc/generated/html_public/protocol__negotiator_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/safety_perms.html b/doc/ipc_doc/generated/html_public/safety_perms.html index a317cf21a..873e1d71e 100644 --- a/doc/ipc_doc/generated/html_public/safety_perms.html +++ b/doc/ipc_doc/generated/html_public/safety_perms.html @@ -147,7 +147,7 @@

                                                                                                                                                                                                                                                                                        Permissions level: GROUP_ACCESS

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/server__session__adapter_8hpp.html b/doc/ipc_doc/generated/html_public/server__session__adapter_8hpp.html index 41028372d..c11e2ad3c 100644 --- a/doc/ipc_doc/generated/html_public/server__session__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_public/server__session__adapter_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html index 0301283b8..7a8c3585a 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html index fd403af85..ab329d913 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic_8hpp.html index fe82c2c90..0b263fa16 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic__fwd_8hpp.html index 6651f38ef..dc627c5d3 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2classic_2classic__fwd_8hpp.html @@ -115,7 +115,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2shm_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2shm_8hpp.html index 817be2b69..dc76b7065 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2shm_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2shm_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_2shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/session_2shm_2shm__fwd_8hpp.html index 5a0f8b632..fb97e8f6d 100644 --- a/doc/ipc_doc/generated/html_public/session_2shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session_2shm_2shm__fwd_8hpp.html @@ -88,7 +88,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/session__fwd_8hpp.html index 7005db4ce..9eb8bd71f 100644 --- a/doc/ipc_doc/generated/html_public/session__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session__fwd_8hpp.html @@ -155,7 +155,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session__server__adapter_8hpp.html b/doc/ipc_doc/generated/html_public/session__server__adapter_8hpp.html index 671da75be..74dcd72b5 100644 --- a/doc/ipc_doc/generated/html_public/session__server__adapter_8hpp.html +++ b/doc/ipc_doc/generated/html_public/session__server__adapter_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/session_app_org.html b/doc/ipc_doc/generated/html_public/session_app_org.html index e7b1421fb..f0078b12f 100644 --- a/doc/ipc_doc/generated/html_public/session_app_org.html +++ b/doc/ipc_doc/generated/html_public/session_app_org.html @@ -536,7 +536,7 @@

                                                                                                                                                                                                                                                                                        What did we miss?

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/session_setup.html b/doc/ipc_doc/generated/html_public/session_setup.html index ad08a8eeb..c385bdcce 100644 --- a/doc/ipc_doc/generated/html_public/session_setup.html +++ b/doc/ipc_doc/generated/html_public/session_setup.html @@ -280,7 +280,7 @@

                                                                                                                                                                                                                                                                                        Client_session setup

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/setup.html b/doc/ipc_doc/generated/html_public/setup.html index 873198118..7169e95ee 100644 --- a/doc/ipc_doc/generated/html_public/setup.html +++ b/doc/ipc_doc/generated/html_public/setup.html @@ -122,7 +122,7 @@

                                                                                                                                                                                                                                                                                        Logging verbosity setting

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/shared__name_8cpp.html b/doc/ipc_doc/generated/html_public/shared__name_8cpp.html index 45110fb89..86359320f 100644 --- a/doc/ipc_doc/generated/html_public/shared__name_8cpp.html +++ b/doc/ipc_doc/generated/html_public/shared__name_8cpp.html @@ -140,7 +140,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shared__name_8hpp.html b/doc/ipc_doc/generated/html_public/shared__name_8hpp.html index 564c088f3..c212c1573 100644 --- a/doc/ipc_doc/generated/html_public/shared__name_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shared__name_8hpp.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shared__name__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/shared__name__fwd_8hpp.html index ef92532e1..30df7292c 100644 --- a/doc/ipc_doc/generated/html_public/shared__name__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shared__name__fwd_8hpp.html @@ -164,7 +164,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_public/shm_2classic_2classic_8hpp.html index d8b9ac332..b4fdb1842 100644 --- a/doc/ipc_doc/generated/html_public/shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shm_2classic_2classic_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/shm_2classic_2classic__fwd_8hpp.html index 1617509b5..e6d786fdf 100644 --- a/doc/ipc_doc/generated/html_public/shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shm_2classic_2classic__fwd_8hpp.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shm_2shm_8hpp.html b/doc/ipc_doc/generated/html_public/shm_2shm_8hpp.html index b6606d87a..bd6c0a4dd 100644 --- a/doc/ipc_doc/generated/html_public/shm_2shm_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shm_2shm_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/shm_2shm__fwd_8hpp.html index f3b18b7c2..7340d391f 100644 --- a/doc/ipc_doc/generated/html_public/shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/shm_2shm__fwd_8hpp.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/stateless__allocator_8hpp.html b/doc/ipc_doc/generated/html_public/stateless__allocator_8hpp.html index 7f6e43db5..ef0402911 100644 --- a/doc/ipc_doc/generated/html_public/stateless__allocator_8hpp.html +++ b/doc/ipc_doc/generated/html_public/stateless__allocator_8hpp.html @@ -107,7 +107,7 @@ diff --git a/doc/ipc_doc/generated/html_public/stl__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/stl__fwd_8hpp.html index 895bc8dfb..440e17043 100644 --- a/doc/ipc_doc/generated/html_public/stl__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/stl__fwd_8hpp.html @@ -100,7 +100,7 @@ diff --git a/doc/ipc_doc/generated/html_public/struc__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/struc__fwd_8hpp.html index 961559871..ab30f4dd4 100644 --- a/doc/ipc_doc/generated/html_public/struc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/struc__fwd_8hpp.html @@ -140,7 +140,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html index 97050937e..7c9cc21d8 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html index e0ecb07e8..018796970 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1error_1_1Code_01_4.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html index 466a90ab3..6410620f3 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jema89097d597bd27584f63171a1c12516e7.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html index 89bed5323..a6a2e5085 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1session_1_1shm_1_1arena__lend_1_1jemalloc_1_1error_1_1Code_01_4.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html index 3037f5b7f..77031b424 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html index 5dc67d841..ec7dde5ea 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1shm_1_1classic_1_1error_1_1Code_01_4.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html index ab6cd4552..000dede52 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html index e48bc0bc5..8c922bcb0 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1error_1_1Code_01_4.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html index 3dd1ee147..31da22175 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html index 3086c74ac..5ea7e571a 100644 --- a/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html +++ b/doc/ipc_doc/generated/html_public/structboost_1_1system_1_1is__error__code__enum_3_1_1ipc_1_1transport_1_1struc_1_1error_1_1Code_01_4.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App-members.html index 9707a7e11..f9718c76d 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App-members.html @@ -82,7 +82,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App.html index b15e59df4..008023263 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1App.html @@ -274,7 +274,7 @@

                                                                                                                                                                                                                                                                                        Conventions: Naming

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app-members.html index e74e56402..120618179 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app-members.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app.html index 73e2a9ab9..9643104d3 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Client__app.html @@ -197,7 +197,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app-members.html index e795112ea..643378d7c 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app-members.html @@ -87,7 +87,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app.html index 03b4cc406..30ef6dfe9 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1Server__app.html @@ -259,7 +259,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html index 2fae542c5..670f21922 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html index 87a5e38b1..a1062f364 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html index a7e913c6c..90bfb4a20 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html index 014f4fa1e..ee81c4ae3 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1arena__lend_1_1jemalloc_1_1Ipc__arena_01_4.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html index cfff13509..94f3085a3 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html index 0b63c1327..d8f003b46 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1session_1_1shm_1_1Arena__to__shm__session_3_01ipc_1_1shm_1_1classic_1_1Pool__arena_01_4.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html index 62ad8ef54..35c61354b 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html index 1b60a8902..348b45f61 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena.html @@ -96,7 +96,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html index 93321a437..6d431b4b6 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html index a38990ac9..a8666c1c6 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1shm_1_1Arena__to__borrower__allocator__arena_3_01classic_1_1Pool__arena_01_4.html @@ -94,7 +94,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html index 2d479f5f2..4324448ea 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result-members.html @@ -77,7 +77,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html index 009dfb632..e09f01476 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel_1_1Sync__op__state_1_1Request__result.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html index 1ad6ecb35..e2bcd7029 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__app__shm.html @@ -98,7 +98,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html index 82f324123..76bfea0f7 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__heap.html @@ -100,7 +100,7 @@

                                                                                                                                                                                                                                                                                        Relative benefits/limitations (versus SHM-based Serializa_via_*_shm diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html index 1bc94eaff..3184a75f2 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Channel__base_1_1Serialize__via__session__shm.html @@ -93,7 +93,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html index 3d1685667..50e3a8c0d 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html index d129e24e7..9bad1135a 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html @@ -120,7 +120,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html index d925d681a..fc0d43c16 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html index 87db5daee..3466f0af4 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html @@ -123,7 +123,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Null__session.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Null__session.html index 412695506..8046e7b37 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Null__session.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Null__session.html @@ -84,7 +84,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html index 2b77af7d5..7b83449a3 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html index ffdf72bed..2956e09b6 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__builder_1_1Config.html @@ -114,7 +114,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html index 64ec89bc7..3822ed202 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config-members.html @@ -80,7 +80,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html index 151ab45c7..6eb35869f 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1Struct__reader_1_1Config.html @@ -111,7 +111,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html index d46777acf..abac5a88b 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config-members.html @@ -81,7 +81,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html index e4ad8987f..8df5c88e2 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Builder_1_1Config.html @@ -118,7 +118,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html index 1f7bceff8..07aa9eae6 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config-members.html @@ -79,7 +79,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html index 740cb1d60..88da56467 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1transport_1_1struc_1_1shm_1_1Reader_1_1Config.html @@ -126,7 +126,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle-members.html b/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle-members.html index a138f1d48..e9b09f0eb 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle-members.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle-members.html @@ -90,7 +90,7 @@ diff --git a/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle.html b/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle.html index a5035df11..d8721dc7d 100644 --- a/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle.html +++ b/doc/ipc_doc/generated/html_public/structipc_1_1util_1_1Native__handle.html @@ -591,7 +591,7 @@

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__rcv_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__rcv_8hpp.html index 99e6191e7..f6ef71315 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__rcv_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__rcv_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__snd_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__snd_8hpp.html index dc6a820cd..dcdf01446 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__snd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2blob__stream__mq__snd_8hpp.html @@ -103,7 +103,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2blob__transport_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2blob__transport_8hpp.html index 1234ab8f4..657e66282 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2blob__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2blob__transport_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2native__handle__transport_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2native__handle__transport_8hpp.html index 21fde9d70..235f59923 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2native__handle__transport_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2native__handle__transport_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8cpp.html b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8cpp.html index 9e379bf28..3e84e724a 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8cpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8hpp.html index a345a0644..723782aa9 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8cpp.html b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8cpp.html index 754619152..acb0bb473 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8cpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8cpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8hpp.html index c7c00e4d5..02a163974 100644 --- a/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io_2native__socket__stream__acceptor_8hpp.html @@ -95,7 +95,7 @@ diff --git a/doc/ipc_doc/generated/html_public/sync__io__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/sync__io__fwd_8hpp.html index d3a4beeb5..a6c4af302 100644 --- a/doc/ipc_doc/generated/html_public/sync__io__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/sync__io__fwd_8hpp.html @@ -98,7 +98,7 @@ diff --git a/doc/ipc_doc/generated/html_public/todo.html b/doc/ipc_doc/generated/html_public/todo.html index d9cb1f499..b762e3288 100644 --- a/doc/ipc_doc/generated/html_public/todo.html +++ b/doc/ipc_doc/generated/html_public/todo.html @@ -113,7 +113,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html index 85c4a0873..1e808dee6 100644 --- a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc_8hpp.html @@ -105,7 +105,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html index 484d0074b..ede0c1286 100644 --- a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2arena__lend_2jemalloc_2jemalloc__fwd_8hpp.html @@ -109,7 +109,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic_8hpp.html b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic_8hpp.html index 899ccdd8c..10f94da7b 100644 --- a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic_8hpp.html @@ -102,7 +102,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html index 1513bd70b..2074bae98 100644 --- a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2classic_2classic__fwd_8hpp.html @@ -106,7 +106,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2shm__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2shm__fwd_8hpp.html index b81055c88..a18c22b72 100644 --- a/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2shm__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport_2struc_2shm_2shm__fwd_8hpp.html @@ -113,7 +113,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/transport__fwd_8hpp.html index 9713ab42f..f8a0d4d83 100644 --- a/doc/ipc_doc/generated/html_public/transport__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/transport__fwd_8hpp.html @@ -207,7 +207,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_core.html b/doc/ipc_doc/generated/html_public/transport_core.html index 27f031bef..f987182bc 100644 --- a/doc/ipc_doc/generated/html_public/transport_core.html +++ b/doc/ipc_doc/generated/html_public/transport_core.html @@ -76,7 +76,7 @@ diff --git a/doc/ipc_doc/generated/html_public/transport_shm.html b/doc/ipc_doc/generated/html_public/transport_shm.html index e9fba6602..b8b1dc475 100644 --- a/doc/ipc_doc/generated/html_public/transport_shm.html +++ b/doc/ipc_doc/generated/html_public/transport_shm.html @@ -398,7 +398,7 @@

                                                                                                                                                                                                                                                                                        What can you do with a borrowed (received) data structured in SHM?

                                                                                                                                                                                                                                                                                        diff --git a/doc/ipc_doc/generated/html_public/universes.html b/doc/ipc_doc/generated/html_public/universes.html index 763889f3d..81b09458a 100644 --- a/doc/ipc_doc/generated/html_public/universes.html +++ b/doc/ipc_doc/generated/html_public/universes.html @@ -76,7 +76,7 @@ diff --git a/doc/ipc_doc/generated/html_public/use__counted__object_8cpp.html b/doc/ipc_doc/generated/html_public/use__counted__object_8cpp.html index dcf88007e..2025b777e 100644 --- a/doc/ipc_doc/generated/html_public/use__counted__object_8cpp.html +++ b/doc/ipc_doc/generated/html_public/use__counted__object_8cpp.html @@ -85,7 +85,7 @@ diff --git a/doc/ipc_doc/generated/html_public/use__counted__object_8hpp.html b/doc/ipc_doc/generated/html_public/use__counted__object_8hpp.html index b4b711c96..c6f489115 100644 --- a/doc/ipc_doc/generated/html_public/use__counted__object_8hpp.html +++ b/doc/ipc_doc/generated/html_public/use__counted__object_8hpp.html @@ -92,7 +92,7 @@ diff --git a/doc/ipc_doc/generated/html_public/util__fwd_8hpp.html b/doc/ipc_doc/generated/html_public/util__fwd_8hpp.html index b2fb07897..430cfdaa8 100644 --- a/doc/ipc_doc/generated/html_public/util__fwd_8hpp.html +++ b/doc/ipc_doc/generated/html_public/util__fwd_8hpp.html @@ -173,7 +173,7 @@