[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