mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
util: typedparam: Move and unexport virTypedParameterAssignFromStr
The function is only used as a helper in virTypedParamsAddFromString. Make it static and move it to virtypedparam-public.c. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
e13c551e9f
commit
e532aa6170
@ -3229,7 +3229,6 @@ virTPMSwtpmSetupFeatureTypeFromString;
|
|||||||
|
|
||||||
# util/virtypedparam.h
|
# util/virtypedparam.h
|
||||||
virTypedParameterAssign;
|
virTypedParameterAssign;
|
||||||
virTypedParameterAssignFromStr;
|
|
||||||
virTypedParameterToString;
|
virTypedParameterToString;
|
||||||
virTypedParameterTypeFromString;
|
virTypedParameterTypeFromString;
|
||||||
virTypedParameterTypeToString;
|
virTypedParameterTypeToString;
|
||||||
|
@ -25,6 +25,101 @@
|
|||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_NONE
|
#define VIR_FROM_THIS VIR_FROM_NONE
|
||||||
|
|
||||||
|
/* Assign name, type, and convert the argument from a const string.
|
||||||
|
* In case of a string, the string is copied.
|
||||||
|
* Return 0 on success, -1 after an error message on failure. */
|
||||||
|
static int
|
||||||
|
virTypedParameterAssignFromStr(virTypedParameterPtr param,
|
||||||
|
const char *name,
|
||||||
|
int type,
|
||||||
|
const char *val)
|
||||||
|
{
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (!val) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG, _("NULL value for field '%s'"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (virStrcpyStatic(param->field, name) < 0) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, _("Field name '%s' too long"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
param->type = type;
|
||||||
|
switch (type) {
|
||||||
|
case VIR_TYPED_PARAM_INT:
|
||||||
|
if (virStrToLong_i(val, NULL, 10, ¶m->value.i) < 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid value for field '%s': expected int"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_UINT:
|
||||||
|
if (virStrToLong_ui(val, NULL, 10, ¶m->value.ui) < 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid value for field '%s': "
|
||||||
|
"expected unsigned int"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_LLONG:
|
||||||
|
if (virStrToLong_ll(val, NULL, 10, ¶m->value.l) < 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid value for field '%s': "
|
||||||
|
"expected long long"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_ULLONG:
|
||||||
|
if (virStrToLong_ull(val, NULL, 10, ¶m->value.ul) < 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid value for field '%s': "
|
||||||
|
"expected unsigned long long"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_DOUBLE:
|
||||||
|
if (virStrToDouble(val, NULL, ¶m->value.d) < 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid value for field '%s': "
|
||||||
|
"expected double"),
|
||||||
|
name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_BOOLEAN:
|
||||||
|
if (STRCASEEQ(val, "true") || STREQ(val, "1")) {
|
||||||
|
param->value.b = true;
|
||||||
|
} else if (STRCASEEQ(val, "false") || STREQ(val, "0")) {
|
||||||
|
param->value.b = false;
|
||||||
|
} else {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("Invalid boolean value for field '%s'"), name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VIR_TYPED_PARAM_STRING:
|
||||||
|
if (VIR_STRDUP(param->value.s, val) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
_("unexpected type %d for field %s"), type, name);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
cleanup:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* The following APIs are public and their signature may never change. */
|
/* The following APIs are public and their signature may never change. */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -260,99 +260,6 @@ virTypedParameterAssign(virTypedParameterPtr param, const char *name,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Assign name, type, and convert the argument from a const string.
|
|
||||||
* In case of a string, the string is copied.
|
|
||||||
* Return 0 on success, -1 after an error message on failure. */
|
|
||||||
int
|
|
||||||
virTypedParameterAssignFromStr(virTypedParameterPtr param, const char *name,
|
|
||||||
int type, const char *val)
|
|
||||||
{
|
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
if (!val) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG, _("NULL value for field '%s'"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (virStrcpyStatic(param->field, name) < 0) {
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, _("Field name '%s' too long"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
param->type = type;
|
|
||||||
switch (type) {
|
|
||||||
case VIR_TYPED_PARAM_INT:
|
|
||||||
if (virStrToLong_i(val, NULL, 10, ¶m->value.i) < 0) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid value for field '%s': expected int"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_UINT:
|
|
||||||
if (virStrToLong_ui(val, NULL, 10, ¶m->value.ui) < 0) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid value for field '%s': "
|
|
||||||
"expected unsigned int"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_LLONG:
|
|
||||||
if (virStrToLong_ll(val, NULL, 10, ¶m->value.l) < 0) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid value for field '%s': "
|
|
||||||
"expected long long"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_ULLONG:
|
|
||||||
if (virStrToLong_ull(val, NULL, 10, ¶m->value.ul) < 0) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid value for field '%s': "
|
|
||||||
"expected unsigned long long"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_DOUBLE:
|
|
||||||
if (virStrToDouble(val, NULL, ¶m->value.d) < 0) {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid value for field '%s': "
|
|
||||||
"expected double"),
|
|
||||||
name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_BOOLEAN:
|
|
||||||
if (STRCASEEQ(val, "true") || STREQ(val, "1")) {
|
|
||||||
param->value.b = true;
|
|
||||||
} else if (STRCASEEQ(val, "false") || STREQ(val, "0")) {
|
|
||||||
param->value.b = false;
|
|
||||||
} else {
|
|
||||||
virReportError(VIR_ERR_INVALID_ARG,
|
|
||||||
_("Invalid boolean value for field '%s'"), name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case VIR_TYPED_PARAM_STRING:
|
|
||||||
if (VIR_STRDUP(param->value.s, val) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
|
||||||
_("unexpected type %d for field %s"), type, name);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
cleanup:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virTypedParamsReplaceString:
|
* virTypedParamsReplaceString:
|
||||||
|
@ -85,12 +85,6 @@ int virTypedParameterAssign(virTypedParameterPtr param, const char *name,
|
|||||||
int type, /* TYPE arg */ ...)
|
int type, /* TYPE arg */ ...)
|
||||||
ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_RETURN_CHECK;
|
||||||
|
|
||||||
int virTypedParameterAssignFromStr(virTypedParameterPtr param,
|
|
||||||
const char *name,
|
|
||||||
int type,
|
|
||||||
const char *val)
|
|
||||||
ATTRIBUTE_RETURN_CHECK;
|
|
||||||
|
|
||||||
int virTypedParamsReplaceString(virTypedParameterPtr *params,
|
int virTypedParamsReplaceString(virTypedParameterPtr *params,
|
||||||
int *nparams,
|
int *nparams,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user