# nng_stat_type(3) Manual Page

## NAME

nng_stat_type - get statistic type

## SYNOPSIS

    #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 `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 `nng_stat_string()` function should be used to obtain the value.

`NNG_STAT_BOOLEAN`

  This is a boolean value. The `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.

| For `NNG_STAT_COUNTER` and `NNG_STAT_LEVEL` statistics, the `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

libnng(3), nng_stats_get(3), nng_stat_string(3), nng_stat_unit(3), nng_stat_value(3), nng_stat(5), nng(7)