[Xcb] XCB naming conventions (progress)

Vincent Torri vtorri at univ-evry.fr
Sat Sep 16 10:19:10 PDT 2006


>
> This enumeration is used similarly to XCBMapIndex.  Perhaps we could name it 
> XCBButtonIndex.

yes

>
> My convention was to name the enumerations so that the generated names 
> matched the X.h names as closely as possible to ease migration. (Almost all 
> of the enumerations, including XCBButton, match X.h but with the "XCB" 
> prefix.) I had to change some enumeration names to avoid conflicts with the 
> error numbers, which don't otherwise have a distinguishing suffix (a bug, in 
> my opinion).
>
> (This brings up another quibble. Why do we have a separate named structure 
> for every error returned when they are all structurally identical? I propose 
> a single XCBCoreError structure instead.)
>
>> 
>> 2) same problem with XCBHOST and XCBHost. Although I don't have an idea for 
>> the enum name. X.h does not describe it well.
>
> This for the "mode" member of the XCBChangeHosts structures and requests.
>
> One solution is to leave the enumerations unnamed, to avoid polluting the 
> namespace. This has precedent in Apple's Carbon and pre-Carbon APIs. Nothing 
> else in XCB refers to them. However, this closes the door on future 
> type-safety and protocol documentation work.
>
> Another solution is to reuse the XCBSetMode enumeration already used for 
> XCBChangeSaveSet. This works nicely because it matches the "mode" member for 
> a bit of self-documentation.  (I think this is my preference.)
>
> Another solution is to break with X.h and try instead to match the member 
> name where the enumeration is used. In this case, that would be XCBHostMode { 
> XCBHostModeInsert, XCBHostModeDelete }.  This may make the most sense, since 
> this whole naming change will completely break with X.h (which uses 
> StudlyCaps thoughout).
>
> You suggested another solution, use a different suffix for enumerations, _e.

I wait for others' opinion

>> 
>> 3) I have a technical problem with XSLT : some requests ask for pointer and 
>> its length. I automatically add '_t' to the name of the type, but there is 
>> a problem in case the type is char and void. The xsl code is :
>>
>>      <xsl:attribute name="type">
>>        <xsl:text>const </xsl:text>
>>        <xsl:call-template name="canonical-type-name" />
>>        <xsl:text>_t *</xsl:text>
>>      </xsl:attribute>
>> 
>> So I would like to test the value returned by the template and add if only 
>> if the value of canonical-type-name is different from char and void
>> 
>> Does someone have an idea on how to do that ?

it's solved

>> 
>> Remarks:
>> 
>> 1) in xproto.xml, there is the structure SetupReq. Shouldn't iit be renamed 
>> as SetupRequest ?
>
> Yes. I think Jamey also wanted to expand all "Req" to "Request" and all "Rep" 
> to "Reply" as well.

ok

>> 
>> 2) for enum dans define values, I use upper case letter, with words 
>> separated with underscores. Is it ok for everybody ?
>
> I'm not  sure what you mean here. Could you give an example?

instead of :

#define XCBTotoTata

I propose

#define XCB_TOTO_TATA

same for enum

> Another thing: once renaming in xproto is complete, will we want to use the 
> same naming conventions on the symbols in xcb.h?

I would like to. In fact, i've already done it :) I think that xcb api 
must be consistent with the protocol one. It would be strange to have :

XCBConnect (c);
w = xcb_window_new (c);

imho.

I've open a blocker bug in bugzilla, about that naming convention stuff.

Vincent


More information about the Xcb mailing list