This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.7.3. See the documentation for v1.7.3 for the most up-to-date information.

nng_aio_set_iov(3)

NAME

nng_aio_set_iov - set scatter/gather vector

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.

A maximum of four (4) nng_iov members may be supplied.

Earlier versions of the library could accept longer scatter-gather lists. However, no known consumers have ever needed a scatter-gather list longer than 4 vectors. As a result, the implementation limit was reduced, and heap allocations which could fail were removed.

RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

ERRORS

NNG_EINVAL

Value of specified niov is too large.

SEE ALSO