mirror of
https://github.com/openappsec/attachment.git
synced 2025-06-28 16:41:03 +03:00
34 lines
1.6 KiB
C
34 lines
1.6 KiB
C
#ifndef __NANO_ATTACHMENT_METRIC_H__
|
|
#define __NANO_ATTACHMENT_METRIC_H__
|
|
|
|
#include "nano_attachment_common.h"
|
|
#include "nano_initializer.h"
|
|
|
|
///
|
|
/// @brief Updates a specified metric field of the NanoAttachment structure.
|
|
///
|
|
/// This function updates the value of a specified metric field within the NanoAttachment structure.
|
|
/// It selects the appropriate update strategy (counter, average, maximum, or minimum) based on the type
|
|
/// of the metric provided. For average, maximum, and minimum metrics, the function updates the metric value
|
|
/// only if the provided value is non-zero. For counter metrics, the value is always incremented.
|
|
///
|
|
/// @param attachment A pointer to the NanoAttachment structure.
|
|
/// @param metric_type The type of the metric to be updated. This determines the update strategy used.
|
|
/// @param value The value to update the metric with. For average, maximum, and minimum metrics,
|
|
/// this value must be non-zero to be considered.
|
|
///
|
|
void updateMetricField(NanoAttachment *attachment, AttachmentMetricType metric_type, uint64_t value);
|
|
|
|
///
|
|
/// @brief Resets all metric data fields of the NanoAttachment structure.
|
|
///
|
|
/// This function resets the metric data and the average data divisor fields within the NanoAttachment structure
|
|
/// to zero. It is typically used to initialize or clear the metric data before starting a new measurement session
|
|
/// or after completing an existing session.
|
|
///
|
|
/// @param attachment A pointer to the NanoAttachment structure.
|
|
///
|
|
void reset_metric_data(NanoAttachment *attachment);
|
|
|
|
#endif // __NANO_ATTACHMENT_METRIC_H__
|