aboutsummaryrefslogtreecommitdiff
path: root/docs/nng_aio_set_iov.adoc
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-02-05 11:17:15 -0800
committerGarrett D'Amore <garrett@damore.org>2018-02-05 11:17:15 -0800
commit68f3fd06531455aec4b2332bed1592795e69c3fa (patch)
tree667026719fe35a604a3ce5aa91f23522713a0f0e /docs/nng_aio_set_iov.adoc
parent844ce972fed056e1c4e0517e43b814c62d68edce (diff)
downloadnng-68f3fd06531455aec4b2332bed1592795e69c3fa.tar.gz
nng-68f3fd06531455aec4b2332bed1592795e69c3fa.tar.bz2
nng-68f3fd06531455aec4b2332bed1592795e69c3fa.zip
Document nng_aio_xxx asynchronous I/O API.
Diffstat (limited to 'docs/nng_aio_set_iov.adoc')
-rw-r--r--docs/nng_aio_set_iov.adoc75
1 files changed, 75 insertions, 0 deletions
diff --git a/docs/nng_aio_set_iov.adoc b/docs/nng_aio_set_iov.adoc
new file mode 100644
index 00000000..d612e9a8
--- /dev/null
+++ b/docs/nng_aio_set_iov.adoc
@@ -0,0 +1,75 @@
+= nng_aio_set_iov(3)
+:doctype: manpage
+:manmanual: nng
+:mansource: nng
+:manvolnum: 3
+:copyright: Copyright 2018 mailto:info@staysail.tech[Staysail Systems, Inc.] + \
+ Copyright 2018 mailto:info@capitar.com[Capitar IT Group BV] + \
+ {blank} + \
+ This document is supplied under the terms of the \
+ https://opensource.org/licenses/MIT[MIT License].
+
+== NAME
+
+nng_aio_set_iov - set scatter/gather vector
+
+== SYNOPSIS
+
+[source, c]
+-----------
+#include <nng/nng.h>
+
+int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);
+-----------
+
+== DESCRIPTION
+
+The `nng_aio_set_iov()` function sets a scatter/gather vector _iov_ on the
+handle _aio_.
+
+The _iov_ is a pointer to an array of _niov_ `nng_iov` structures, which have
+the following definition:
+
+[source, c]
+----
+ typedef struct nng_iov {
+ void * iov_buf;
+ size_t iov_len;
+ };
+----
+
+The _iov_ is copied into storage in the _aio_ itself, so that callers
+may use stack allocated `nng_iov` structures. The values pointed to
+by the `iov_buf` members are *not* copied by this function though.
+
+Up to four `nng_iov` members may be supplied without causing any
+allocations, and thus this operation is guaranteed to succeed for
+values of _niov_ less than four.
+
+More than four (4) `nng_iov` members may be supplied, but this may require
+heap allocations, and so the operation may fail with `NNG_ENOMEM`.
+Additionally, not every operation can support longer vectors; the
+actual limit is determined by the system, but is generally at least
+sixteen (16). Furthermore, values for _niov_ larger than sixty-four (64) will
+generally result in `NNG_EINVAL`.
+
+== RETURN VALUES
+
+This function returns 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+`NNG_ENOMEM`:: Insufficient free memory to perform operation.
+`NNG_EINVAL`:: Value of specified _niov_ is too large.
+
+== SEE ALSO
+
+<<nng_aio_alloc#,nng_aio_alloc(3)>>,
+<<nng_aio_cancel#,nng_aio_cancel(3)>>,
+<<nng_aio_count#,nng_aio_count(3)>>,
+<<nng_aio_result#,nng_aio_result(3)>>,
+<<nng#,nng(7)>>
+
+== COPYRIGHT
+
+{copyright}