[libvirt] [PATCH 1/2] Introduce virDomainYesNo enum type
Ján Tomko
jtomko at redhat.com
Tue Jul 15 10:41:45 UTC 2014
On 07/14/2014 06:58 PM, Eric Blake wrote:
> On 07/14/2014 10:40 AM, Daniel P. Berrange wrote:
>
>>>>> }
>>>>> - def->os.bios.useserial = VIR_DOMAIN_BIOS_USESERIAL_YES;
>>>>> + def->os.bios.useserial = VIR_DOMAIN_YES_NO_ENABLED;
>>>>> } else {
>>>>> - def->os.bios.useserial = VIR_DOMAIN_BIOS_USESERIAL_NO;
>>>>> + def->os.bios.useserial = VIR_DOMAIN_YES_NO_DISABLED;
>>>>> }
>
>>>>> if (def->data.spice.filetransfer)
>>>>> virBufferAsprintf(buf, "<filetransfer enable='%s'/>\n",
>>>>> - virDomainGraphicsSpiceAgentFileTransferTypeToString(def->data.spice.filetransfer));
>>>>> + virDomainYesNoTypeToString(def->data.spice.filetransfer));
>>>>> }
>>>>
>>>> I'm not really a fan of this cleanup, as IMHO the result is less clear &
>>>> harder to follow than the original code.
>>>
>>> How so? The original code was very repetitive, with multiple enums (all
>>> with long names) copying the same few enum elements. We're not painting
>>> ourselves into a corner - if any of the replaced enums ever grows a
>>> third value (such as "on", "hybrid", "off"), then we just break that one
>>> enum back into a named list rather than using the generic on/off enum.
>>> I'm actually in favor of this cleanup.
>>
>> Specifically a enum constant name like YES_NO_DISABLED is just awful IMHO
>> compared to the original desriptive name.
Agreed, my constant names are awful. But it's the original type names I don't
like: I'd expect virDomainGraphicsSpiceAgentFileTransfer to be an enum of
different modes of transfer, not just default/no/yes.
>
> Is it just a matter of coming up with a better name? Maybe:
>
> VIR_TRISTATE_ABSENT = 0,
> VIR_TRISTATE_NO,
> VIR_TRISTATE_YES,
Without the DOMAIN prefix, this could be used for network_conf.c too.
How about:
VIR_TRISTATE_SWITCH_ABSENT = 0,
VIR_TRISTATE_SWITCH_OFF
VIR_TRISTATE_SWITCH_ON
for the other enum? (And maybe VIR_TRISTATE_BOOL for the first one?)
>
> def->os.bios.useserial = VIR_TRISTATE_NO;
>
> if (def->data.spice.filetransfer) {
> virBufferAsprintf(buf, "<filetransfer enable='%s'/>\n",
> virTristateToString(def->data.spice.filetransfer));
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140715/dfc5383e/attachment-0001.sig>
More information about the libvir-list
mailing list