= nng_stat_type(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_stat_type - get statistic type

== SYNOPSIS

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

typedef struct nng_stat nng_stat;

enum {
        NNG_STAT_SCOPE,
        NNG_STAT_LEVEL,
        NNG_STAT_COUNTER,
        NNG_STAT_STRING,
        NNG_STAT_BOOLEAN,
        NNG_STAT_ID
};

int nng_stat_type(nng_stat *stat);
----

== DESCRIPTION

The `nng_stat_type()` function returns the type of the statistic _stat_.

The returned type will be one of the following values:

((`NNG_STAT_SCOPE`))::
This is a placeholder providing scope, and carries no value on its own.
Instead it is a parent node with child statistics (see
xref:nng_stat_child.3.adoc[`nng_stat_child()`].)

((`NNG_STAT_LEVEL`))::
This is a numeric statistic, but its value is a level, so rate calculations
based on changes in this value should not be considered significant.

((`NNG_STAT_COUNTER`))::
This is a numeric statistic that represents an increasing count, typically
of events, messages, or bytes.
Frequently, it is interesting to consider changes in this statistic divided
by time to obtain a rate.
(For example, throughput might be calculated as changes in a byte counter
divided by the interval over which the change occurred.)

((`NNG_STAT_STRING`))::
This is a string, and carries no numeric value.
Instead the xref:nng_stat_string.3.adoc[`nng_stat_string()`] function
should be used to obtain the value.

((`NNG_STAT_BOOLEAN`))::
This is a boolean value.
The xref:nng_stat_value.3.adoc[`nng_stat_value()`] function will return zero
to represent a `false` value, and one to represent a `true` value.

((`NNG_STAT_ID`)):
The statistic is a numeric ID.
These are generally immutable values that represent an identity that might
be used with another interface.

TIP: For `NNG_STAT_COUNTER` and `NNG_STAT_LEVEL` statistics, the
xref:nng_stat_unit.3.adoc[`nng_stat_unit()`] function will provide more
detail about the units measured by the static.

== RETURN VALUES

The statistic type for _stat_.

== ERRORS

None.

== SEE ALSO

[.text-left]
xref:libnng.3.adoc[libnng(3)],
xref:nng_stats_get.3.adoc[nng_stats_get(3)],
xref:nng_stat_string.3.adoc[nng_stat_string(3)],
xref:nng_stat_unit.3.adoc[nng_stat_unit(3)],
xref:nng_stat_value.3.adoc[nng_stat_value(3)],
xref:nng_stat.5.adoc[nng_stat(5)],
xref:nng.7.adoc[nng(7)]
