diff options
| author | Garrett D'Amore <garrett@damore.org> | 2021-11-28 09:05:30 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2021-11-28 18:13:21 -0800 |
| commit | efa702387fcfa80ddd02e1a85f73c5b6f6ba1955 (patch) | |
| tree | 853d84a55f7b4f9c1c100a82443520a258cec9d8 /docs | |
| parent | 774e9375153d8a48bd1cbf654ca323656551b054 (diff) | |
| download | nng-efa702387fcfa80ddd02e1a85f73c5b6f6ba1955.tar.gz nng-efa702387fcfa80ddd02e1a85f73c5b6f6ba1955.tar.bz2 nng-efa702387fcfa80ddd02e1a85f73c5b6f6ba1955.zip | |
fixes #1536 nng_sendmsg and nng_recvmsg could be faster
fixes #1535 Desire nng_ctx_sendmsg and nng_ctx_recvmsg
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/man/libnng.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_ctx.5.adoc | 2 | ||||
| -rw-r--r-- | docs/man/nng_ctx_recvmsg.3.adoc | 63 | ||||
| -rw-r--r-- | docs/man/nng_ctx_sendmsg.3.adoc | 84 | ||||
| -rw-r--r-- | docs/man/nng_recvmsg.3.adoc | 5 |
5 files changed, 156 insertions, 3 deletions
diff --git a/docs/man/libnng.3.adoc b/docs/man/libnng.3.adoc index 712bf0fb..7475cdca 100644 --- a/docs/man/libnng.3.adoc +++ b/docs/man/libnng.3.adoc @@ -1,6 +1,6 @@ = libnng(3) // -// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2021 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // Copyright 2019 Devolutions <info@devolutions.net> // Copyright 2020 Dirac Research <robert.bielik@dirac.com> @@ -231,7 +231,10 @@ concurrent applications. |xref:nng_ctx_id.3.adoc[nng_ctx_id()]|get numeric context identifier |xref:nng_ctx_open.3.adoc[nng_ctx_open()]|create context |xref:nng_ctx_recv.3.adoc[nng_ctx_recv()]|receive message using context asynchronously +|xref:nng_ctx_recvmsg.3.adoc[nng_ctx_recvmsg()]|receive a message using context |xref:nng_ctx_send.3.adoc[nng_ctx_send()]|send message using context asynchronously +|xref:nng_ctx_sendmsg.3.adoc[nng_ctx_sendmsg()]|send a message using context + |xref:nng_ctx_set.3.adoc[nng_ctx_set()]|set context option |xref:nng_ctx_setopt.3.adoc[nng_ctx_setopt()]|set context option |=== diff --git a/docs/man/nng_ctx.5.adoc b/docs/man/nng_ctx.5.adoc index cc859c48..c8ab62cd 100644 --- a/docs/man/nng_ctx.5.adoc +++ b/docs/man/nng_ctx.5.adoc @@ -165,7 +165,9 @@ xref:nng_ctx_open.3.adoc[nng_ctx_open(3)], xref:nng_ctx_get.3.adoc[nng_ctx_get(3)], xref:nng_ctx_id.3.adoc[nng_ctx_id(3)], xref:nng_ctx_recv.3.adoc[nng_ctx_recv(3)], +xref:nng_ctx_recvmsg.3.adoc[nng_ctx_recvmsg(3)], xref:nng_ctx_send.3.adoc[nng_ctx_send(3)], +xref:nng_ctx_sendmsg.3.adoc[nng_ctx_sendmsg(3)], xref:nng_ctx_set.3.adoc[nng_ctx_set(3)], xref:nng_dialer.5.adoc[nng_dialer(5)], xref:nng_listener.5.adoc[nng_listener(5)], diff --git a/docs/man/nng_ctx_recvmsg.3.adoc b/docs/man/nng_ctx_recvmsg.3.adoc new file mode 100644 index 00000000..9651c34c --- /dev/null +++ b/docs/man/nng_ctx_recvmsg.3.adoc @@ -0,0 +1,63 @@ += nng_ctx_recvmsg(3) +// +// Copyright 2021 Staysail Systems, Inc. <info@staysail.tech> +// +// This document is supplied under the terms of the MIT License, a +// copy of which should be located in the distribution where this +// file was obtained (LICENSE.txt). A copy of the license may also be +// found online at https://opensource.org/licenses/MIT. +// + +== NAME + +nng_ctx_recvmsg - receive message using socket + +== SYNOPSIS + +[source, c] +---- +#include <nng/nng.h> + +int nng_ctx_recvmsg(nng_ctx ctx, nng_msg **msgp, int flags); +---- + +== DESCRIPTION + +The `nng_ctx_recvmsg()` receives a message on context _ctx_, storing the +received message at the location pointed to by _msgp_. + +The _flags_ may contain the following value: + +`NNG_FLAG_NONBLOCK`:: + The function returns immediately, even if no message is available. + Without this flag, the function will wait until a message is receivable + on the context _ctx_, or any configured timer expires. + +NOTE: The semantics of what receiving a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. + +== RETURN VALUES + +This function returns 0 on success, and non-zero otherwise. + +== ERRORS + +[horizontal] +`NNG_EAGAIN`:: The operation would block, but `NNG_FLAG_NONBLOCK` was specified. +`NNG_ECLOSED`:: The context or socket is not open. +`NNG_EINVAL`:: An invalid set of _flags_ was specified. +`NNG_ENOMEM`:: Insufficient memory is available. +`NNG_ENOTSUP`:: The protocol does not support receiving. +`NNG_ESTATE`:: The context cannot receive data in this state. +`NNG_ETIMEDOUT`:: The operation timed out. + +== SEE ALSO + +[.text-left] +xref:nng_msg_free.3.adoc[nng_msg_free(3)], +xref:nng_ctx_open.3.adoc[nng_ctx_open(3)], +xref:nng_ctx_recv.3.adoc[nng_ctx_recv(3)], +xref:nng_ctx_sendmsg.3.adoc[nng_ctx_sendmsg(3)], +xref:nng_strerror.3.adoc[nng_strerror(3)], +xref:nng_ctx.5.adoc[nng_ctx(5)], +xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_ctx_sendmsg.3.adoc b/docs/man/nng_ctx_sendmsg.3.adoc new file mode 100644 index 00000000..8e2c97f4 --- /dev/null +++ b/docs/man/nng_ctx_sendmsg.3.adoc @@ -0,0 +1,84 @@ += nng_ctx_sendmsg(3) +// +// Copyright 2021 Staysail Systems, Inc. <info@staysail.tech> +// +// This document is supplied under the terms of the MIT License, a +// copy of which should be located in the distribution where this +// file was obtained (LICENSE.txt). A copy of the license may also be +// found online at https://opensource.org/licenses/MIT. +// + +== NAME + +nng_ctx_sendmsg - send message using context + +== SYNOPSIS + +[source, c] +---- +#include <nng/nng.h> + +int nng_ctx_sendmsg(nng_ctx c, nng_msg *msg, int flags); +---- + +== DESCRIPTION + +The `nng_ctx_sendmsg()` sends message _msg_ using the context _ctx_. + +If the function returns zero, indicating it has accepted the message for +delivery, then the _msg_ is owned by the socket _s_, and the caller +must not make any further use of it. +The socket will free the message when it is finished. + +If the function returns non-zero, then it is the caller's responsibility +to dispose of the _msg_, which may include freeing it, sending it to +another socket, or simply trying again later. + +NOTE: The semantics of what sending a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. + +The _flags_ may contain the following value: + +`NNG_FLAG_NONBLOCK`:: + The function returns immediately, regardless of whether + the context is able to accept the data or not. + If the context is unable to accept the data (such as if backpressure exists + because the peers are consuming messages too slowly, or no peer is present), + then the function will return with `NNG_EAGAIN`. + If this flag is not specified, then the function will block if such a + condition exists. + + +NOTE: Regardless of the presence or absence of `NNG_FLAG_NONBLOCK`, there may +be queues between the sender and the receiver. +Furthermore, there is no guarantee that the message has actually been delivered. +Finally, with some protocols, the semantic is implicitly `NNG_FLAG_NONBLOCK`. + +== RETURN VALUES + +This function returns 0 on success, and non-zero otherwise. + +== ERRORS + +[horizontal] +`NNG_EAGAIN`:: The operation would block, but `NNG_FLAG_NONBLOCK` was specified. +`NNG_ECLOSED`:: The context or socket is not open. +`NNG_EINVAL`:: An invalid set of _flags_ was specified. +`NNG_EMSGSIZE`:: The value of _size_ is too large. +`NNG_ENOMEM`:: Insufficient memory is available. +`NNG_ENOTSUP`:: The protocol does not support sending. +`NNG_ESTATE`:: The context cannot send data in this state. +`NNG_ETIMEDOUT`:: The operation timed out. + +== SEE ALSO + +[.text-left] +xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)], +xref:nng_ctx_open.3.adoc[nng_ctx_open(3)], +xref:nng_ctx_recvmsg.3.adoc[nng_ctx_recvmsg(3)], +xref:nng_ctx_send.3.adoc[nng_ctx_send(3)], +xref:nng_sendmsg.3.adoc[nng_sendmsg(3)], +xref:nng_strerror.3.adoc[nng_strerror(3)], +xref:nng_msg.5.adoc[nng_msg(5)], +xref:nng_ctx.5.adoc[nng_ctx(5)], +xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_recvmsg.3.adoc b/docs/man/nng_recvmsg.3.adoc index 6f1fcea9..c502d650 100644 --- a/docs/man/nng_recvmsg.3.adoc +++ b/docs/man/nng_recvmsg.3.adoc @@ -1,6 +1,6 @@ = nng_recvmsg(3) // -// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2021 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // // This document is supplied under the terms of the MIT License, a @@ -11,7 +11,7 @@ == NAME -nng_recvmsg - recv message +nng_recvmsg - receive a message == SYNOPSIS @@ -67,4 +67,5 @@ xref:nng_msg_free.3.adoc[nng_msg_free(3)], xref:nng_recv.3.adoc[nng_recv(3)], xref:nng_sendmsg.3.adoc[nng_sendmsg(3)], xref:nng_strerror.3.adoc[nng_strerror(3)], +xref:nng_socket.5.adoc[nng_socket(5)], xref:nng.7.adoc[nng(7)] |
