diff options
Diffstat (limited to 'nexgb/auto_ge.go')
-rw-r--r-- | nexgb/auto_ge.go | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/nexgb/auto_ge.go b/nexgb/auto_ge.go new file mode 100644 index 0000000..d9f52c1 --- /dev/null +++ b/nexgb/auto_ge.go @@ -0,0 +1,125 @@ +package xgb + +/* + This file was generated by ge.xml on May 6 2012 3:00:44am EDT. + This file is automatically generated. Edit at your peril! +*/ + +// Skipping definition for base type 'Id' + +// Skipping definition for base type 'Card8' + +// Skipping definition for base type 'Int16' + +// Skipping definition for base type 'Int32' + +// Skipping definition for base type 'Void' + +// Skipping definition for base type 'Byte' + +// Skipping definition for base type 'Int8' + +// Skipping definition for base type 'Card16' + +// Skipping definition for base type 'Char' + +// Skipping definition for base type 'Card32' + +// Skipping definition for base type 'Double' + +// Skipping definition for base type 'Bool' + +// Skipping definition for base type 'Float' + +// Request GeQueryVersion +// size: 8 +type GeQueryVersionCookie struct { + *cookie +} + +func (c *Conn) GeQueryVersion(ClientMajorVersion uint16, ClientMinorVersion uint16) GeQueryVersionCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.geQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie) + return GeQueryVersionCookie{cookie} +} + +func (c *Conn) GeQueryVersionUnchecked(ClientMajorVersion uint16, ClientMinorVersion uint16) GeQueryVersionCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.geQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie) + return GeQueryVersionCookie{cookie} +} + +// Request reply for GeQueryVersion +// size: 32 +type GeQueryVersionReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + MajorVersion uint16 + MinorVersion uint16 + // padding: 20 bytes +} + +// Waits and reads reply data from request GeQueryVersion +func (cook GeQueryVersionCookie) Reply() (*GeQueryVersionReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return geQueryVersionReply(buf), nil +} + +// Read reply into structure from buffer for GeQueryVersion +func geQueryVersionReply(buf []byte) *GeQueryVersionReply { + v := new(GeQueryVersionReply) + b := 1 // skip reply determinant + + b += 1 // padding + + v.Sequence = Get16(buf[b:]) + b += 2 + + v.Length = Get32(buf[b:]) // 4-byte units + b += 4 + + v.MajorVersion = Get16(buf[b:]) + b += 2 + + v.MinorVersion = Get16(buf[b:]) + b += 2 + + b += 20 // padding + + return v +} + +func (cook GeQueryVersionCookie) Check() error { + return cook.check() +} + +// Write request to wire for GeQueryVersion +func (c *Conn) geQueryVersionRequest(ClientMajorVersion uint16, ClientMinorVersion uint16) []byte { + size := 8 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["GENERIC EVENT EXTENSION"] + b += 1 + + buf[b] = 0 // request opcode + b += 1 + + Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units + b += 2 + + Put16(buf[b:], ClientMajorVersion) + b += 2 + + Put16(buf[b:], ClientMinorVersion) + b += 2 + + return buf +} |