[Xcb] XKEYBOARD protocol definition
Peter Harris
pharris at opentext.com
Wed Nov 11 15:45:00 PST 2009
Josh Triplett wrote:
> On Wed, Nov 11, 2009 at 04:41:06PM -0500, Peter Harris wrote:
>> Eamon Walsh wrote:
>>> Going off on a tangent here: if popcount goes in, then we don't need the
>>> <valueparam> element in the schema anymore. The reason is that the
>>> following two snippets are identical:
>>>
>>> <valueparam value-mask-type="CARD32"
>>> value-mask-name="value-mask"
>>> value-list-name="value-list" />
>>>
>>> <field type="CARD32" name="value-mask" />
>>> <list name="value-list" type="CARD32">
>>> <popcount><fieldref>value-mask</fieldref></popcount>
>>> </list>
>
> Yes, *please*. I'd love to see valueparam die in favor of something
> simpler and more general.
>
>> All true. Even better would be to use
>> <switch>(<bitcase></bitcase)+</switch> to replace valueparam, to allow
>> generation of code that replaces xcb/util/aux.
>
> Both seem useful, I think, depending on the situation. If you truly
> just have a set of identical values and a bitmask indicating which ones
> you've supplied, a list with length given by a <popcount> seems perfect.
Agreed.
> If you want to supply slightly different values for different cases, or
> otherwise do anything out of the ordinary, <bitcase> seems preferable.
>
> Can you give an example of replacing a standard <valueparam> with
> <bitcase>?
By using <bitcase>, you can vary the type of the data used. In a
hypothetical future server-side XCB, you could auto-generate boilerplate
that checks to make sure that CreateWindow/BorderPixmap is, in fact, a
valid Pixmap XID. This may also be useful for type-checking bindings
(perhaps Haskell - Antoine?).
For a slightly less hypothetical example, you can link the appropriate
enums to individual fields. This will let the Wireshark dissector
pretty-print RENDER/ChangePicture/repeat as "RepeatReflect" instead of
"3". Once I update the wireshark dissector generator, that is. (RENDER
example used instead of CreateWindow, since core X11 is still dissected
by the legacy X11 dissector in Wireshark.)
Peter Harris
--
Open Text Connectivity Solutions Group
Peter Harris http://connectivity.opentext.com/
Research and Development Phone: +1 905 762 6001
pharris at opentext.com Toll Free: 1 877 359 4866
More information about the Xcb
mailing list