util: Add functions to simplify bool->virTristate(Bool|Switch) assignment

virTristateBoolFromBool and virTristateSwitchFromBool convert a boolean
to the correct enum value.
This commit is contained in:
Peter Krempa 2017-10-05 13:06:41 +02:00
parent 8ffbc1f700
commit d868366fe3
3 changed files with 25 additions and 0 deletions

View File

@ -2950,8 +2950,10 @@ virSetNonBlock;
virSetSockReuseAddr;
virSetUIDGID;
virSetUIDGIDWithCaps;
virTristateBoolFromBool;
virTristateBoolTypeFromString;
virTristateBoolTypeToString;
virTristateSwitchFromBool;
virTristateSwitchTypeFromString;
virTristateSwitchTypeToString;
virUpdateSelfLastChanged;

View File

@ -100,6 +100,26 @@ VIR_ENUM_IMPL(virTristateSwitch, VIR_TRISTATE_SWITCH_LAST,
"off")
virTristateBool
virTristateBoolFromBool(bool val)
{
if (val)
return VIR_TRISTATE_BOOL_YES;
else
return VIR_TRISTATE_BOOL_NO;
}
virTristateSwitch
virTristateSwitchFromBool(bool val)
{
if (val)
return VIR_TRISTATE_SWITCH_ON;
else
return VIR_TRISTATE_SWITCH_OFF;
}
#ifndef WIN32
int virSetInherit(int fd, bool inherit)

View File

@ -193,6 +193,9 @@ typedef enum {
VIR_ENUM_DECL(virTristateBool)
VIR_ENUM_DECL(virTristateSwitch)
virTristateBool virTristateBoolFromBool(bool val);
virTristateSwitch virTristateSwitchFromBool(bool val);
/* the two enums must be in sync to be able to use helpers interchangeably in
* some special cases */
verify((int)VIR_TRISTATE_BOOL_YES == (int)VIR_TRISTATE_SWITCH_ON);