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. |