git-subtree-dir: external/nng git-subtree-split: 29b73962b939a6fbbf6ea8d5d7680bb06d0eeb99
70 lines
2.4 KiB
Text
70 lines
2.4 KiB
Text
= nng_aio(5)
|
|
//
|
|
// Copyright 2018 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
|
|
// 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_aio - asynchronous I/O handle
|
|
|
|
== SYNOPSIS
|
|
|
|
[source, c]
|
|
----
|
|
#include <nng/nng.h>
|
|
|
|
typedef struct nng_aio nng_aio;
|
|
----
|
|
|
|
== DESCRIPTION
|
|
|
|
An `nng_aio`(((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 xref:nng_aio_cancel.3.adoc[`nng_aio_cancel()`]), as well setting a maximum
|
|
timeout for them to complete within
|
|
(see xref:nng_aio_set_timeout.3.adoc[`nng_aio_set_timeout()`]).
|
|
|
|
It is also possible to initiate an asynchronous operation, and wait for it to
|
|
complete using xref:nng_aio_wait.3.adoc[`nng_aio_wait()`].
|
|
|
|
These structures are created using the xref:nng_aio_alloc.3.adoc[`nng_aio_alloc()`],
|
|
and destroyed using xref:nng_aio_free.3.adoc[`nng_aio_free()`].
|
|
|
|
== SEE ALSO
|
|
|
|
[.text-left]
|
|
xref:nng_aio_abort.3.adoc[nng_aio_abort(3)],
|
|
xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)],
|
|
xref:nng_aio_cancel.3.adoc[nng_aio_cancel(3)],
|
|
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_set_timeout.3.adoc[nng_aio_set_timeout(3)],
|
|
xref:nng_aio_stop.3.adoc[nng_aio_stop(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)],
|
|
xref:nng.7.adoc[nng(7)]
|