nng_aio

NAME

nng_aio — asynchronous I/O handle

#include <nng/nng.h>

typedef struct nng_aio nng_aio;

DESCRIPTION

An nng_aio is an opaque structure used in conjunction with asynchronous I/O operations. Every asynchronous operation uses one of these structures, each of which can only be used with a single operation at a time.

Asynchronous operations are performed without blocking calling application threads. Instead the application registers a callback function to be executed when the operation is complete (whether successfully or not). This callback will be executed exactly once.

The asynchronous I/O framework also supports cancellation of operations that are already in progress (see nng_aio_cancel()), as well setting a maximum timeout for them to complete within (see nng_aio_set_timeout()).

It is also possible to initiate an asynchronous operation, and wait for it to complete nng_aio_wait().

These structures are created using the nng_aio_alloc(), and destroyed using nng_aio_free().

important

A given nng_aio can only have a single operation in progress at any given time. Attempts to reuse an nng_aio while another operation is in progress will generally cause a crash.

SEE ALSO

nng_aio_abort(), nng_aio_alloc(), nng_aio_cancel(), nng_aio_count(), nng_aio_free(), nng_aio_get_input(), nng_aio_get_msg(), nng_aio_get_output(), nng_aio_result(), nng_aio_set_input(), nng_aio_set_iov(), nng_aio_set_msg(), nng_aio_set_timeout(), nng_aio_stop(), nng_aio_wait(),