1/*
2 * This file generated automatically from res.xml by c_client.py.
3 * Edit at your peril.
4 */
5
6/**
7 * @defgroup XCB_Res_API XCB Res API
8 * @brief Res XCB Protocol Implementation.
9 * @{
10 **/
11
12#ifndef __RES_H
13#define __RES_H
14
15#include "xcb.h"
16#include "xproto.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#define XCB_RES_MAJOR_VERSION 1
23#define XCB_RES_MINOR_VERSION 2
24
25extern xcb_extension_t xcb_res_id;
26
27/**
28 * @brief xcb_res_client_t
29 **/
30typedef struct xcb_res_client_t {
31    uint32_t resource_base;
32    uint32_t resource_mask;
33} xcb_res_client_t;
34
35/**
36 * @brief xcb_res_client_iterator_t
37 **/
38typedef struct xcb_res_client_iterator_t {
39    xcb_res_client_t *data;
40    int               rem;
41    int               index;
42} xcb_res_client_iterator_t;
43
44/**
45 * @brief xcb_res_type_t
46 **/
47typedef struct xcb_res_type_t {
48    xcb_atom_t resource_type;
49    uint32_t   count;
50} xcb_res_type_t;
51
52/**
53 * @brief xcb_res_type_iterator_t
54 **/
55typedef struct xcb_res_type_iterator_t {
56    xcb_res_type_t *data;
57    int             rem;
58    int             index;
59} xcb_res_type_iterator_t;
60
61typedef enum xcb_res_client_id_mask_t {
62    XCB_RES_CLIENT_ID_MASK_CLIENT_XID = 1,
63    XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID = 2
64} xcb_res_client_id_mask_t;
65
66/**
67 * @brief xcb_res_client_id_spec_t
68 **/
69typedef struct xcb_res_client_id_spec_t {
70    uint32_t client;
71    uint32_t mask;
72} xcb_res_client_id_spec_t;
73
74/**
75 * @brief xcb_res_client_id_spec_iterator_t
76 **/
77typedef struct xcb_res_client_id_spec_iterator_t {
78    xcb_res_client_id_spec_t *data;
79    int                       rem;
80    int                       index;
81} xcb_res_client_id_spec_iterator_t;
82
83/**
84 * @brief xcb_res_client_id_value_t
85 **/
86typedef struct xcb_res_client_id_value_t {
87    xcb_res_client_id_spec_t spec;
88    uint32_t                 length;
89} xcb_res_client_id_value_t;
90
91/**
92 * @brief xcb_res_client_id_value_iterator_t
93 **/
94typedef struct xcb_res_client_id_value_iterator_t {
95    xcb_res_client_id_value_t *data;
96    int                        rem;
97    int                        index;
98} xcb_res_client_id_value_iterator_t;
99
100/**
101 * @brief xcb_res_resource_id_spec_t
102 **/
103typedef struct xcb_res_resource_id_spec_t {
104    uint32_t resource;
105    uint32_t type;
106} xcb_res_resource_id_spec_t;
107
108/**
109 * @brief xcb_res_resource_id_spec_iterator_t
110 **/
111typedef struct xcb_res_resource_id_spec_iterator_t {
112    xcb_res_resource_id_spec_t *data;
113    int                         rem;
114    int                         index;
115} xcb_res_resource_id_spec_iterator_t;
116
117/**
118 * @brief xcb_res_resource_size_spec_t
119 **/
120typedef struct xcb_res_resource_size_spec_t {
121    xcb_res_resource_id_spec_t spec;
122    uint32_t                   bytes;
123    uint32_t                   ref_count;
124    uint32_t                   use_count;
125} xcb_res_resource_size_spec_t;
126
127/**
128 * @brief xcb_res_resource_size_spec_iterator_t
129 **/
130typedef struct xcb_res_resource_size_spec_iterator_t {
131    xcb_res_resource_size_spec_t *data;
132    int                           rem;
133    int                           index;
134} xcb_res_resource_size_spec_iterator_t;
135
136/**
137 * @brief xcb_res_resource_size_value_t
138 **/
139typedef struct xcb_res_resource_size_value_t {
140    xcb_res_resource_size_spec_t size;
141    uint32_t                     num_cross_references;
142} xcb_res_resource_size_value_t;
143
144/**
145 * @brief xcb_res_resource_size_value_iterator_t
146 **/
147typedef struct xcb_res_resource_size_value_iterator_t {
148    xcb_res_resource_size_value_t *data;
149    int                            rem;
150    int                            index;
151} xcb_res_resource_size_value_iterator_t;
152
153/**
154 * @brief xcb_res_query_version_cookie_t
155 **/
156typedef struct xcb_res_query_version_cookie_t {
157    unsigned int sequence;
158} xcb_res_query_version_cookie_t;
159
160/** Opcode for xcb_res_query_version. */
161#define XCB_RES_QUERY_VERSION 0
162
163/**
164 * @brief xcb_res_query_version_request_t
165 **/
166typedef struct xcb_res_query_version_request_t {
167    uint8_t  major_opcode;
168    uint8_t  minor_opcode;
169    uint16_t length;
170    uint8_t  client_major;
171    uint8_t  client_minor;
172} xcb_res_query_version_request_t;
173
174/**
175 * @brief xcb_res_query_version_reply_t
176 **/
177typedef struct xcb_res_query_version_reply_t {
178    uint8_t  response_type;
179    uint8_t  pad0;
180    uint16_t sequence;
181    uint32_t length;
182    uint16_t server_major;
183    uint16_t server_minor;
184} xcb_res_query_version_reply_t;
185
186/**
187 * @brief xcb_res_query_clients_cookie_t
188 **/
189typedef struct xcb_res_query_clients_cookie_t {
190    unsigned int sequence;
191} xcb_res_query_clients_cookie_t;
192
193/** Opcode for xcb_res_query_clients. */
194#define XCB_RES_QUERY_CLIENTS 1
195
196/**
197 * @brief xcb_res_query_clients_request_t
198 **/
199typedef struct xcb_res_query_clients_request_t {
200    uint8_t  major_opcode;
201    uint8_t  minor_opcode;
202    uint16_t length;
203} xcb_res_query_clients_request_t;
204
205/**
206 * @brief xcb_res_query_clients_reply_t
207 **/
208typedef struct xcb_res_query_clients_reply_t {
209    uint8_t  response_type;
210    uint8_t  pad0;
211    uint16_t sequence;
212    uint32_t length;
213    uint32_t num_clients;
214    uint8_t  pad1[20];
215} xcb_res_query_clients_reply_t;
216
217/**
218 * @brief xcb_res_query_client_resources_cookie_t
219 **/
220typedef struct xcb_res_query_client_resources_cookie_t {
221    unsigned int sequence;
222} xcb_res_query_client_resources_cookie_t;
223
224/** Opcode for xcb_res_query_client_resources. */
225#define XCB_RES_QUERY_CLIENT_RESOURCES 2
226
227/**
228 * @brief xcb_res_query_client_resources_request_t
229 **/
230typedef struct xcb_res_query_client_resources_request_t {
231    uint8_t  major_opcode;
232    uint8_t  minor_opcode;
233    uint16_t length;
234    uint32_t xid;
235} xcb_res_query_client_resources_request_t;
236
237/**
238 * @brief xcb_res_query_client_resources_reply_t
239 **/
240typedef struct xcb_res_query_client_resources_reply_t {
241    uint8_t  response_type;
242    uint8_t  pad0;
243    uint16_t sequence;
244    uint32_t length;
245    uint32_t num_types;
246    uint8_t  pad1[20];
247} xcb_res_query_client_resources_reply_t;
248
249/**
250 * @brief xcb_res_query_client_pixmap_bytes_cookie_t
251 **/
252typedef struct xcb_res_query_client_pixmap_bytes_cookie_t {
253    unsigned int sequence;
254} xcb_res_query_client_pixmap_bytes_cookie_t;
255
256/** Opcode for xcb_res_query_client_pixmap_bytes. */
257#define XCB_RES_QUERY_CLIENT_PIXMAP_BYTES 3
258
259/**
260 * @brief xcb_res_query_client_pixmap_bytes_request_t
261 **/
262typedef struct xcb_res_query_client_pixmap_bytes_request_t {
263    uint8_t  major_opcode;
264    uint8_t  minor_opcode;
265    uint16_t length;
266    uint32_t xid;
267} xcb_res_query_client_pixmap_bytes_request_t;
268
269/**
270 * @brief xcb_res_query_client_pixmap_bytes_reply_t
271 **/
272typedef struct xcb_res_query_client_pixmap_bytes_reply_t {
273    uint8_t  response_type;
274    uint8_t  pad0;
275    uint16_t sequence;
276    uint32_t length;
277    uint32_t bytes;
278    uint32_t bytes_overflow;
279} xcb_res_query_client_pixmap_bytes_reply_t;
280
281/**
282 * @brief xcb_res_query_client_ids_cookie_t
283 **/
284typedef struct xcb_res_query_client_ids_cookie_t {
285    unsigned int sequence;
286} xcb_res_query_client_ids_cookie_t;
287
288/** Opcode for xcb_res_query_client_ids. */
289#define XCB_RES_QUERY_CLIENT_IDS 4
290
291/**
292 * @brief xcb_res_query_client_ids_request_t
293 **/
294typedef struct xcb_res_query_client_ids_request_t {
295    uint8_t  major_opcode;
296    uint8_t  minor_opcode;
297    uint16_t length;
298    uint32_t num_specs;
299} xcb_res_query_client_ids_request_t;
300
301/**
302 * @brief xcb_res_query_client_ids_reply_t
303 **/
304typedef struct xcb_res_query_client_ids_reply_t {
305    uint8_t  response_type;
306    uint8_t  pad0;
307    uint16_t sequence;
308    uint32_t length;
309    uint32_t num_ids;
310    uint8_t  pad1[20];
311} xcb_res_query_client_ids_reply_t;
312
313/**
314 * @brief xcb_res_query_resource_bytes_cookie_t
315 **/
316typedef struct xcb_res_query_resource_bytes_cookie_t {
317    unsigned int sequence;
318} xcb_res_query_resource_bytes_cookie_t;
319
320/** Opcode for xcb_res_query_resource_bytes. */
321#define XCB_RES_QUERY_RESOURCE_BYTES 5
322
323/**
324 * @brief xcb_res_query_resource_bytes_request_t
325 **/
326typedef struct xcb_res_query_resource_bytes_request_t {
327    uint8_t  major_opcode;
328    uint8_t  minor_opcode;
329    uint16_t length;
330    uint32_t client;
331    uint32_t num_specs;
332} xcb_res_query_resource_bytes_request_t;
333
334/**
335 * @brief xcb_res_query_resource_bytes_reply_t
336 **/
337typedef struct xcb_res_query_resource_bytes_reply_t {
338    uint8_t  response_type;
339    uint8_t  pad0;
340    uint16_t sequence;
341    uint32_t length;
342    uint32_t num_sizes;
343    uint8_t  pad1[20];
344} xcb_res_query_resource_bytes_reply_t;
345
346/**
347 * Get the next element of the iterator
348 * @param i Pointer to a xcb_res_client_iterator_t
349 *
350 * Get the next element in the iterator. The member rem is
351 * decreased by one. The member data points to the next
352 * element. The member index is increased by sizeof(xcb_res_client_t)
353 */
354void
355xcb_res_client_next (xcb_res_client_iterator_t *i);
356
357/**
358 * Return the iterator pointing to the last element
359 * @param i An xcb_res_client_iterator_t
360 * @return  The iterator pointing to the last element
361 *
362 * Set the current element in the iterator to the last element.
363 * The member rem is set to 0. The member data points to the
364 * last element.
365 */
366xcb_generic_iterator_t
367xcb_res_client_end (xcb_res_client_iterator_t i);
368
369/**
370 * Get the next element of the iterator
371 * @param i Pointer to a xcb_res_type_iterator_t
372 *
373 * Get the next element in the iterator. The member rem is
374 * decreased by one. The member data points to the next
375 * element. The member index is increased by sizeof(xcb_res_type_t)
376 */
377void
378xcb_res_type_next (xcb_res_type_iterator_t *i);
379
380/**
381 * Return the iterator pointing to the last element
382 * @param i An xcb_res_type_iterator_t
383 * @return  The iterator pointing to the last element
384 *
385 * Set the current element in the iterator to the last element.
386 * The member rem is set to 0. The member data points to the
387 * last element.
388 */
389xcb_generic_iterator_t
390xcb_res_type_end (xcb_res_type_iterator_t i);
391
392/**
393 * Get the next element of the iterator
394 * @param i Pointer to a xcb_res_client_id_spec_iterator_t
395 *
396 * Get the next element in the iterator. The member rem is
397 * decreased by one. The member data points to the next
398 * element. The member index is increased by sizeof(xcb_res_client_id_spec_t)
399 */
400void
401xcb_res_client_id_spec_next (xcb_res_client_id_spec_iterator_t *i);
402
403/**
404 * Return the iterator pointing to the last element
405 * @param i An xcb_res_client_id_spec_iterator_t
406 * @return  The iterator pointing to the last element
407 *
408 * Set the current element in the iterator to the last element.
409 * The member rem is set to 0. The member data points to the
410 * last element.
411 */
412xcb_generic_iterator_t
413xcb_res_client_id_spec_end (xcb_res_client_id_spec_iterator_t i);
414
415int
416xcb_res_client_id_value_sizeof (const void  *_buffer);
417
418uint32_t *
419xcb_res_client_id_value_value (const xcb_res_client_id_value_t *R);
420
421int
422xcb_res_client_id_value_value_length (const xcb_res_client_id_value_t *R);
423
424xcb_generic_iterator_t
425xcb_res_client_id_value_value_end (const xcb_res_client_id_value_t *R);
426
427/**
428 * Get the next element of the iterator
429 * @param i Pointer to a xcb_res_client_id_value_iterator_t
430 *
431 * Get the next element in the iterator. The member rem is
432 * decreased by one. The member data points to the next
433 * element. The member index is increased by sizeof(xcb_res_client_id_value_t)
434 */
435void
436xcb_res_client_id_value_next (xcb_res_client_id_value_iterator_t *i);
437
438/**
439 * Return the iterator pointing to the last element
440 * @param i An xcb_res_client_id_value_iterator_t
441 * @return  The iterator pointing to the last element
442 *
443 * Set the current element in the iterator to the last element.
444 * The member rem is set to 0. The member data points to the
445 * last element.
446 */
447xcb_generic_iterator_t
448xcb_res_client_id_value_end (xcb_res_client_id_value_iterator_t i);
449
450/**
451 * Get the next element of the iterator
452 * @param i Pointer to a xcb_res_resource_id_spec_iterator_t
453 *
454 * Get the next element in the iterator. The member rem is
455 * decreased by one. The member data points to the next
456 * element. The member index is increased by sizeof(xcb_res_resource_id_spec_t)
457 */
458void
459xcb_res_resource_id_spec_next (xcb_res_resource_id_spec_iterator_t *i);
460
461/**
462 * Return the iterator pointing to the last element
463 * @param i An xcb_res_resource_id_spec_iterator_t
464 * @return  The iterator pointing to the last element
465 *
466 * Set the current element in the iterator to the last element.
467 * The member rem is set to 0. The member data points to the
468 * last element.
469 */
470xcb_generic_iterator_t
471xcb_res_resource_id_spec_end (xcb_res_resource_id_spec_iterator_t i);
472
473/**
474 * Get the next element of the iterator
475 * @param i Pointer to a xcb_res_resource_size_spec_iterator_t
476 *
477 * Get the next element in the iterator. The member rem is
478 * decreased by one. The member data points to the next
479 * element. The member index is increased by sizeof(xcb_res_resource_size_spec_t)
480 */
481void
482xcb_res_resource_size_spec_next (xcb_res_resource_size_spec_iterator_t *i);
483
484/**
485 * Return the iterator pointing to the last element
486 * @param i An xcb_res_resource_size_spec_iterator_t
487 * @return  The iterator pointing to the last element
488 *
489 * Set the current element in the iterator to the last element.
490 * The member rem is set to 0. The member data points to the
491 * last element.
492 */
493xcb_generic_iterator_t
494xcb_res_resource_size_spec_end (xcb_res_resource_size_spec_iterator_t i);
495
496int
497xcb_res_resource_size_value_sizeof (const void  *_buffer);
498
499xcb_res_resource_size_spec_t *
500xcb_res_resource_size_value_cross_references (const xcb_res_resource_size_value_t *R);
501
502int
503xcb_res_resource_size_value_cross_references_length (const xcb_res_resource_size_value_t *R);
504
505xcb_res_resource_size_spec_iterator_t
506xcb_res_resource_size_value_cross_references_iterator (const xcb_res_resource_size_value_t *R);
507
508/**
509 * Get the next element of the iterator
510 * @param i Pointer to a xcb_res_resource_size_value_iterator_t
511 *
512 * Get the next element in the iterator. The member rem is
513 * decreased by one. The member data points to the next
514 * element. The member index is increased by sizeof(xcb_res_resource_size_value_t)
515 */
516void
517xcb_res_resource_size_value_next (xcb_res_resource_size_value_iterator_t *i);
518
519/**
520 * Return the iterator pointing to the last element
521 * @param i An xcb_res_resource_size_value_iterator_t
522 * @return  The iterator pointing to the last element
523 *
524 * Set the current element in the iterator to the last element.
525 * The member rem is set to 0. The member data points to the
526 * last element.
527 */
528xcb_generic_iterator_t
529xcb_res_resource_size_value_end (xcb_res_resource_size_value_iterator_t i);
530
531/**
532 *
533 * @param c The connection
534 * @return A cookie
535 *
536 * Delivers a request to the X server.
537 *
538 */
539xcb_res_query_version_cookie_t
540xcb_res_query_version (xcb_connection_t *c,
541                       uint8_t           client_major,
542                       uint8_t           client_minor);
543
544/**
545 *
546 * @param c The connection
547 * @return A cookie
548 *
549 * Delivers a request to the X server.
550 *
551 * This form can be used only if the request will cause
552 * a reply to be generated. Any returned error will be
553 * placed in the event queue.
554 */
555xcb_res_query_version_cookie_t
556xcb_res_query_version_unchecked (xcb_connection_t *c,
557                                 uint8_t           client_major,
558                                 uint8_t           client_minor);
559
560/**
561 * Return the reply
562 * @param c      The connection
563 * @param cookie The cookie
564 * @param e      The xcb_generic_error_t supplied
565 *
566 * Returns the reply of the request asked by
567 *
568 * The parameter @p e supplied to this function must be NULL if
569 * xcb_res_query_version_unchecked(). is used.
570 * Otherwise, it stores the error if any.
571 *
572 * The returned value must be freed by the caller using free().
573 */
574xcb_res_query_version_reply_t *
575xcb_res_query_version_reply (xcb_connection_t                *c,
576                             xcb_res_query_version_cookie_t   cookie  /**< */,
577                             xcb_generic_error_t            **e);
578
579int
580xcb_res_query_clients_sizeof (const void  *_buffer);
581
582/**
583 *
584 * @param c The connection
585 * @return A cookie
586 *
587 * Delivers a request to the X server.
588 *
589 */
590xcb_res_query_clients_cookie_t
591xcb_res_query_clients (xcb_connection_t *c);
592
593/**
594 *
595 * @param c The connection
596 * @return A cookie
597 *
598 * Delivers a request to the X server.
599 *
600 * This form can be used only if the request will cause
601 * a reply to be generated. Any returned error will be
602 * placed in the event queue.
603 */
604xcb_res_query_clients_cookie_t
605xcb_res_query_clients_unchecked (xcb_connection_t *c);
606
607xcb_res_client_t *
608xcb_res_query_clients_clients (const xcb_res_query_clients_reply_t *R);
609
610int
611xcb_res_query_clients_clients_length (const xcb_res_query_clients_reply_t *R);
612
613xcb_res_client_iterator_t
614xcb_res_query_clients_clients_iterator (const xcb_res_query_clients_reply_t *R);
615
616/**
617 * Return the reply
618 * @param c      The connection
619 * @param cookie The cookie
620 * @param e      The xcb_generic_error_t supplied
621 *
622 * Returns the reply of the request asked by
623 *
624 * The parameter @p e supplied to this function must be NULL if
625 * xcb_res_query_clients_unchecked(). is used.
626 * Otherwise, it stores the error if any.
627 *
628 * The returned value must be freed by the caller using free().
629 */
630xcb_res_query_clients_reply_t *
631xcb_res_query_clients_reply (xcb_connection_t                *c,
632                             xcb_res_query_clients_cookie_t   cookie  /**< */,
633                             xcb_generic_error_t            **e);
634
635int
636xcb_res_query_client_resources_sizeof (const void  *_buffer);
637
638/**
639 *
640 * @param c The connection
641 * @return A cookie
642 *
643 * Delivers a request to the X server.
644 *
645 */
646xcb_res_query_client_resources_cookie_t
647xcb_res_query_client_resources (xcb_connection_t *c,
648                                uint32_t          xid);
649
650/**
651 *
652 * @param c The connection
653 * @return A cookie
654 *
655 * Delivers a request to the X server.
656 *
657 * This form can be used only if the request will cause
658 * a reply to be generated. Any returned error will be
659 * placed in the event queue.
660 */
661xcb_res_query_client_resources_cookie_t
662xcb_res_query_client_resources_unchecked (xcb_connection_t *c,
663                                          uint32_t          xid);
664
665xcb_res_type_t *
666xcb_res_query_client_resources_types (const xcb_res_query_client_resources_reply_t *R);
667
668int
669xcb_res_query_client_resources_types_length (const xcb_res_query_client_resources_reply_t *R);
670
671xcb_res_type_iterator_t
672xcb_res_query_client_resources_types_iterator (const xcb_res_query_client_resources_reply_t *R);
673
674/**
675 * Return the reply
676 * @param c      The connection
677 * @param cookie The cookie
678 * @param e      The xcb_generic_error_t supplied
679 *
680 * Returns the reply of the request asked by
681 *
682 * The parameter @p e supplied to this function must be NULL if
683 * xcb_res_query_client_resources_unchecked(). is used.
684 * Otherwise, it stores the error if any.
685 *
686 * The returned value must be freed by the caller using free().
687 */
688xcb_res_query_client_resources_reply_t *
689xcb_res_query_client_resources_reply (xcb_connection_t                         *c,
690                                      xcb_res_query_client_resources_cookie_t   cookie  /**< */,
691                                      xcb_generic_error_t                     **e);
692
693/**
694 *
695 * @param c The connection
696 * @return A cookie
697 *
698 * Delivers a request to the X server.
699 *
700 */
701xcb_res_query_client_pixmap_bytes_cookie_t
702xcb_res_query_client_pixmap_bytes (xcb_connection_t *c,
703                                   uint32_t          xid);
704
705/**
706 *
707 * @param c The connection
708 * @return A cookie
709 *
710 * Delivers a request to the X server.
711 *
712 * This form can be used only if the request will cause
713 * a reply to be generated. Any returned error will be
714 * placed in the event queue.
715 */
716xcb_res_query_client_pixmap_bytes_cookie_t
717xcb_res_query_client_pixmap_bytes_unchecked (xcb_connection_t *c,
718                                             uint32_t          xid);
719
720/**
721 * Return the reply
722 * @param c      The connection
723 * @param cookie The cookie
724 * @param e      The xcb_generic_error_t supplied
725 *
726 * Returns the reply of the request asked by
727 *
728 * The parameter @p e supplied to this function must be NULL if
729 * xcb_res_query_client_pixmap_bytes_unchecked(). is used.
730 * Otherwise, it stores the error if any.
731 *
732 * The returned value must be freed by the caller using free().
733 */
734xcb_res_query_client_pixmap_bytes_reply_t *
735xcb_res_query_client_pixmap_bytes_reply (xcb_connection_t                            *c,
736                                         xcb_res_query_client_pixmap_bytes_cookie_t   cookie  /**< */,
737                                         xcb_generic_error_t                        **e);
738
739int
740xcb_res_query_client_ids_sizeof (const void  *_buffer);
741
742/**
743 *
744 * @param c The connection
745 * @return A cookie
746 *
747 * Delivers a request to the X server.
748 *
749 */
750xcb_res_query_client_ids_cookie_t
751xcb_res_query_client_ids (xcb_connection_t               *c,
752                          uint32_t                        num_specs,
753                          const xcb_res_client_id_spec_t *specs);
754
755/**
756 *
757 * @param c The connection
758 * @return A cookie
759 *
760 * Delivers a request to the X server.
761 *
762 * This form can be used only if the request will cause
763 * a reply to be generated. Any returned error will be
764 * placed in the event queue.
765 */
766xcb_res_query_client_ids_cookie_t
767xcb_res_query_client_ids_unchecked (xcb_connection_t               *c,
768                                    uint32_t                        num_specs,
769                                    const xcb_res_client_id_spec_t *specs);
770
771int
772xcb_res_query_client_ids_ids_length (const xcb_res_query_client_ids_reply_t *R);
773
774xcb_res_client_id_value_iterator_t
775xcb_res_query_client_ids_ids_iterator (const xcb_res_query_client_ids_reply_t *R);
776
777/**
778 * Return the reply
779 * @param c      The connection
780 * @param cookie The cookie
781 * @param e      The xcb_generic_error_t supplied
782 *
783 * Returns the reply of the request asked by
784 *
785 * The parameter @p e supplied to this function must be NULL if
786 * xcb_res_query_client_ids_unchecked(). is used.
787 * Otherwise, it stores the error if any.
788 *
789 * The returned value must be freed by the caller using free().
790 */
791xcb_res_query_client_ids_reply_t *
792xcb_res_query_client_ids_reply (xcb_connection_t                   *c,
793                                xcb_res_query_client_ids_cookie_t   cookie  /**< */,
794                                xcb_generic_error_t               **e);
795
796int
797xcb_res_query_resource_bytes_sizeof (const void  *_buffer);
798
799/**
800 *
801 * @param c The connection
802 * @return A cookie
803 *
804 * Delivers a request to the X server.
805 *
806 */
807xcb_res_query_resource_bytes_cookie_t
808xcb_res_query_resource_bytes (xcb_connection_t                 *c,
809                              uint32_t                          client,
810                              uint32_t                          num_specs,
811                              const xcb_res_resource_id_spec_t *specs);
812
813/**
814 *
815 * @param c The connection
816 * @return A cookie
817 *
818 * Delivers a request to the X server.
819 *
820 * This form can be used only if the request will cause
821 * a reply to be generated. Any returned error will be
822 * placed in the event queue.
823 */
824xcb_res_query_resource_bytes_cookie_t
825xcb_res_query_resource_bytes_unchecked (xcb_connection_t                 *c,
826                                        uint32_t                          client,
827                                        uint32_t                          num_specs,
828                                        const xcb_res_resource_id_spec_t *specs);
829
830int
831xcb_res_query_resource_bytes_sizes_length (const xcb_res_query_resource_bytes_reply_t *R);
832
833xcb_res_resource_size_value_iterator_t
834xcb_res_query_resource_bytes_sizes_iterator (const xcb_res_query_resource_bytes_reply_t *R);
835
836/**
837 * Return the reply
838 * @param c      The connection
839 * @param cookie The cookie
840 * @param e      The xcb_generic_error_t supplied
841 *
842 * Returns the reply of the request asked by
843 *
844 * The parameter @p e supplied to this function must be NULL if
845 * xcb_res_query_resource_bytes_unchecked(). is used.
846 * Otherwise, it stores the error if any.
847 *
848 * The returned value must be freed by the caller using free().
849 */
850xcb_res_query_resource_bytes_reply_t *
851xcb_res_query_resource_bytes_reply (xcb_connection_t                       *c,
852                                    xcb_res_query_resource_bytes_cookie_t   cookie  /**< */,
853                                    xcb_generic_error_t                   **e);
854
855
856#ifdef __cplusplus
857}
858#endif
859
860#endif
861
862/**
863 * @}
864 */
865