= nng_aio_count(3)
//
// 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_count - return number of bytes transferred

== SYNOPSIS

[source, c]
----
#include <nng/nng.h>

size_t nng_aio_count(nng_aio *aio);
----

== DESCRIPTION

The `nng_aio_count()` returns the number of bytes transferred by the
asynchronous operation associated with the handle _aio_.

Some asynchronous operations do not provide meaningful data for this
function; for example operations that establish connections do not
transfer user data (they may transfer protocol data though) -- in this case
this function will generally return zero.

This function is most useful when used with operations that make use of
of a scatter/gather vector (set by xref:nng_aio_set_iov.3.adoc[`nng_aio_set_iov()`]).

NOTE: The return value from this function is undefined if the operation
has not completed yet.
Either call this from the handle's completion callback,
or after waiting for the operation to complete with
xref:nng_aio_wait.3.adoc[`nng_aio_wait()`].

== RETURN VALUES

The number of bytes transferred by the operation.

== ERRORS

None.

== SEE ALSO

[.text-left]
xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)],
xref:nng_aio_result.3.adoc[nng_aio_result(3)],
xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov(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)]
