diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-02-05 11:17:15 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-02-05 11:17:15 -0800 |
| commit | 68f3fd06531455aec4b2332bed1592795e69c3fa (patch) | |
| tree | 667026719fe35a604a3ce5aa91f23522713a0f0e /docs/nng_aio_set_iov.adoc | |
| parent | 844ce972fed056e1c4e0517e43b814c62d68edce (diff) | |
| download | nng-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.adoc | 75 |
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} |
