xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/record.h (revision b48426e3c23b30eac5627e03e3cf702117487a42)
1 /*
2  * This file generated automatically from record.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB_Record_API XCB Record API
8  * @brief Record XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __RECORD_H
13 #define __RECORD_H
14 
15 #include "xcb.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #define XCB_RECORD_MAJOR_VERSION 1
22 #define XCB_RECORD_MINOR_VERSION 13
23 
24 extern xcb_extension_t xcb_record_id;
25 
26 typedef uint32_t xcb_record_context_t;
27 
28 /**
29  * @brief xcb_record_context_iterator_t
30  **/
31 typedef struct xcb_record_context_iterator_t {
32     xcb_record_context_t *data;
33     int                   rem;
34     int                   index;
35 } xcb_record_context_iterator_t;
36 
37 /**
38  * @brief xcb_record_range_8_t
39  **/
40 typedef struct xcb_record_range_8_t {
41     uint8_t first;
42     uint8_t last;
43 } xcb_record_range_8_t;
44 
45 /**
46  * @brief xcb_record_range_8_iterator_t
47  **/
48 typedef struct xcb_record_range_8_iterator_t {
49     xcb_record_range_8_t *data;
50     int                   rem;
51     int                   index;
52 } xcb_record_range_8_iterator_t;
53 
54 /**
55  * @brief xcb_record_range_16_t
56  **/
57 typedef struct xcb_record_range_16_t {
58     uint16_t first;
59     uint16_t last;
60 } xcb_record_range_16_t;
61 
62 /**
63  * @brief xcb_record_range_16_iterator_t
64  **/
65 typedef struct xcb_record_range_16_iterator_t {
66     xcb_record_range_16_t *data;
67     int                    rem;
68     int                    index;
69 } xcb_record_range_16_iterator_t;
70 
71 /**
72  * @brief xcb_record_ext_range_t
73  **/
74 typedef struct xcb_record_ext_range_t {
75     xcb_record_range_8_t  major;
76     xcb_record_range_16_t minor;
77 } xcb_record_ext_range_t;
78 
79 /**
80  * @brief xcb_record_ext_range_iterator_t
81  **/
82 typedef struct xcb_record_ext_range_iterator_t {
83     xcb_record_ext_range_t *data;
84     int                     rem;
85     int                     index;
86 } xcb_record_ext_range_iterator_t;
87 
88 /**
89  * @brief xcb_record_range_t
90  **/
91 typedef struct xcb_record_range_t {
92     xcb_record_range_8_t   core_requests;
93     xcb_record_range_8_t   core_replies;
94     xcb_record_ext_range_t ext_requests;
95     xcb_record_ext_range_t ext_replies;
96     xcb_record_range_8_t   delivered_events;
97     xcb_record_range_8_t   device_events;
98     xcb_record_range_8_t   errors;
99     uint8_t                client_started;
100     uint8_t                client_died;
101 } xcb_record_range_t;
102 
103 /**
104  * @brief xcb_record_range_iterator_t
105  **/
106 typedef struct xcb_record_range_iterator_t {
107     xcb_record_range_t *data;
108     int                 rem;
109     int                 index;
110 } xcb_record_range_iterator_t;
111 
112 typedef uint8_t xcb_record_element_header_t;
113 
114 /**
115  * @brief xcb_record_element_header_iterator_t
116  **/
117 typedef struct xcb_record_element_header_iterator_t {
118     xcb_record_element_header_t *data;
119     int                          rem;
120     int                          index;
121 } xcb_record_element_header_iterator_t;
122 
123 typedef enum xcb_record_h_type_t {
124     XCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1,
125     XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,
126     XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4
127 } xcb_record_h_type_t;
128 
129 typedef uint32_t xcb_record_client_spec_t;
130 
131 /**
132  * @brief xcb_record_client_spec_iterator_t
133  **/
134 typedef struct xcb_record_client_spec_iterator_t {
135     xcb_record_client_spec_t *data;
136     int                       rem;
137     int                       index;
138 } xcb_record_client_spec_iterator_t;
139 
140 typedef enum xcb_record_cs_t {
141     XCB_RECORD_CS_CURRENT_CLIENTS = 1,
142     XCB_RECORD_CS_FUTURE_CLIENTS = 2,
143     XCB_RECORD_CS_ALL_CLIENTS = 3
144 } xcb_record_cs_t;
145 
146 /**
147  * @brief xcb_record_client_info_t
148  **/
149 typedef struct xcb_record_client_info_t {
150     xcb_record_client_spec_t client_resource;
151     uint32_t                 num_ranges;
152 } xcb_record_client_info_t;
153 
154 /**
155  * @brief xcb_record_client_info_iterator_t
156  **/
157 typedef struct xcb_record_client_info_iterator_t {
158     xcb_record_client_info_t *data;
159     int                       rem;
160     int                       index;
161 } xcb_record_client_info_iterator_t;
162 
163 /** Opcode for xcb_record_bad_context. */
164 #define XCB_RECORD_BAD_CONTEXT 0
165 
166 /**
167  * @brief xcb_record_bad_context_error_t
168  **/
169 typedef struct xcb_record_bad_context_error_t {
170     uint8_t  response_type;
171     uint8_t  error_code;
172     uint16_t sequence;
173     uint32_t invalid_record;
174     uint16_t minor_opcode;
175     uint8_t  major_opcode;
176 } xcb_record_bad_context_error_t;
177 
178 /**
179  * @brief xcb_record_query_version_cookie_t
180  **/
181 typedef struct xcb_record_query_version_cookie_t {
182     unsigned int sequence;
183 } xcb_record_query_version_cookie_t;
184 
185 /** Opcode for xcb_record_query_version. */
186 #define XCB_RECORD_QUERY_VERSION 0
187 
188 /**
189  * @brief xcb_record_query_version_request_t
190  **/
191 typedef struct xcb_record_query_version_request_t {
192     uint8_t  major_opcode;
193     uint8_t  minor_opcode;
194     uint16_t length;
195     uint16_t major_version;
196     uint16_t minor_version;
197 } xcb_record_query_version_request_t;
198 
199 /**
200  * @brief xcb_record_query_version_reply_t
201  **/
202 typedef struct xcb_record_query_version_reply_t {
203     uint8_t  response_type;
204     uint8_t  pad0;
205     uint16_t sequence;
206     uint32_t length;
207     uint16_t major_version;
208     uint16_t minor_version;
209 } xcb_record_query_version_reply_t;
210 
211 /** Opcode for xcb_record_create_context. */
212 #define XCB_RECORD_CREATE_CONTEXT 1
213 
214 /**
215  * @brief xcb_record_create_context_request_t
216  **/
217 typedef struct xcb_record_create_context_request_t {
218     uint8_t                     major_opcode;
219     uint8_t                     minor_opcode;
220     uint16_t                    length;
221     xcb_record_context_t        context;
222     xcb_record_element_header_t element_header;
223     uint8_t                     pad0[3];
224     uint32_t                    num_client_specs;
225     uint32_t                    num_ranges;
226 } xcb_record_create_context_request_t;
227 
228 /** Opcode for xcb_record_register_clients. */
229 #define XCB_RECORD_REGISTER_CLIENTS 2
230 
231 /**
232  * @brief xcb_record_register_clients_request_t
233  **/
234 typedef struct xcb_record_register_clients_request_t {
235     uint8_t                     major_opcode;
236     uint8_t                     minor_opcode;
237     uint16_t                    length;
238     xcb_record_context_t        context;
239     xcb_record_element_header_t element_header;
240     uint8_t                     pad0[3];
241     uint32_t                    num_client_specs;
242     uint32_t                    num_ranges;
243 } xcb_record_register_clients_request_t;
244 
245 /** Opcode for xcb_record_unregister_clients. */
246 #define XCB_RECORD_UNREGISTER_CLIENTS 3
247 
248 /**
249  * @brief xcb_record_unregister_clients_request_t
250  **/
251 typedef struct xcb_record_unregister_clients_request_t {
252     uint8_t              major_opcode;
253     uint8_t              minor_opcode;
254     uint16_t             length;
255     xcb_record_context_t context;
256     uint32_t             num_client_specs;
257 } xcb_record_unregister_clients_request_t;
258 
259 /**
260  * @brief xcb_record_get_context_cookie_t
261  **/
262 typedef struct xcb_record_get_context_cookie_t {
263     unsigned int sequence;
264 } xcb_record_get_context_cookie_t;
265 
266 /** Opcode for xcb_record_get_context. */
267 #define XCB_RECORD_GET_CONTEXT 4
268 
269 /**
270  * @brief xcb_record_get_context_request_t
271  **/
272 typedef struct xcb_record_get_context_request_t {
273     uint8_t              major_opcode;
274     uint8_t              minor_opcode;
275     uint16_t             length;
276     xcb_record_context_t context;
277 } xcb_record_get_context_request_t;
278 
279 /**
280  * @brief xcb_record_get_context_reply_t
281  **/
282 typedef struct xcb_record_get_context_reply_t {
283     uint8_t                     response_type;
284     uint8_t                     enabled;
285     uint16_t                    sequence;
286     uint32_t                    length;
287     xcb_record_element_header_t element_header;
288     uint8_t                     pad0[3];
289     uint32_t                    num_intercepted_clients;
290     uint8_t                     pad1[16];
291 } xcb_record_get_context_reply_t;
292 
293 /**
294  * @brief xcb_record_enable_context_cookie_t
295  **/
296 typedef struct xcb_record_enable_context_cookie_t {
297     unsigned int sequence;
298 } xcb_record_enable_context_cookie_t;
299 
300 /** Opcode for xcb_record_enable_context. */
301 #define XCB_RECORD_ENABLE_CONTEXT 5
302 
303 /**
304  * @brief xcb_record_enable_context_request_t
305  **/
306 typedef struct xcb_record_enable_context_request_t {
307     uint8_t              major_opcode;
308     uint8_t              minor_opcode;
309     uint16_t             length;
310     xcb_record_context_t context;
311 } xcb_record_enable_context_request_t;
312 
313 /**
314  * @brief xcb_record_enable_context_reply_t
315  **/
316 typedef struct xcb_record_enable_context_reply_t {
317     uint8_t                     response_type;
318     uint8_t                     category;
319     uint16_t                    sequence;
320     uint32_t                    length;
321     xcb_record_element_header_t element_header;
322     uint8_t                     client_swapped;
323     uint8_t                     pad0[2];
324     uint32_t                    xid_base;
325     uint32_t                    server_time;
326     uint32_t                    rec_sequence_num;
327     uint8_t                     pad1[8];
328 } xcb_record_enable_context_reply_t;
329 
330 /** Opcode for xcb_record_disable_context. */
331 #define XCB_RECORD_DISABLE_CONTEXT 6
332 
333 /**
334  * @brief xcb_record_disable_context_request_t
335  **/
336 typedef struct xcb_record_disable_context_request_t {
337     uint8_t              major_opcode;
338     uint8_t              minor_opcode;
339     uint16_t             length;
340     xcb_record_context_t context;
341 } xcb_record_disable_context_request_t;
342 
343 /** Opcode for xcb_record_free_context. */
344 #define XCB_RECORD_FREE_CONTEXT 7
345 
346 /**
347  * @brief xcb_record_free_context_request_t
348  **/
349 typedef struct xcb_record_free_context_request_t {
350     uint8_t              major_opcode;
351     uint8_t              minor_opcode;
352     uint16_t             length;
353     xcb_record_context_t context;
354 } xcb_record_free_context_request_t;
355 
356 /**
357  * Get the next element of the iterator
358  * @param i Pointer to a xcb_record_context_iterator_t
359  *
360  * Get the next element in the iterator. The member rem is
361  * decreased by one. The member data points to the next
362  * element. The member index is increased by sizeof(xcb_record_context_t)
363  */
364 void
365 xcb_record_context_next (xcb_record_context_iterator_t *i);
366 
367 /**
368  * Return the iterator pointing to the last element
369  * @param i An xcb_record_context_iterator_t
370  * @return  The iterator pointing to the last element
371  *
372  * Set the current element in the iterator to the last element.
373  * The member rem is set to 0. The member data points to the
374  * last element.
375  */
376 xcb_generic_iterator_t
377 xcb_record_context_end (xcb_record_context_iterator_t i);
378 
379 /**
380  * Get the next element of the iterator
381  * @param i Pointer to a xcb_record_range_8_iterator_t
382  *
383  * Get the next element in the iterator. The member rem is
384  * decreased by one. The member data points to the next
385  * element. The member index is increased by sizeof(xcb_record_range_8_t)
386  */
387 void
388 xcb_record_range_8_next (xcb_record_range_8_iterator_t *i);
389 
390 /**
391  * Return the iterator pointing to the last element
392  * @param i An xcb_record_range_8_iterator_t
393  * @return  The iterator pointing to the last element
394  *
395  * Set the current element in the iterator to the last element.
396  * The member rem is set to 0. The member data points to the
397  * last element.
398  */
399 xcb_generic_iterator_t
400 xcb_record_range_8_end (xcb_record_range_8_iterator_t i);
401 
402 /**
403  * Get the next element of the iterator
404  * @param i Pointer to a xcb_record_range_16_iterator_t
405  *
406  * Get the next element in the iterator. The member rem is
407  * decreased by one. The member data points to the next
408  * element. The member index is increased by sizeof(xcb_record_range_16_t)
409  */
410 void
411 xcb_record_range_16_next (xcb_record_range_16_iterator_t *i);
412 
413 /**
414  * Return the iterator pointing to the last element
415  * @param i An xcb_record_range_16_iterator_t
416  * @return  The iterator pointing to the last element
417  *
418  * Set the current element in the iterator to the last element.
419  * The member rem is set to 0. The member data points to the
420  * last element.
421  */
422 xcb_generic_iterator_t
423 xcb_record_range_16_end (xcb_record_range_16_iterator_t i);
424 
425 /**
426  * Get the next element of the iterator
427  * @param i Pointer to a xcb_record_ext_range_iterator_t
428  *
429  * Get the next element in the iterator. The member rem is
430  * decreased by one. The member data points to the next
431  * element. The member index is increased by sizeof(xcb_record_ext_range_t)
432  */
433 void
434 xcb_record_ext_range_next (xcb_record_ext_range_iterator_t *i);
435 
436 /**
437  * Return the iterator pointing to the last element
438  * @param i An xcb_record_ext_range_iterator_t
439  * @return  The iterator pointing to the last element
440  *
441  * Set the current element in the iterator to the last element.
442  * The member rem is set to 0. The member data points to the
443  * last element.
444  */
445 xcb_generic_iterator_t
446 xcb_record_ext_range_end (xcb_record_ext_range_iterator_t i);
447 
448 /**
449  * Get the next element of the iterator
450  * @param i Pointer to a xcb_record_range_iterator_t
451  *
452  * Get the next element in the iterator. The member rem is
453  * decreased by one. The member data points to the next
454  * element. The member index is increased by sizeof(xcb_record_range_t)
455  */
456 void
457 xcb_record_range_next (xcb_record_range_iterator_t *i);
458 
459 /**
460  * Return the iterator pointing to the last element
461  * @param i An xcb_record_range_iterator_t
462  * @return  The iterator pointing to the last element
463  *
464  * Set the current element in the iterator to the last element.
465  * The member rem is set to 0. The member data points to the
466  * last element.
467  */
468 xcb_generic_iterator_t
469 xcb_record_range_end (xcb_record_range_iterator_t i);
470 
471 /**
472  * Get the next element of the iterator
473  * @param i Pointer to a xcb_record_element_header_iterator_t
474  *
475  * Get the next element in the iterator. The member rem is
476  * decreased by one. The member data points to the next
477  * element. The member index is increased by sizeof(xcb_record_element_header_t)
478  */
479 void
480 xcb_record_element_header_next (xcb_record_element_header_iterator_t *i);
481 
482 /**
483  * Return the iterator pointing to the last element
484  * @param i An xcb_record_element_header_iterator_t
485  * @return  The iterator pointing to the last element
486  *
487  * Set the current element in the iterator to the last element.
488  * The member rem is set to 0. The member data points to the
489  * last element.
490  */
491 xcb_generic_iterator_t
492 xcb_record_element_header_end (xcb_record_element_header_iterator_t i);
493 
494 /**
495  * Get the next element of the iterator
496  * @param i Pointer to a xcb_record_client_spec_iterator_t
497  *
498  * Get the next element in the iterator. The member rem is
499  * decreased by one. The member data points to the next
500  * element. The member index is increased by sizeof(xcb_record_client_spec_t)
501  */
502 void
503 xcb_record_client_spec_next (xcb_record_client_spec_iterator_t *i);
504 
505 /**
506  * Return the iterator pointing to the last element
507  * @param i An xcb_record_client_spec_iterator_t
508  * @return  The iterator pointing to the last element
509  *
510  * Set the current element in the iterator to the last element.
511  * The member rem is set to 0. The member data points to the
512  * last element.
513  */
514 xcb_generic_iterator_t
515 xcb_record_client_spec_end (xcb_record_client_spec_iterator_t i);
516 
517 int
518 xcb_record_client_info_sizeof (const void  *_buffer);
519 
520 xcb_record_range_t *
521 xcb_record_client_info_ranges (const xcb_record_client_info_t *R);
522 
523 int
524 xcb_record_client_info_ranges_length (const xcb_record_client_info_t *R);
525 
526 xcb_record_range_iterator_t
527 xcb_record_client_info_ranges_iterator (const xcb_record_client_info_t *R);
528 
529 /**
530  * Get the next element of the iterator
531  * @param i Pointer to a xcb_record_client_info_iterator_t
532  *
533  * Get the next element in the iterator. The member rem is
534  * decreased by one. The member data points to the next
535  * element. The member index is increased by sizeof(xcb_record_client_info_t)
536  */
537 void
538 xcb_record_client_info_next (xcb_record_client_info_iterator_t *i);
539 
540 /**
541  * Return the iterator pointing to the last element
542  * @param i An xcb_record_client_info_iterator_t
543  * @return  The iterator pointing to the last element
544  *
545  * Set the current element in the iterator to the last element.
546  * The member rem is set to 0. The member data points to the
547  * last element.
548  */
549 xcb_generic_iterator_t
550 xcb_record_client_info_end (xcb_record_client_info_iterator_t i);
551 
552 /**
553  *
554  * @param c The connection
555  * @return A cookie
556  *
557  * Delivers a request to the X server.
558  *
559  */
560 xcb_record_query_version_cookie_t
561 xcb_record_query_version (xcb_connection_t *c,
562                           uint16_t          major_version,
563                           uint16_t          minor_version);
564 
565 /**
566  *
567  * @param c The connection
568  * @return A cookie
569  *
570  * Delivers a request to the X server.
571  *
572  * This form can be used only if the request will cause
573  * a reply to be generated. Any returned error will be
574  * placed in the event queue.
575  */
576 xcb_record_query_version_cookie_t
577 xcb_record_query_version_unchecked (xcb_connection_t *c,
578                                     uint16_t          major_version,
579                                     uint16_t          minor_version);
580 
581 /**
582  * Return the reply
583  * @param c      The connection
584  * @param cookie The cookie
585  * @param e      The xcb_generic_error_t supplied
586  *
587  * Returns the reply of the request asked by
588  *
589  * The parameter @p e supplied to this function must be NULL if
590  * xcb_record_query_version_unchecked(). is used.
591  * Otherwise, it stores the error if any.
592  *
593  * The returned value must be freed by the caller using free().
594  */
595 xcb_record_query_version_reply_t *
596 xcb_record_query_version_reply (xcb_connection_t                   *c,
597                                 xcb_record_query_version_cookie_t   cookie  /**< */,
598                                 xcb_generic_error_t               **e);
599 
600 int
601 xcb_record_create_context_sizeof (const void  *_buffer);
602 
603 /**
604  *
605  * @param c The connection
606  * @return A cookie
607  *
608  * Delivers a request to the X server.
609  *
610  * This form can be used only if the request will not cause
611  * a reply to be generated. Any returned error will be
612  * saved for handling by xcb_request_check().
613  */
614 xcb_void_cookie_t
615 xcb_record_create_context_checked (xcb_connection_t               *c,
616                                    xcb_record_context_t            context,
617                                    xcb_record_element_header_t     element_header,
618                                    uint32_t                        num_client_specs,
619                                    uint32_t                        num_ranges,
620                                    const xcb_record_client_spec_t *client_specs,
621                                    const xcb_record_range_t       *ranges);
622 
623 /**
624  *
625  * @param c The connection
626  * @return A cookie
627  *
628  * Delivers a request to the X server.
629  *
630  */
631 xcb_void_cookie_t
632 xcb_record_create_context (xcb_connection_t               *c,
633                            xcb_record_context_t            context,
634                            xcb_record_element_header_t     element_header,
635                            uint32_t                        num_client_specs,
636                            uint32_t                        num_ranges,
637                            const xcb_record_client_spec_t *client_specs,
638                            const xcb_record_range_t       *ranges);
639 
640 xcb_record_client_spec_t *
641 xcb_record_create_context_client_specs (const xcb_record_create_context_request_t *R);
642 
643 int
644 xcb_record_create_context_client_specs_length (const xcb_record_create_context_request_t *R);
645 
646 xcb_generic_iterator_t
647 xcb_record_create_context_client_specs_end (const xcb_record_create_context_request_t *R);
648 
649 xcb_record_range_t *
650 xcb_record_create_context_ranges (const xcb_record_create_context_request_t *R);
651 
652 int
653 xcb_record_create_context_ranges_length (const xcb_record_create_context_request_t *R);
654 
655 xcb_record_range_iterator_t
656 xcb_record_create_context_ranges_iterator (const xcb_record_create_context_request_t *R);
657 
658 int
659 xcb_record_register_clients_sizeof (const void  *_buffer);
660 
661 /**
662  *
663  * @param c The connection
664  * @return A cookie
665  *
666  * Delivers a request to the X server.
667  *
668  * This form can be used only if the request will not cause
669  * a reply to be generated. Any returned error will be
670  * saved for handling by xcb_request_check().
671  */
672 xcb_void_cookie_t
673 xcb_record_register_clients_checked (xcb_connection_t               *c,
674                                      xcb_record_context_t            context,
675                                      xcb_record_element_header_t     element_header,
676                                      uint32_t                        num_client_specs,
677                                      uint32_t                        num_ranges,
678                                      const xcb_record_client_spec_t *client_specs,
679                                      const xcb_record_range_t       *ranges);
680 
681 /**
682  *
683  * @param c The connection
684  * @return A cookie
685  *
686  * Delivers a request to the X server.
687  *
688  */
689 xcb_void_cookie_t
690 xcb_record_register_clients (xcb_connection_t               *c,
691                              xcb_record_context_t            context,
692                              xcb_record_element_header_t     element_header,
693                              uint32_t                        num_client_specs,
694                              uint32_t                        num_ranges,
695                              const xcb_record_client_spec_t *client_specs,
696                              const xcb_record_range_t       *ranges);
697 
698 xcb_record_client_spec_t *
699 xcb_record_register_clients_client_specs (const xcb_record_register_clients_request_t *R);
700 
701 int
702 xcb_record_register_clients_client_specs_length (const xcb_record_register_clients_request_t *R);
703 
704 xcb_generic_iterator_t
705 xcb_record_register_clients_client_specs_end (const xcb_record_register_clients_request_t *R);
706 
707 xcb_record_range_t *
708 xcb_record_register_clients_ranges (const xcb_record_register_clients_request_t *R);
709 
710 int
711 xcb_record_register_clients_ranges_length (const xcb_record_register_clients_request_t *R);
712 
713 xcb_record_range_iterator_t
714 xcb_record_register_clients_ranges_iterator (const xcb_record_register_clients_request_t *R);
715 
716 int
717 xcb_record_unregister_clients_sizeof (const void  *_buffer);
718 
719 /**
720  *
721  * @param c The connection
722  * @return A cookie
723  *
724  * Delivers a request to the X server.
725  *
726  * This form can be used only if the request will not cause
727  * a reply to be generated. Any returned error will be
728  * saved for handling by xcb_request_check().
729  */
730 xcb_void_cookie_t
731 xcb_record_unregister_clients_checked (xcb_connection_t               *c,
732                                        xcb_record_context_t            context,
733                                        uint32_t                        num_client_specs,
734                                        const xcb_record_client_spec_t *client_specs);
735 
736 /**
737  *
738  * @param c The connection
739  * @return A cookie
740  *
741  * Delivers a request to the X server.
742  *
743  */
744 xcb_void_cookie_t
745 xcb_record_unregister_clients (xcb_connection_t               *c,
746                                xcb_record_context_t            context,
747                                uint32_t                        num_client_specs,
748                                const xcb_record_client_spec_t *client_specs);
749 
750 xcb_record_client_spec_t *
751 xcb_record_unregister_clients_client_specs (const xcb_record_unregister_clients_request_t *R);
752 
753 int
754 xcb_record_unregister_clients_client_specs_length (const xcb_record_unregister_clients_request_t *R);
755 
756 xcb_generic_iterator_t
757 xcb_record_unregister_clients_client_specs_end (const xcb_record_unregister_clients_request_t *R);
758 
759 int
760 xcb_record_get_context_sizeof (const void  *_buffer);
761 
762 /**
763  *
764  * @param c The connection
765  * @return A cookie
766  *
767  * Delivers a request to the X server.
768  *
769  */
770 xcb_record_get_context_cookie_t
771 xcb_record_get_context (xcb_connection_t     *c,
772                         xcb_record_context_t  context);
773 
774 /**
775  *
776  * @param c The connection
777  * @return A cookie
778  *
779  * Delivers a request to the X server.
780  *
781  * This form can be used only if the request will cause
782  * a reply to be generated. Any returned error will be
783  * placed in the event queue.
784  */
785 xcb_record_get_context_cookie_t
786 xcb_record_get_context_unchecked (xcb_connection_t     *c,
787                                   xcb_record_context_t  context);
788 
789 int
790 xcb_record_get_context_intercepted_clients_length (const xcb_record_get_context_reply_t *R);
791 
792 xcb_record_client_info_iterator_t
793 xcb_record_get_context_intercepted_clients_iterator (const xcb_record_get_context_reply_t *R);
794 
795 /**
796  * Return the reply
797  * @param c      The connection
798  * @param cookie The cookie
799  * @param e      The xcb_generic_error_t supplied
800  *
801  * Returns the reply of the request asked by
802  *
803  * The parameter @p e supplied to this function must be NULL if
804  * xcb_record_get_context_unchecked(). is used.
805  * Otherwise, it stores the error if any.
806  *
807  * The returned value must be freed by the caller using free().
808  */
809 xcb_record_get_context_reply_t *
810 xcb_record_get_context_reply (xcb_connection_t                 *c,
811                               xcb_record_get_context_cookie_t   cookie  /**< */,
812                               xcb_generic_error_t             **e);
813 
814 int
815 xcb_record_enable_context_sizeof (const void  *_buffer);
816 
817 /**
818  *
819  * @param c The connection
820  * @return A cookie
821  *
822  * Delivers a request to the X server.
823  *
824  */
825 xcb_record_enable_context_cookie_t
826 xcb_record_enable_context (xcb_connection_t     *c,
827                            xcb_record_context_t  context);
828 
829 /**
830  *
831  * @param c The connection
832  * @return A cookie
833  *
834  * Delivers a request to the X server.
835  *
836  * This form can be used only if the request will cause
837  * a reply to be generated. Any returned error will be
838  * placed in the event queue.
839  */
840 xcb_record_enable_context_cookie_t
841 xcb_record_enable_context_unchecked (xcb_connection_t     *c,
842                                      xcb_record_context_t  context);
843 
844 uint8_t *
845 xcb_record_enable_context_data (const xcb_record_enable_context_reply_t *R);
846 
847 int
848 xcb_record_enable_context_data_length (const xcb_record_enable_context_reply_t *R);
849 
850 xcb_generic_iterator_t
851 xcb_record_enable_context_data_end (const xcb_record_enable_context_reply_t *R);
852 
853 /**
854  * Return the reply
855  * @param c      The connection
856  * @param cookie The cookie
857  * @param e      The xcb_generic_error_t supplied
858  *
859  * Returns the reply of the request asked by
860  *
861  * The parameter @p e supplied to this function must be NULL if
862  * xcb_record_enable_context_unchecked(). is used.
863  * Otherwise, it stores the error if any.
864  *
865  * The returned value must be freed by the caller using free().
866  */
867 xcb_record_enable_context_reply_t *
868 xcb_record_enable_context_reply (xcb_connection_t                    *c,
869                                  xcb_record_enable_context_cookie_t   cookie  /**< */,
870                                  xcb_generic_error_t                **e);
871 
872 /**
873  *
874  * @param c The connection
875  * @return A cookie
876  *
877  * Delivers a request to the X server.
878  *
879  * This form can be used only if the request will not cause
880  * a reply to be generated. Any returned error will be
881  * saved for handling by xcb_request_check().
882  */
883 xcb_void_cookie_t
884 xcb_record_disable_context_checked (xcb_connection_t     *c,
885                                     xcb_record_context_t  context);
886 
887 /**
888  *
889  * @param c The connection
890  * @return A cookie
891  *
892  * Delivers a request to the X server.
893  *
894  */
895 xcb_void_cookie_t
896 xcb_record_disable_context (xcb_connection_t     *c,
897                             xcb_record_context_t  context);
898 
899 /**
900  *
901  * @param c The connection
902  * @return A cookie
903  *
904  * Delivers a request to the X server.
905  *
906  * This form can be used only if the request will not cause
907  * a reply to be generated. Any returned error will be
908  * saved for handling by xcb_request_check().
909  */
910 xcb_void_cookie_t
911 xcb_record_free_context_checked (xcb_connection_t     *c,
912                                  xcb_record_context_t  context);
913 
914 /**
915  *
916  * @param c The connection
917  * @return A cookie
918  *
919  * Delivers a request to the X server.
920  *
921  */
922 xcb_void_cookie_t
923 xcb_record_free_context (xcb_connection_t     *c,
924                          xcb_record_context_t  context);
925 
926 
927 #ifdef __cplusplus
928 }
929 #endif
930 
931 #endif
932 
933 /**
934  * @}
935  */
936