diff options
Diffstat (limited to 'nexgb/record')
| -rw-r--r-- | nexgb/record/record.go | 176 | 
1 files changed, 99 insertions, 77 deletions
| diff --git a/nexgb/record/record.go b/nexgb/record/record.go index 740353d..28b268e 100644 --- a/nexgb/record/record.go +++ b/nexgb/record/record.go @@ -2,7 +2,7 @@  package record  /* -	This file was generated by record.xml on May 10 2012 8:04:32pm EDT. +	This file was generated by record.xml on May 10 2012 11:56:19pm EDT.  	This file is automatically generated. Edit at your peril!  */ @@ -90,14 +90,12 @@ type ElementHeader byte  type ClientSpec uint32 -// 'Range8' struct definition -// Size: 2  type Range8 struct {  	First byte  	Last  byte  } -// Struct read Range8 +// Range8Read reads a byte slice into a Range8 value.  func Range8Read(buf []byte, v *Range8) int {  	b := 0 @@ -110,7 +108,7 @@ func Range8Read(buf []byte, v *Range8) int {  	return b  } -// Struct list read Range8 +// Range8ReadList reads a byte slice into a list of Range8 values.  func Range8ReadList(buf []byte, dest []Range8) int {  	b := 0  	for i := 0; i < len(dest); i++ { @@ -120,7 +118,7 @@ func Range8ReadList(buf []byte, dest []Range8) int {  	return xgb.Pad(b)  } -// Struct write Range8 +// Bytes writes a Range8 value to a byte slice.  func (v Range8) Bytes() []byte {  	buf := make([]byte, 2)  	b := 0 @@ -134,7 +132,7 @@ func (v Range8) Bytes() []byte {  	return buf  } -// Write struct list Range8 +// Range8ListBytes writes a list of %s(MISSING) values to a byte slice.  func Range8ListBytes(buf []byte, list []Range8) int {  	b := 0  	var structBytes []byte @@ -146,14 +144,12 @@ func Range8ListBytes(buf []byte, list []Range8) int {  	return b  } -// 'Range16' struct definition -// Size: 4  type Range16 struct {  	First uint16  	Last  uint16  } -// Struct read Range16 +// Range16Read reads a byte slice into a Range16 value.  func Range16Read(buf []byte, v *Range16) int {  	b := 0 @@ -166,7 +162,7 @@ func Range16Read(buf []byte, v *Range16) int {  	return b  } -// Struct list read Range16 +// Range16ReadList reads a byte slice into a list of Range16 values.  func Range16ReadList(buf []byte, dest []Range16) int {  	b := 0  	for i := 0; i < len(dest); i++ { @@ -176,7 +172,7 @@ func Range16ReadList(buf []byte, dest []Range16) int {  	return xgb.Pad(b)  } -// Struct write Range16 +// Bytes writes a Range16 value to a byte slice.  func (v Range16) Bytes() []byte {  	buf := make([]byte, 4)  	b := 0 @@ -190,7 +186,7 @@ func (v Range16) Bytes() []byte {  	return buf  } -// Write struct list Range16 +// Range16ListBytes writes a list of %s(MISSING) values to a byte slice.  func Range16ListBytes(buf []byte, list []Range16) int {  	b := 0  	var structBytes []byte @@ -202,14 +198,12 @@ func Range16ListBytes(buf []byte, list []Range16) int {  	return b  } -// 'ExtRange' struct definition -// Size: 6  type ExtRange struct {  	Major Range8  	Minor Range16  } -// Struct read ExtRange +// ExtRangeRead reads a byte slice into a ExtRange value.  func ExtRangeRead(buf []byte, v *ExtRange) int {  	b := 0 @@ -222,7 +216,7 @@ func ExtRangeRead(buf []byte, v *ExtRange) int {  	return b  } -// Struct list read ExtRange +// ExtRangeReadList reads a byte slice into a list of ExtRange values.  func ExtRangeReadList(buf []byte, dest []ExtRange) int {  	b := 0  	for i := 0; i < len(dest); i++ { @@ -232,7 +226,7 @@ func ExtRangeReadList(buf []byte, dest []ExtRange) int {  	return xgb.Pad(b)  } -// Struct write ExtRange +// Bytes writes a ExtRange value to a byte slice.  func (v ExtRange) Bytes() []byte {  	buf := make([]byte, 6)  	b := 0 @@ -252,7 +246,7 @@ func (v ExtRange) Bytes() []byte {  	return buf  } -// Write struct list ExtRange +// ExtRangeListBytes writes a list of %s(MISSING) values to a byte slice.  func ExtRangeListBytes(buf []byte, list []ExtRange) int {  	b := 0  	var structBytes []byte @@ -264,8 +258,6 @@ func ExtRangeListBytes(buf []byte, list []ExtRange) int {  	return b  } -// 'Range' struct definition -// Size: 24  type Range struct {  	CoreRequests    Range8  	CoreReplies     Range8 @@ -278,7 +270,7 @@ type Range struct {  	ClientDied      bool  } -// Struct read Range +// RangeRead reads a byte slice into a Range value.  func RangeRead(buf []byte, v *Range) int {  	b := 0 @@ -320,7 +312,7 @@ func RangeRead(buf []byte, v *Range) int {  	return b  } -// Struct list read Range +// RangeReadList reads a byte slice into a list of Range values.  func RangeReadList(buf []byte, dest []Range) int {  	b := 0  	for i := 0; i < len(dest); i++ { @@ -330,7 +322,7 @@ func RangeReadList(buf []byte, dest []Range) int {  	return xgb.Pad(b)  } -// Struct write Range +// Bytes writes a Range value to a byte slice.  func (v Range) Bytes() []byte {  	buf := make([]byte, 24)  	b := 0 @@ -394,7 +386,7 @@ func (v Range) Bytes() []byte {  	return buf  } -// Write struct list Range +// RangeListBytes writes a list of %s(MISSING) values to a byte slice.  func RangeListBytes(buf []byte, list []Range) int {  	b := 0  	var structBytes []byte @@ -406,15 +398,13 @@ func RangeListBytes(buf []byte, list []Range) int {  	return b  } -// 'ClientInfo' struct definition -// Size: (8 + xgb.Pad((int(NumRanges) * 24)))  type ClientInfo struct {  	ClientResource ClientSpec  	NumRanges      uint32  	Ranges         []Range // size: xgb.Pad((int(NumRanges) * 24))  } -// Struct read ClientInfo +// ClientInfoRead reads a byte slice into a ClientInfo value.  func ClientInfoRead(buf []byte, v *ClientInfo) int {  	b := 0 @@ -430,7 +420,7 @@ func ClientInfoRead(buf []byte, v *ClientInfo) int {  	return b  } -// Struct list read ClientInfo +// ClientInfoReadList reads a byte slice into a list of ClientInfo values.  func ClientInfoReadList(buf []byte, dest []ClientInfo) int {  	b := 0  	for i := 0; i < len(dest); i++ { @@ -440,7 +430,7 @@ func ClientInfoReadList(buf []byte, dest []ClientInfo) int {  	return xgb.Pad(b)  } -// Struct write ClientInfo +// Bytes writes a ClientInfo value to a byte slice.  func (v ClientInfo) Bytes() []byte {  	buf := make([]byte, (8 + xgb.Pad((int(v.NumRanges) * 24))))  	b := 0 @@ -456,7 +446,7 @@ func (v ClientInfo) Bytes() []byte {  	return buf  } -// Write struct list ClientInfo +// ClientInfoListBytes writes a list of %s(MISSING) values to a byte slice.  func ClientInfoListBytes(buf []byte, list []ClientInfo) int {  	b := 0  	var structBytes []byte @@ -468,7 +458,7 @@ func ClientInfoListBytes(buf []byte, list []ClientInfo) int {  	return b  } -// Struct list size ClientInfo +// ClientInfoListSize computes the size (bytes) of a list of ClientInfo values.  func ClientInfoListSize(list []ClientInfo) int {  	size := 0  	for _, item := range list { @@ -477,9 +467,7 @@ func ClientInfoListSize(list []ClientInfo) int {  	return size  } -// Error definition BadContext (0) -// Size: 32 - +// BadBadContext is the error number for a BadBadContext.  const BadBadContext = 0  type BadContextError struct { @@ -488,7 +476,7 @@ type BadContextError struct {  	InvalidRecord uint32  } -// Error read BadContext +// BadContextErrorNew constructs a BadContextError value that implements xgb.Error from a byte slice.  func BadContextErrorNew(buf []byte) xgb.Error {  	v := BadContextError{}  	v.NiceName = "BadContext" @@ -505,8 +493,8 @@ func BadContextErrorNew(buf []byte) xgb.Error {  	return v  } -func (err BadContextError) ImplementsError() {} - +// SequenceId returns the sequence id attached to the BadBadContext error. +// This is mostly used internally.  func (err BadContextError) SequenceId() uint16 {  	return err.Sequence  } @@ -527,35 +515,37 @@ func init() {  	xgb.NewExtErrorFuncs["RECORD"][0] = BadContextErrorNew  } -// Request QueryVersion -// size: 8 +// QueryVersionCookie is a cookie used only for QueryVersion requests.  type QueryVersionCookie struct {  	*xgb.Cookie  } +// QueryVersion sends a checked request. +// If an error occurs, it will be returned with the reply by calling QueryVersionCookie.Reply()  func QueryVersion(c *xgb.Conn, MajorVersion uint16, MinorVersion uint16) QueryVersionCookie {  	cookie := c.NewCookie(true, true)  	c.NewRequest(queryVersionRequest(c, MajorVersion, MinorVersion), cookie)  	return QueryVersionCookie{cookie}  } +// QueryVersionUnchecked sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func QueryVersionUnchecked(c *xgb.Conn, MajorVersion uint16, MinorVersion uint16) QueryVersionCookie {  	cookie := c.NewCookie(false, true)  	c.NewRequest(queryVersionRequest(c, MajorVersion, MinorVersion), cookie)  	return QueryVersionCookie{cookie}  } -// Request reply for QueryVersion -// size: 12 +// QueryVersionReply represents the data returned from a QueryVersion request.  type QueryVersionReply struct { -	Sequence uint16 -	Length   uint32 +	Sequence uint16 // sequence number of the request for this reply +	Length   uint32 // number of bytes in this reply  	// padding: 1 bytes  	MajorVersion uint16  	MinorVersion uint16  } -// Waits and reads reply data from request QueryVersion +// Reply blocks and returns the reply data for a QueryVersion request.  func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil { @@ -567,7 +557,7 @@ func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {  	return queryVersionReply(buf), nil  } -// Read reply into structure from buffer for QueryVersion +// queryVersionReply reads a byte slice into a QueryVersionReply value.  func queryVersionReply(buf []byte) *QueryVersionReply {  	v := new(QueryVersionReply)  	b := 1 // skip reply determinant @@ -590,6 +580,7 @@ func queryVersionReply(buf []byte) *QueryVersionReply {  }  // Write request to wire for QueryVersion +// queryVersionRequest writes a QueryVersion request to a byte slice.  func queryVersionRequest(c *xgb.Conn, MajorVersion uint16, MinorVersion uint16) []byte {  	size := 8  	b := 0 @@ -613,30 +604,35 @@ func queryVersionRequest(c *xgb.Conn, MajorVersion uint16, MinorVersion uint16)  	return buf  } -// Request CreateContext -// size: xgb.Pad(((20 + xgb.Pad((int(NumClientSpecs) * 4))) + xgb.Pad((int(NumRanges) * 24)))) +// CreateContextCookie is a cookie used only for CreateContext requests.  type CreateContextCookie struct {  	*xgb.Cookie  } -// Write request to wire for CreateContext +// CreateContext sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func CreateContext(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) CreateContextCookie {  	cookie := c.NewCookie(false, false)  	c.NewRequest(createContextRequest(c, Context, ElementHeader, NumClientSpecs, NumRanges, ClientSpecs, Ranges), cookie)  	return CreateContextCookie{cookie}  } +// CreateContextChecked sends a checked request. +// If an error occurs, it can be retrieved using CreateContextCookie.Check()  func CreateContextChecked(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) CreateContextCookie {  	cookie := c.NewCookie(true, false)  	c.NewRequest(createContextRequest(c, Context, ElementHeader, NumClientSpecs, NumRanges, ClientSpecs, Ranges), cookie)  	return CreateContextCookie{cookie}  } +// Check returns an error if one occurred for checked requests that are not expecting a reply. +// This cannot be called for requests expecting a reply, nor for unchecked requests.  func (cook CreateContextCookie) Check() error {  	return cook.Cookie.Check()  }  // Write request to wire for CreateContext +// createContextRequest writes a CreateContext request to a byte slice.  func createContextRequest(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) []byte {  	size := xgb.Pad(((20 + xgb.Pad((int(NumClientSpecs) * 4))) + xgb.Pad((int(NumRanges) * 24))))  	b := 0 @@ -676,30 +672,35 @@ func createContextRequest(c *xgb.Conn, Context Context, ElementHeader ElementHea  	return buf  } -// Request RegisterClients -// size: xgb.Pad(((20 + xgb.Pad((int(NumClientSpecs) * 4))) + xgb.Pad((int(NumRanges) * 24)))) +// RegisterClientsCookie is a cookie used only for RegisterClients requests.  type RegisterClientsCookie struct {  	*xgb.Cookie  } -// Write request to wire for RegisterClients +// RegisterClients sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func RegisterClients(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) RegisterClientsCookie {  	cookie := c.NewCookie(false, false)  	c.NewRequest(registerClientsRequest(c, Context, ElementHeader, NumClientSpecs, NumRanges, ClientSpecs, Ranges), cookie)  	return RegisterClientsCookie{cookie}  } +// RegisterClientsChecked sends a checked request. +// If an error occurs, it can be retrieved using RegisterClientsCookie.Check()  func RegisterClientsChecked(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) RegisterClientsCookie {  	cookie := c.NewCookie(true, false)  	c.NewRequest(registerClientsRequest(c, Context, ElementHeader, NumClientSpecs, NumRanges, ClientSpecs, Ranges), cookie)  	return RegisterClientsCookie{cookie}  } +// Check returns an error if one occurred for checked requests that are not expecting a reply. +// This cannot be called for requests expecting a reply, nor for unchecked requests.  func (cook RegisterClientsCookie) Check() error {  	return cook.Cookie.Check()  }  // Write request to wire for RegisterClients +// registerClientsRequest writes a RegisterClients request to a byte slice.  func registerClientsRequest(c *xgb.Conn, Context Context, ElementHeader ElementHeader, NumClientSpecs uint32, NumRanges uint32, ClientSpecs []ClientSpec, Ranges []Range) []byte {  	size := xgb.Pad(((20 + xgb.Pad((int(NumClientSpecs) * 4))) + xgb.Pad((int(NumRanges) * 24))))  	b := 0 @@ -739,30 +740,35 @@ func registerClientsRequest(c *xgb.Conn, Context Context, ElementHeader ElementH  	return buf  } -// Request UnregisterClients -// size: xgb.Pad((12 + xgb.Pad((int(NumClientSpecs) * 4)))) +// UnregisterClientsCookie is a cookie used only for UnregisterClients requests.  type UnregisterClientsCookie struct {  	*xgb.Cookie  } -// Write request to wire for UnregisterClients +// UnregisterClients sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func UnregisterClients(c *xgb.Conn, Context Context, NumClientSpecs uint32, ClientSpecs []ClientSpec) UnregisterClientsCookie {  	cookie := c.NewCookie(false, false)  	c.NewRequest(unregisterClientsRequest(c, Context, NumClientSpecs, ClientSpecs), cookie)  	return UnregisterClientsCookie{cookie}  } +// UnregisterClientsChecked sends a checked request. +// If an error occurs, it can be retrieved using UnregisterClientsCookie.Check()  func UnregisterClientsChecked(c *xgb.Conn, Context Context, NumClientSpecs uint32, ClientSpecs []ClientSpec) UnregisterClientsCookie {  	cookie := c.NewCookie(true, false)  	c.NewRequest(unregisterClientsRequest(c, Context, NumClientSpecs, ClientSpecs), cookie)  	return UnregisterClientsCookie{cookie}  } +// Check returns an error if one occurred for checked requests that are not expecting a reply. +// This cannot be called for requests expecting a reply, nor for unchecked requests.  func (cook UnregisterClientsCookie) Check() error {  	return cook.Cookie.Check()  }  // Write request to wire for UnregisterClients +// unregisterClientsRequest writes a UnregisterClients request to a byte slice.  func unregisterClientsRequest(c *xgb.Conn, Context Context, NumClientSpecs uint32, ClientSpecs []ClientSpec) []byte {  	size := xgb.Pad((12 + xgb.Pad((int(NumClientSpecs) * 4))))  	b := 0 @@ -792,29 +798,31 @@ func unregisterClientsRequest(c *xgb.Conn, Context Context, NumClientSpecs uint3  	return buf  } -// Request GetContext -// size: 8 +// GetContextCookie is a cookie used only for GetContext requests.  type GetContextCookie struct {  	*xgb.Cookie  } +// GetContext sends a checked request. +// If an error occurs, it will be returned with the reply by calling GetContextCookie.Reply()  func GetContext(c *xgb.Conn, Context Context) GetContextCookie {  	cookie := c.NewCookie(true, true)  	c.NewRequest(getContextRequest(c, Context), cookie)  	return GetContextCookie{cookie}  } +// GetContextUnchecked sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func GetContextUnchecked(c *xgb.Conn, Context Context) GetContextCookie {  	cookie := c.NewCookie(false, true)  	c.NewRequest(getContextRequest(c, Context), cookie)  	return GetContextCookie{cookie}  } -// Request reply for GetContext -// size: (32 + ClientInfoListSize(InterceptedClients)) +// GetContextReply represents the data returned from a GetContext request.  type GetContextReply struct { -	Sequence      uint16 -	Length        uint32 +	Sequence      uint16 // sequence number of the request for this reply +	Length        uint32 // number of bytes in this reply  	Enabled       bool  	ElementHeader ElementHeader  	// padding: 3 bytes @@ -823,7 +831,7 @@ type GetContextReply struct {  	InterceptedClients []ClientInfo // size: ClientInfoListSize(InterceptedClients)  } -// Waits and reads reply data from request GetContext +// Reply blocks and returns the reply data for a GetContext request.  func (cook GetContextCookie) Reply() (*GetContextReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil { @@ -835,7 +843,7 @@ func (cook GetContextCookie) Reply() (*GetContextReply, error) {  	return getContextReply(buf), nil  } -// Read reply into structure from buffer for GetContext +// getContextReply reads a byte slice into a GetContextReply value.  func getContextReply(buf []byte) *GetContextReply {  	v := new(GetContextReply)  	b := 1 // skip reply determinant @@ -870,6 +878,7 @@ func getContextReply(buf []byte) *GetContextReply {  }  // Write request to wire for GetContext +// getContextRequest writes a GetContext request to a byte slice.  func getContextRequest(c *xgb.Conn, Context Context) []byte {  	size := 8  	b := 0 @@ -890,29 +899,31 @@ func getContextRequest(c *xgb.Conn, Context Context) []byte {  	return buf  } -// Request EnableContext -// size: 8 +// EnableContextCookie is a cookie used only for EnableContext requests.  type EnableContextCookie struct {  	*xgb.Cookie  } +// EnableContext sends a checked request. +// If an error occurs, it will be returned with the reply by calling EnableContextCookie.Reply()  func EnableContext(c *xgb.Conn, Context Context) EnableContextCookie {  	cookie := c.NewCookie(true, true)  	c.NewRequest(enableContextRequest(c, Context), cookie)  	return EnableContextCookie{cookie}  } +// EnableContextUnchecked sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func EnableContextUnchecked(c *xgb.Conn, Context Context) EnableContextCookie {  	cookie := c.NewCookie(false, true)  	c.NewRequest(enableContextRequest(c, Context), cookie)  	return EnableContextCookie{cookie}  } -// Request reply for EnableContext -// size: (32 + xgb.Pad(((int(Length) * 4) * 1))) +// EnableContextReply represents the data returned from a EnableContext request.  type EnableContextReply struct { -	Sequence      uint16 -	Length        uint32 +	Sequence      uint16 // sequence number of the request for this reply +	Length        uint32 // number of bytes in this reply  	Category      byte  	ElementHeader ElementHeader  	ClientSwapped bool @@ -924,7 +935,7 @@ type EnableContextReply struct {  	Data []byte // size: xgb.Pad(((int(Length) * 4) * 1))  } -// Waits and reads reply data from request EnableContext +// Reply blocks and returns the reply data for a EnableContext request.  func (cook EnableContextCookie) Reply() (*EnableContextReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil { @@ -936,7 +947,7 @@ func (cook EnableContextCookie) Reply() (*EnableContextReply, error) {  	return enableContextReply(buf), nil  } -// Read reply into structure from buffer for EnableContext +// enableContextReply reads a byte slice into a EnableContextReply value.  func enableContextReply(buf []byte) *EnableContextReply {  	v := new(EnableContextReply)  	b := 1 // skip reply determinant @@ -981,6 +992,7 @@ func enableContextReply(buf []byte) *EnableContextReply {  }  // Write request to wire for EnableContext +// enableContextRequest writes a EnableContext request to a byte slice.  func enableContextRequest(c *xgb.Conn, Context Context) []byte {  	size := 8  	b := 0 @@ -1001,30 +1013,35 @@ func enableContextRequest(c *xgb.Conn, Context Context) []byte {  	return buf  } -// Request DisableContext -// size: 8 +// DisableContextCookie is a cookie used only for DisableContext requests.  type DisableContextCookie struct {  	*xgb.Cookie  } -// Write request to wire for DisableContext +// DisableContext sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func DisableContext(c *xgb.Conn, Context Context) DisableContextCookie {  	cookie := c.NewCookie(false, false)  	c.NewRequest(disableContextRequest(c, Context), cookie)  	return DisableContextCookie{cookie}  } +// DisableContextChecked sends a checked request. +// If an error occurs, it can be retrieved using DisableContextCookie.Check()  func DisableContextChecked(c *xgb.Conn, Context Context) DisableContextCookie {  	cookie := c.NewCookie(true, false)  	c.NewRequest(disableContextRequest(c, Context), cookie)  	return DisableContextCookie{cookie}  } +// Check returns an error if one occurred for checked requests that are not expecting a reply. +// This cannot be called for requests expecting a reply, nor for unchecked requests.  func (cook DisableContextCookie) Check() error {  	return cook.Cookie.Check()  }  // Write request to wire for DisableContext +// disableContextRequest writes a DisableContext request to a byte slice.  func disableContextRequest(c *xgb.Conn, Context Context) []byte {  	size := 8  	b := 0 @@ -1045,30 +1062,35 @@ func disableContextRequest(c *xgb.Conn, Context Context) []byte {  	return buf  } -// Request FreeContext -// size: 8 +// FreeContextCookie is a cookie used only for FreeContext requests.  type FreeContextCookie struct {  	*xgb.Cookie  } -// Write request to wire for FreeContext +// FreeContext sends an unchecked request. +// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.  func FreeContext(c *xgb.Conn, Context Context) FreeContextCookie {  	cookie := c.NewCookie(false, false)  	c.NewRequest(freeContextRequest(c, Context), cookie)  	return FreeContextCookie{cookie}  } +// FreeContextChecked sends a checked request. +// If an error occurs, it can be retrieved using FreeContextCookie.Check()  func FreeContextChecked(c *xgb.Conn, Context Context) FreeContextCookie {  	cookie := c.NewCookie(true, false)  	c.NewRequest(freeContextRequest(c, Context), cookie)  	return FreeContextCookie{cookie}  } +// Check returns an error if one occurred for checked requests that are not expecting a reply. +// This cannot be called for requests expecting a reply, nor for unchecked requests.  func (cook FreeContextCookie) Check() error {  	return cook.Cookie.Check()  }  // Write request to wire for FreeContext +// freeContextRequest writes a FreeContext request to a byte slice.  func freeContextRequest(c *xgb.Conn, Context Context) []byte {  	size := 8  	b := 0 | 
