SYNOPSIS
#include <nng/nng.h>
void nng_ctx_recv(nng_ctx ctx, nng_aio *aio);
DESCRIPTION
When a message is successfully received by the context, it is
stored in the aio by an internal call equivalent to
nng_aio_set_msg(), then the completion
callback on the aio is executed.
In this case, nng_aio_result() will
return zero.
The callback function is responsible for retrieving the message
and disposing of it appropriately.
| Failing to accept and dispose of messages in this case can lead to memory leaks. |
If for some reason the asynchronous receive cannot be completed
successfully (including by being canceled or timing out), then
the callback will still be executed,
but nng_aio_result() will be non-zero.
| The semantics of what receiving a message means varies from protocol to protocol, so examination of the protocol documentation is encouraged. |
RETURN VALUES
None. (The operation completes asynchronously.)
ERRORS
NNG_ECANCELED-
The operation was aborted.
NNG_ECLOSED-
The context ctx is not open.
NNG_ENOMEM-
Insufficient memory is available.
NNG_ENOTSUP-
The protocol for context ctx does not support receiving.
NNG_ESTATE-
The context ctx cannot receive data in this state.
NNG_ETIMEDOUT-
The receive timeout expired.