diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-10-19 09:40:15 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-10-19 09:40:15 -0700 |
| commit | 8f42f78490fd14b2e6d46d09ec395fbdad5495ce (patch) | |
| tree | 3f4063b73ef4392eb5e216bfc036412d8716be92 /docs/ref/api/aio/nng_aio.md | |
| parent | caa25a822565687833ffe6caf211a55c0cb95a65 (diff) | |
| download | nng-8f42f78490fd14b2e6d46d09ec395fbdad5495ce.tar.gz nng-8f42f78490fd14b2e6d46d09ec395fbdad5495ce.tar.bz2 nng-8f42f78490fd14b2e6d46d09ec395fbdad5495ce.zip | |
Conversion of nng_aio to mdbook in progress
Diffstat (limited to 'docs/ref/api/aio/nng_aio.md')
| -rw-r--r-- | docs/ref/api/aio/nng_aio.md | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/ref/api/aio/nng_aio.md b/docs/ref/api/aio/nng_aio.md new file mode 100644 index 00000000..0fdb6ca1 --- /dev/null +++ b/docs/ref/api/aio/nng_aio.md @@ -0,0 +1,65 @@ +# nng_aio + +## NAME + +nng_aio - asynchronous I/O handle + +## SYNOPSIS + +```c +#include <nng/nng.h> + +typedef struct nng_aio nng_aio; +``` + +## DESCRIPTION + +An {{i:`nng_aio`}}{{hi:aio}} is an opaque structure used in conjunction with +{{i: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`][aio_cancel]), as well setting a maximum +timeout for them to complete within +(see [`nng_aio_set_timeout`][nng_aio_set_timeout]). + +It is also possible to initiate an asynchronous operation, and wait for it to +complete using [`nng_aio_wait`][nng_aio_wait]. + +These structures are created using [`nng_aio_alloc`][nng_aio_alloc], +and destroyed using [`nng_aio_free`][nng_aio_free]. + +## SEE ALSO + +[nng_aio_cancel][aio_cancel], +[nng_aio_alloc][nng_aio_alloc], +[nng_aio_free][nng_aio_free], +[nng_aio_set_timeout][nng_aio_set_timeout] + +<!-- +xref:nng_aio_count.3.adoc[nng_aio_count(3)], +xref:nng_aio_free.3.adoc[nng_aio_free(3)], +xref:nng_aio_get_input.3.adoc[nng_aio_get_input(3)], +xref:nng_aio_get_msg.3.adoc[nng_aio_get_msg(3)], +xref:nng_aio_get_output.3.adoc[nng_aio_get_output(3)], +xref:nng_aio_result.3.adoc[nng_aio_result(3)], +xref:nng_aio_set_input.3.adoc[nng_aio_set_input(3)], +xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov(3)], +xref:nng_aio_set_msg.3.adoc[nng_aio_set_msg(3)], +xref:nng_aio_wait.3.adoc[nng_aio_wait(3)], +xref:nng_strerror.3.adoc[nng_strerror(3)], +xref:nng_aio.5.adoc[nng_aio(5)], +--> + +[aio_cancel]: nng_aio_cancel.md +[nng_aio_alloc]: nng_aio_alloc.md +[nng_aio_free]: nng_aio_free.md +[nng_aio_set_timeout]: nng_aio_set_timeout.md +[nng_aio_wait]: TODO.md |
