SYNOPSIS
#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:
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.