#include "funcparam.h"
#include "datafunc.h"
#include "zbxtrends.h"
#include "zbxnum.h"
#include "zbxexpr.h"
#include "zbxtime.h"
int get_function_parameter_uint64(const char *parameters, int Nparam, zbx_uint64_t *value)
{
char *parameter;
int ret = FAIL;
zabbix_log(LOG_LEVEL_DEBUG, "In %s() parameters:'%s' Nparam:%d", __func__, parameters, Nparam);
if (NULL == (parameter = zbx_function_get_param_dyn(parameters, Nparam)))
goto out;
if (SUCCEED == (ret = zbx_is_uint64(parameter, value)))
zabbix_log(LOG_LEVEL_DEBUG, "%s() value:" ZBX_FS_UI64, __func__, *value);
zbx_free(parameter);
out:
zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%s", __func__, zbx_result_string(ret));
return ret;
}
int get_function_parameter_float(const char *parameters, int Nparam, unsigned char flags, double *value)
{
char *parameter;
int ret = FAIL;
zabbix_log(LOG_LEVEL_DEBUG, "In %s() parameters:'%s' Nparam:%d", __func__, parameters, Nparam);
if (NULL == (parameter = zbx_function_get_param_dyn(parameters, Nparam)))
goto out;
if (SUCCEED == (ret = zbx_is_double_suffix(parameter, flags)))
{
*value = zbx_str2double(parameter);
zabbix_log(LOG_LEVEL_DEBUG, "%s() value:" ZBX_FS_DBL, __func__, *value);
}
zbx_free(parameter);
out:
zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%s", __func__, zbx_result_string(ret));
return ret;
}
int get_function_parameter_str(const char *parameters, int Nparam, char **value)
{
int ret = FAIL;
zabbix_log(LOG_LEVEL_DEBUG, "In %s() parameters:'%s' Nparam:%d", __func__, parameters, Nparam);
if (NULL == (*value = zbx_function_get_param_dyn(parameters, Nparam)))
goto out;
zabbix_log(LOG_LEVEL_DEBUG, "%s() value:'%s'", __func__, *value);
ret = SUCCEED;
out:
zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%s", __func__, zbx_result_string(ret));
return ret;
}