File Coverage

amqp_framing.c
Criterion Covered Total %
statement 12 1928 0.6
branch 4 744 0.5
condition n/a
subroutine n/a
pod n/a
total 16 2672 0.6


line stmt bran cond sub pod time code
1             // Copyright 2007 - 2021, Alan Antonuk and the rabbitmq-c contributors.
2             // SPDX-License-Identifier: mit
3              
4             /* Generated code. Do not edit. Edit and re-run codegen.py instead. */
5              
6             #ifdef HAVE_CONFIG_H
7             #include "config.h"
8             #endif
9              
10             #include "amqp_private.h"
11             #include
12             #include
13             #include
14             #include
15              
16 0           char const *amqp_constant_name(int constantNumber) {
17 0           switch (constantNumber) {
18 0           case AMQP_FRAME_METHOD:
19 0           return "AMQP_FRAME_METHOD";
20 0           case AMQP_FRAME_HEADER:
21 0           return "AMQP_FRAME_HEADER";
22 0           case AMQP_FRAME_BODY:
23 0           return "AMQP_FRAME_BODY";
24 0           case AMQP_FRAME_HEARTBEAT:
25 0           return "AMQP_FRAME_HEARTBEAT";
26 0           case AMQP_FRAME_MIN_SIZE:
27 0           return "AMQP_FRAME_MIN_SIZE";
28 0           case AMQP_FRAME_END:
29 0           return "AMQP_FRAME_END";
30 0           case AMQP_REPLY_SUCCESS:
31 0           return "AMQP_REPLY_SUCCESS";
32 0           case AMQP_CONTENT_TOO_LARGE:
33 0           return "AMQP_CONTENT_TOO_LARGE";
34 0           case AMQP_NO_ROUTE:
35 0           return "AMQP_NO_ROUTE";
36 0           case AMQP_NO_CONSUMERS:
37 0           return "AMQP_NO_CONSUMERS";
38 0           case AMQP_ACCESS_REFUSED:
39 0           return "AMQP_ACCESS_REFUSED";
40 0           case AMQP_NOT_FOUND:
41 0           return "AMQP_NOT_FOUND";
42 0           case AMQP_RESOURCE_LOCKED:
43 0           return "AMQP_RESOURCE_LOCKED";
44 0           case AMQP_PRECONDITION_FAILED:
45 0           return "AMQP_PRECONDITION_FAILED";
46 0           case AMQP_CONNECTION_FORCED:
47 0           return "AMQP_CONNECTION_FORCED";
48 0           case AMQP_INVALID_PATH:
49 0           return "AMQP_INVALID_PATH";
50 0           case AMQP_FRAME_ERROR:
51 0           return "AMQP_FRAME_ERROR";
52 0           case AMQP_SYNTAX_ERROR:
53 0           return "AMQP_SYNTAX_ERROR";
54 0           case AMQP_COMMAND_INVALID:
55 0           return "AMQP_COMMAND_INVALID";
56 0           case AMQP_CHANNEL_ERROR:
57 0           return "AMQP_CHANNEL_ERROR";
58 0           case AMQP_UNEXPECTED_FRAME:
59 0           return "AMQP_UNEXPECTED_FRAME";
60 0           case AMQP_RESOURCE_ERROR:
61 0           return "AMQP_RESOURCE_ERROR";
62 0           case AMQP_NOT_ALLOWED:
63 0           return "AMQP_NOT_ALLOWED";
64 0           case AMQP_NOT_IMPLEMENTED:
65 0           return "AMQP_NOT_IMPLEMENTED";
66 0           case AMQP_INTERNAL_ERROR:
67 0           return "AMQP_INTERNAL_ERROR";
68 0           default:
69 0           return "(unknown)";
70             }
71             }
72              
73 0           amqp_boolean_t amqp_constant_is_hard_error(int constantNumber) {
74 0           switch (constantNumber) {
75 0           case AMQP_CONNECTION_FORCED:
76 0           return 1;
77 0           case AMQP_INVALID_PATH:
78 0           return 1;
79 0           case AMQP_FRAME_ERROR:
80 0           return 1;
81 0           case AMQP_SYNTAX_ERROR:
82 0           return 1;
83 0           case AMQP_COMMAND_INVALID:
84 0           return 1;
85 0           case AMQP_CHANNEL_ERROR:
86 0           return 1;
87 0           case AMQP_UNEXPECTED_FRAME:
88 0           return 1;
89 0           case AMQP_RESOURCE_ERROR:
90 0           return 1;
91 0           case AMQP_NOT_ALLOWED:
92 0           return 1;
93 0           case AMQP_NOT_IMPLEMENTED:
94 0           return 1;
95 0           case AMQP_INTERNAL_ERROR:
96 0           return 1;
97 0           default:
98 0           return 0;
99             }
100             }
101              
102 0           char const *amqp_method_name(amqp_method_number_t methodNumber) {
103 0           switch (methodNumber) {
104 0           case AMQP_CONNECTION_START_METHOD:
105 0           return "AMQP_CONNECTION_START_METHOD";
106 0           case AMQP_CONNECTION_START_OK_METHOD:
107 0           return "AMQP_CONNECTION_START_OK_METHOD";
108 0           case AMQP_CONNECTION_SECURE_METHOD:
109 0           return "AMQP_CONNECTION_SECURE_METHOD";
110 0           case AMQP_CONNECTION_SECURE_OK_METHOD:
111 0           return "AMQP_CONNECTION_SECURE_OK_METHOD";
112 0           case AMQP_CONNECTION_TUNE_METHOD:
113 0           return "AMQP_CONNECTION_TUNE_METHOD";
114 0           case AMQP_CONNECTION_TUNE_OK_METHOD:
115 0           return "AMQP_CONNECTION_TUNE_OK_METHOD";
116 0           case AMQP_CONNECTION_OPEN_METHOD:
117 0           return "AMQP_CONNECTION_OPEN_METHOD";
118 0           case AMQP_CONNECTION_OPEN_OK_METHOD:
119 0           return "AMQP_CONNECTION_OPEN_OK_METHOD";
120 0           case AMQP_CONNECTION_CLOSE_METHOD:
121 0           return "AMQP_CONNECTION_CLOSE_METHOD";
122 0           case AMQP_CONNECTION_CLOSE_OK_METHOD:
123 0           return "AMQP_CONNECTION_CLOSE_OK_METHOD";
124 0           case AMQP_CONNECTION_BLOCKED_METHOD:
125 0           return "AMQP_CONNECTION_BLOCKED_METHOD";
126 0           case AMQP_CONNECTION_UNBLOCKED_METHOD:
127 0           return "AMQP_CONNECTION_UNBLOCKED_METHOD";
128 0           case AMQP_CONNECTION_UPDATE_SECRET_METHOD:
129 0           return "AMQP_CONNECTION_UPDATE_SECRET_METHOD";
130 0           case AMQP_CONNECTION_UPDATE_SECRET_OK_METHOD:
131 0           return "AMQP_CONNECTION_UPDATE_SECRET_OK_METHOD";
132 0           case AMQP_CHANNEL_OPEN_METHOD:
133 0           return "AMQP_CHANNEL_OPEN_METHOD";
134 0           case AMQP_CHANNEL_OPEN_OK_METHOD:
135 0           return "AMQP_CHANNEL_OPEN_OK_METHOD";
136 0           case AMQP_CHANNEL_FLOW_METHOD:
137 0           return "AMQP_CHANNEL_FLOW_METHOD";
138 0           case AMQP_CHANNEL_FLOW_OK_METHOD:
139 0           return "AMQP_CHANNEL_FLOW_OK_METHOD";
140 0           case AMQP_CHANNEL_CLOSE_METHOD:
141 0           return "AMQP_CHANNEL_CLOSE_METHOD";
142 0           case AMQP_CHANNEL_CLOSE_OK_METHOD:
143 0           return "AMQP_CHANNEL_CLOSE_OK_METHOD";
144 0           case AMQP_ACCESS_REQUEST_METHOD:
145 0           return "AMQP_ACCESS_REQUEST_METHOD";
146 0           case AMQP_ACCESS_REQUEST_OK_METHOD:
147 0           return "AMQP_ACCESS_REQUEST_OK_METHOD";
148 0           case AMQP_EXCHANGE_DECLARE_METHOD:
149 0           return "AMQP_EXCHANGE_DECLARE_METHOD";
150 0           case AMQP_EXCHANGE_DECLARE_OK_METHOD:
151 0           return "AMQP_EXCHANGE_DECLARE_OK_METHOD";
152 0           case AMQP_EXCHANGE_DELETE_METHOD:
153 0           return "AMQP_EXCHANGE_DELETE_METHOD";
154 0           case AMQP_EXCHANGE_DELETE_OK_METHOD:
155 0           return "AMQP_EXCHANGE_DELETE_OK_METHOD";
156 0           case AMQP_EXCHANGE_BIND_METHOD:
157 0           return "AMQP_EXCHANGE_BIND_METHOD";
158 0           case AMQP_EXCHANGE_BIND_OK_METHOD:
159 0           return "AMQP_EXCHANGE_BIND_OK_METHOD";
160 0           case AMQP_EXCHANGE_UNBIND_METHOD:
161 0           return "AMQP_EXCHANGE_UNBIND_METHOD";
162 0           case AMQP_EXCHANGE_UNBIND_OK_METHOD:
163 0           return "AMQP_EXCHANGE_UNBIND_OK_METHOD";
164 0           case AMQP_QUEUE_DECLARE_METHOD:
165 0           return "AMQP_QUEUE_DECLARE_METHOD";
166 0           case AMQP_QUEUE_DECLARE_OK_METHOD:
167 0           return "AMQP_QUEUE_DECLARE_OK_METHOD";
168 0           case AMQP_QUEUE_BIND_METHOD:
169 0           return "AMQP_QUEUE_BIND_METHOD";
170 0           case AMQP_QUEUE_BIND_OK_METHOD:
171 0           return "AMQP_QUEUE_BIND_OK_METHOD";
172 0           case AMQP_QUEUE_PURGE_METHOD:
173 0           return "AMQP_QUEUE_PURGE_METHOD";
174 0           case AMQP_QUEUE_PURGE_OK_METHOD:
175 0           return "AMQP_QUEUE_PURGE_OK_METHOD";
176 0           case AMQP_QUEUE_DELETE_METHOD:
177 0           return "AMQP_QUEUE_DELETE_METHOD";
178 0           case AMQP_QUEUE_DELETE_OK_METHOD:
179 0           return "AMQP_QUEUE_DELETE_OK_METHOD";
180 0           case AMQP_QUEUE_UNBIND_METHOD:
181 0           return "AMQP_QUEUE_UNBIND_METHOD";
182 0           case AMQP_QUEUE_UNBIND_OK_METHOD:
183 0           return "AMQP_QUEUE_UNBIND_OK_METHOD";
184 0           case AMQP_BASIC_QOS_METHOD:
185 0           return "AMQP_BASIC_QOS_METHOD";
186 0           case AMQP_BASIC_QOS_OK_METHOD:
187 0           return "AMQP_BASIC_QOS_OK_METHOD";
188 0           case AMQP_BASIC_CONSUME_METHOD:
189 0           return "AMQP_BASIC_CONSUME_METHOD";
190 0           case AMQP_BASIC_CONSUME_OK_METHOD:
191 0           return "AMQP_BASIC_CONSUME_OK_METHOD";
192 0           case AMQP_BASIC_CANCEL_METHOD:
193 0           return "AMQP_BASIC_CANCEL_METHOD";
194 0           case AMQP_BASIC_CANCEL_OK_METHOD:
195 0           return "AMQP_BASIC_CANCEL_OK_METHOD";
196 0           case AMQP_BASIC_PUBLISH_METHOD:
197 0           return "AMQP_BASIC_PUBLISH_METHOD";
198 0           case AMQP_BASIC_RETURN_METHOD:
199 0           return "AMQP_BASIC_RETURN_METHOD";
200 0           case AMQP_BASIC_DELIVER_METHOD:
201 0           return "AMQP_BASIC_DELIVER_METHOD";
202 0           case AMQP_BASIC_GET_METHOD:
203 0           return "AMQP_BASIC_GET_METHOD";
204 0           case AMQP_BASIC_GET_OK_METHOD:
205 0           return "AMQP_BASIC_GET_OK_METHOD";
206 0           case AMQP_BASIC_GET_EMPTY_METHOD:
207 0           return "AMQP_BASIC_GET_EMPTY_METHOD";
208 0           case AMQP_BASIC_ACK_METHOD:
209 0           return "AMQP_BASIC_ACK_METHOD";
210 0           case AMQP_BASIC_REJECT_METHOD:
211 0           return "AMQP_BASIC_REJECT_METHOD";
212 0           case AMQP_BASIC_RECOVER_ASYNC_METHOD:
213 0           return "AMQP_BASIC_RECOVER_ASYNC_METHOD";
214 0           case AMQP_BASIC_RECOVER_METHOD:
215 0           return "AMQP_BASIC_RECOVER_METHOD";
216 0           case AMQP_BASIC_RECOVER_OK_METHOD:
217 0           return "AMQP_BASIC_RECOVER_OK_METHOD";
218 0           case AMQP_BASIC_NACK_METHOD:
219 0           return "AMQP_BASIC_NACK_METHOD";
220 0           case AMQP_TX_SELECT_METHOD:
221 0           return "AMQP_TX_SELECT_METHOD";
222 0           case AMQP_TX_SELECT_OK_METHOD:
223 0           return "AMQP_TX_SELECT_OK_METHOD";
224 0           case AMQP_TX_COMMIT_METHOD:
225 0           return "AMQP_TX_COMMIT_METHOD";
226 0           case AMQP_TX_COMMIT_OK_METHOD:
227 0           return "AMQP_TX_COMMIT_OK_METHOD";
228 0           case AMQP_TX_ROLLBACK_METHOD:
229 0           return "AMQP_TX_ROLLBACK_METHOD";
230 0           case AMQP_TX_ROLLBACK_OK_METHOD:
231 0           return "AMQP_TX_ROLLBACK_OK_METHOD";
232 0           case AMQP_CONFIRM_SELECT_METHOD:
233 0           return "AMQP_CONFIRM_SELECT_METHOD";
234 0           case AMQP_CONFIRM_SELECT_OK_METHOD:
235 0           return "AMQP_CONFIRM_SELECT_OK_METHOD";
236 0           default:
237 0           return NULL;
238             }
239             }
240              
241 0           amqp_boolean_t amqp_method_has_content(amqp_method_number_t methodNumber) {
242 0           switch (methodNumber) {
243 0           case AMQP_BASIC_PUBLISH_METHOD:
244 0           return 1;
245 0           case AMQP_BASIC_RETURN_METHOD:
246 0           return 1;
247 0           case AMQP_BASIC_DELIVER_METHOD:
248 0           return 1;
249 0           case AMQP_BASIC_GET_OK_METHOD:
250 0           return 1;
251 0           default:
252 0           return 0;
253             }
254             }
255              
256 0           int amqp_decode_method(amqp_method_number_t methodNumber, amqp_pool_t *pool,
257             amqp_bytes_t encoded, void **decoded) {
258 0           size_t offset = 0;
259             uint8_t bit_buffer;
260              
261 0           switch (methodNumber) {
262 0           case AMQP_CONNECTION_START_METHOD: {
263 0           amqp_connection_start_t *m = (amqp_connection_start_t *)amqp_pool_alloc(
264             pool, sizeof(amqp_connection_start_t));
265 0 0         if (m == NULL) {
266 0           return AMQP_STATUS_NO_MEMORY;
267             }
268 0 0         if (!amqp_decode_8(encoded, &offset, &m->version_major))
269 0           return AMQP_STATUS_BAD_AMQP_DATA;
270 0 0         if (!amqp_decode_8(encoded, &offset, &m->version_minor))
271 0           return AMQP_STATUS_BAD_AMQP_DATA;
272             {
273             int res =
274 0           amqp_decode_table(encoded, pool, &(m->server_properties), &offset);
275 0 0         if (res < 0) return res;
276             }
277             {
278             uint32_t len;
279 0           if (!amqp_decode_32(encoded, &offset, &len) ||
280 0           !amqp_decode_bytes(encoded, &offset, &m->mechanisms, len))
281 0           return AMQP_STATUS_BAD_AMQP_DATA;
282             }
283             {
284             uint32_t len;
285 0           if (!amqp_decode_32(encoded, &offset, &len) ||
286 0           !amqp_decode_bytes(encoded, &offset, &m->locales, len))
287 0           return AMQP_STATUS_BAD_AMQP_DATA;
288             }
289 0           *decoded = m;
290 0           return 0;
291             }
292 0           case AMQP_CONNECTION_START_OK_METHOD: {
293             amqp_connection_start_ok_t *m =
294 0           (amqp_connection_start_ok_t *)amqp_pool_alloc(
295             pool, sizeof(amqp_connection_start_ok_t));
296 0 0         if (m == NULL) {
297 0           return AMQP_STATUS_NO_MEMORY;
298             }
299             {
300             int res =
301 0           amqp_decode_table(encoded, pool, &(m->client_properties), &offset);
302 0 0         if (res < 0) return res;
303             }
304             {
305             uint8_t len;
306 0           if (!amqp_decode_8(encoded, &offset, &len) ||
307 0           !amqp_decode_bytes(encoded, &offset, &m->mechanism, len))
308 0           return AMQP_STATUS_BAD_AMQP_DATA;
309             }
310             {
311             uint32_t len;
312 0           if (!amqp_decode_32(encoded, &offset, &len) ||
313 0           !amqp_decode_bytes(encoded, &offset, &m->response, len))
314 0           return AMQP_STATUS_BAD_AMQP_DATA;
315             }
316             {
317             uint8_t len;
318 0           if (!amqp_decode_8(encoded, &offset, &len) ||
319 0           !amqp_decode_bytes(encoded, &offset, &m->locale, len))
320 0           return AMQP_STATUS_BAD_AMQP_DATA;
321             }
322 0           *decoded = m;
323 0           return 0;
324             }
325 0           case AMQP_CONNECTION_SECURE_METHOD: {
326 0           amqp_connection_secure_t *m = (amqp_connection_secure_t *)amqp_pool_alloc(
327             pool, sizeof(amqp_connection_secure_t));
328 0 0         if (m == NULL) {
329 0           return AMQP_STATUS_NO_MEMORY;
330             }
331             {
332             uint32_t len;
333 0           if (!amqp_decode_32(encoded, &offset, &len) ||
334 0           !amqp_decode_bytes(encoded, &offset, &m->challenge, len))
335 0           return AMQP_STATUS_BAD_AMQP_DATA;
336             }
337 0           *decoded = m;
338 0           return 0;
339             }
340 0           case AMQP_CONNECTION_SECURE_OK_METHOD: {
341             amqp_connection_secure_ok_t *m =
342 0           (amqp_connection_secure_ok_t *)amqp_pool_alloc(
343             pool, sizeof(amqp_connection_secure_ok_t));
344 0 0         if (m == NULL) {
345 0           return AMQP_STATUS_NO_MEMORY;
346             }
347             {
348             uint32_t len;
349 0           if (!amqp_decode_32(encoded, &offset, &len) ||
350 0           !amqp_decode_bytes(encoded, &offset, &m->response, len))
351 0           return AMQP_STATUS_BAD_AMQP_DATA;
352             }
353 0           *decoded = m;
354 0           return 0;
355             }
356 0           case AMQP_CONNECTION_TUNE_METHOD: {
357 0           amqp_connection_tune_t *m = (amqp_connection_tune_t *)amqp_pool_alloc(
358             pool, sizeof(amqp_connection_tune_t));
359 0 0         if (m == NULL) {
360 0           return AMQP_STATUS_NO_MEMORY;
361             }
362 0 0         if (!amqp_decode_16(encoded, &offset, &m->channel_max))
363 0           return AMQP_STATUS_BAD_AMQP_DATA;
364 0 0         if (!amqp_decode_32(encoded, &offset, &m->frame_max))
365 0           return AMQP_STATUS_BAD_AMQP_DATA;
366 0 0         if (!amqp_decode_16(encoded, &offset, &m->heartbeat))
367 0           return AMQP_STATUS_BAD_AMQP_DATA;
368 0           *decoded = m;
369 0           return 0;
370             }
371 0           case AMQP_CONNECTION_TUNE_OK_METHOD: {
372             amqp_connection_tune_ok_t *m =
373 0           (amqp_connection_tune_ok_t *)amqp_pool_alloc(
374             pool, sizeof(amqp_connection_tune_ok_t));
375 0 0         if (m == NULL) {
376 0           return AMQP_STATUS_NO_MEMORY;
377             }
378 0 0         if (!amqp_decode_16(encoded, &offset, &m->channel_max))
379 0           return AMQP_STATUS_BAD_AMQP_DATA;
380 0 0         if (!amqp_decode_32(encoded, &offset, &m->frame_max))
381 0           return AMQP_STATUS_BAD_AMQP_DATA;
382 0 0         if (!amqp_decode_16(encoded, &offset, &m->heartbeat))
383 0           return AMQP_STATUS_BAD_AMQP_DATA;
384 0           *decoded = m;
385 0           return 0;
386             }
387 0           case AMQP_CONNECTION_OPEN_METHOD: {
388 0           amqp_connection_open_t *m = (amqp_connection_open_t *)amqp_pool_alloc(
389             pool, sizeof(amqp_connection_open_t));
390 0 0         if (m == NULL) {
391 0           return AMQP_STATUS_NO_MEMORY;
392             }
393             {
394             uint8_t len;
395 0           if (!amqp_decode_8(encoded, &offset, &len) ||
396 0           !amqp_decode_bytes(encoded, &offset, &m->virtual_host, len))
397 0           return AMQP_STATUS_BAD_AMQP_DATA;
398             }
399             {
400             uint8_t len;
401 0           if (!amqp_decode_8(encoded, &offset, &len) ||
402 0           !amqp_decode_bytes(encoded, &offset, &m->capabilities, len))
403 0           return AMQP_STATUS_BAD_AMQP_DATA;
404             }
405 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
406 0           return AMQP_STATUS_BAD_AMQP_DATA;
407 0           m->insist = (bit_buffer & (1 << 0)) ? 1 : 0;
408 0           *decoded = m;
409 0           return 0;
410             }
411 0           case AMQP_CONNECTION_OPEN_OK_METHOD: {
412             amqp_connection_open_ok_t *m =
413 0           (amqp_connection_open_ok_t *)amqp_pool_alloc(
414             pool, sizeof(amqp_connection_open_ok_t));
415 0 0         if (m == NULL) {
416 0           return AMQP_STATUS_NO_MEMORY;
417             }
418             {
419             uint8_t len;
420 0           if (!amqp_decode_8(encoded, &offset, &len) ||
421 0           !amqp_decode_bytes(encoded, &offset, &m->known_hosts, len))
422 0           return AMQP_STATUS_BAD_AMQP_DATA;
423             }
424 0           *decoded = m;
425 0           return 0;
426             }
427 0           case AMQP_CONNECTION_CLOSE_METHOD: {
428 0           amqp_connection_close_t *m = (amqp_connection_close_t *)amqp_pool_alloc(
429             pool, sizeof(amqp_connection_close_t));
430 0 0         if (m == NULL) {
431 0           return AMQP_STATUS_NO_MEMORY;
432             }
433 0 0         if (!amqp_decode_16(encoded, &offset, &m->reply_code))
434 0           return AMQP_STATUS_BAD_AMQP_DATA;
435             {
436             uint8_t len;
437 0           if (!amqp_decode_8(encoded, &offset, &len) ||
438 0           !amqp_decode_bytes(encoded, &offset, &m->reply_text, len))
439 0           return AMQP_STATUS_BAD_AMQP_DATA;
440             }
441 0 0         if (!amqp_decode_16(encoded, &offset, &m->class_id))
442 0           return AMQP_STATUS_BAD_AMQP_DATA;
443 0 0         if (!amqp_decode_16(encoded, &offset, &m->method_id))
444 0           return AMQP_STATUS_BAD_AMQP_DATA;
445 0           *decoded = m;
446 0           return 0;
447             }
448 0           case AMQP_CONNECTION_CLOSE_OK_METHOD: {
449             amqp_connection_close_ok_t *m =
450 0           (amqp_connection_close_ok_t *)amqp_pool_alloc(
451             pool, sizeof(amqp_connection_close_ok_t));
452 0 0         if (m == NULL) {
453 0           return AMQP_STATUS_NO_MEMORY;
454             }
455 0           *decoded = m;
456 0           return 0;
457             }
458 0           case AMQP_CONNECTION_BLOCKED_METHOD: {
459             amqp_connection_blocked_t *m =
460 0           (amqp_connection_blocked_t *)amqp_pool_alloc(
461             pool, sizeof(amqp_connection_blocked_t));
462 0 0         if (m == NULL) {
463 0           return AMQP_STATUS_NO_MEMORY;
464             }
465             {
466             uint8_t len;
467 0           if (!amqp_decode_8(encoded, &offset, &len) ||
468 0           !amqp_decode_bytes(encoded, &offset, &m->reason, len))
469 0           return AMQP_STATUS_BAD_AMQP_DATA;
470             }
471 0           *decoded = m;
472 0           return 0;
473             }
474 0           case AMQP_CONNECTION_UNBLOCKED_METHOD: {
475             amqp_connection_unblocked_t *m =
476 0           (amqp_connection_unblocked_t *)amqp_pool_alloc(
477             pool, sizeof(amqp_connection_unblocked_t));
478 0 0         if (m == NULL) {
479 0           return AMQP_STATUS_NO_MEMORY;
480             }
481 0           *decoded = m;
482 0           return 0;
483             }
484 0           case AMQP_CONNECTION_UPDATE_SECRET_METHOD: {
485             amqp_connection_update_secret_t *m =
486 0           (amqp_connection_update_secret_t *)amqp_pool_alloc(
487             pool, sizeof(amqp_connection_update_secret_t));
488 0 0         if (m == NULL) {
489 0           return AMQP_STATUS_NO_MEMORY;
490             }
491             {
492             uint32_t len;
493 0           if (!amqp_decode_32(encoded, &offset, &len) ||
494 0           !amqp_decode_bytes(encoded, &offset, &m->new_secret, len))
495 0           return AMQP_STATUS_BAD_AMQP_DATA;
496             }
497             {
498             uint8_t len;
499 0           if (!amqp_decode_8(encoded, &offset, &len) ||
500 0           !amqp_decode_bytes(encoded, &offset, &m->reason, len))
501 0           return AMQP_STATUS_BAD_AMQP_DATA;
502             }
503 0           *decoded = m;
504 0           return 0;
505             }
506 0           case AMQP_CONNECTION_UPDATE_SECRET_OK_METHOD: {
507             amqp_connection_update_secret_ok_t *m =
508 0           (amqp_connection_update_secret_ok_t *)amqp_pool_alloc(
509             pool, sizeof(amqp_connection_update_secret_ok_t));
510 0 0         if (m == NULL) {
511 0           return AMQP_STATUS_NO_MEMORY;
512             }
513 0           *decoded = m;
514 0           return 0;
515             }
516 0           case AMQP_CHANNEL_OPEN_METHOD: {
517 0           amqp_channel_open_t *m = (amqp_channel_open_t *)amqp_pool_alloc(
518             pool, sizeof(amqp_channel_open_t));
519 0 0         if (m == NULL) {
520 0           return AMQP_STATUS_NO_MEMORY;
521             }
522             {
523             uint8_t len;
524 0           if (!amqp_decode_8(encoded, &offset, &len) ||
525 0           !amqp_decode_bytes(encoded, &offset, &m->out_of_band, len))
526 0           return AMQP_STATUS_BAD_AMQP_DATA;
527             }
528 0           *decoded = m;
529 0           return 0;
530             }
531 0           case AMQP_CHANNEL_OPEN_OK_METHOD: {
532 0           amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *)amqp_pool_alloc(
533             pool, sizeof(amqp_channel_open_ok_t));
534 0 0         if (m == NULL) {
535 0           return AMQP_STATUS_NO_MEMORY;
536             }
537             {
538             uint32_t len;
539 0           if (!amqp_decode_32(encoded, &offset, &len) ||
540 0           !amqp_decode_bytes(encoded, &offset, &m->channel_id, len))
541 0           return AMQP_STATUS_BAD_AMQP_DATA;
542             }
543 0           *decoded = m;
544 0           return 0;
545             }
546 0           case AMQP_CHANNEL_FLOW_METHOD: {
547 0           amqp_channel_flow_t *m = (amqp_channel_flow_t *)amqp_pool_alloc(
548             pool, sizeof(amqp_channel_flow_t));
549 0 0         if (m == NULL) {
550 0           return AMQP_STATUS_NO_MEMORY;
551             }
552 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
553 0           return AMQP_STATUS_BAD_AMQP_DATA;
554 0           m->active = (bit_buffer & (1 << 0)) ? 1 : 0;
555 0           *decoded = m;
556 0           return 0;
557             }
558 0           case AMQP_CHANNEL_FLOW_OK_METHOD: {
559 0           amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *)amqp_pool_alloc(
560             pool, sizeof(amqp_channel_flow_ok_t));
561 0 0         if (m == NULL) {
562 0           return AMQP_STATUS_NO_MEMORY;
563             }
564 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
565 0           return AMQP_STATUS_BAD_AMQP_DATA;
566 0           m->active = (bit_buffer & (1 << 0)) ? 1 : 0;
567 0           *decoded = m;
568 0           return 0;
569             }
570 0           case AMQP_CHANNEL_CLOSE_METHOD: {
571 0           amqp_channel_close_t *m = (amqp_channel_close_t *)amqp_pool_alloc(
572             pool, sizeof(amqp_channel_close_t));
573 0 0         if (m == NULL) {
574 0           return AMQP_STATUS_NO_MEMORY;
575             }
576 0 0         if (!amqp_decode_16(encoded, &offset, &m->reply_code))
577 0           return AMQP_STATUS_BAD_AMQP_DATA;
578             {
579             uint8_t len;
580 0           if (!amqp_decode_8(encoded, &offset, &len) ||
581 0           !amqp_decode_bytes(encoded, &offset, &m->reply_text, len))
582 0           return AMQP_STATUS_BAD_AMQP_DATA;
583             }
584 0 0         if (!amqp_decode_16(encoded, &offset, &m->class_id))
585 0           return AMQP_STATUS_BAD_AMQP_DATA;
586 0 0         if (!amqp_decode_16(encoded, &offset, &m->method_id))
587 0           return AMQP_STATUS_BAD_AMQP_DATA;
588 0           *decoded = m;
589 0           return 0;
590             }
591 0           case AMQP_CHANNEL_CLOSE_OK_METHOD: {
592 0           amqp_channel_close_ok_t *m = (amqp_channel_close_ok_t *)amqp_pool_alloc(
593             pool, sizeof(amqp_channel_close_ok_t));
594 0 0         if (m == NULL) {
595 0           return AMQP_STATUS_NO_MEMORY;
596             }
597 0           *decoded = m;
598 0           return 0;
599             }
600 0           case AMQP_ACCESS_REQUEST_METHOD: {
601 0           amqp_access_request_t *m = (amqp_access_request_t *)amqp_pool_alloc(
602             pool, sizeof(amqp_access_request_t));
603 0 0         if (m == NULL) {
604 0           return AMQP_STATUS_NO_MEMORY;
605             }
606             {
607             uint8_t len;
608 0           if (!amqp_decode_8(encoded, &offset, &len) ||
609 0           !amqp_decode_bytes(encoded, &offset, &m->realm, len))
610 0           return AMQP_STATUS_BAD_AMQP_DATA;
611             }
612 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
613 0           return AMQP_STATUS_BAD_AMQP_DATA;
614 0           m->exclusive = (bit_buffer & (1 << 0)) ? 1 : 0;
615 0           m->passive = (bit_buffer & (1 << 1)) ? 1 : 0;
616 0           m->active = (bit_buffer & (1 << 2)) ? 1 : 0;
617 0           m->write = (bit_buffer & (1 << 3)) ? 1 : 0;
618 0           m->read = (bit_buffer & (1 << 4)) ? 1 : 0;
619 0           *decoded = m;
620 0           return 0;
621             }
622 0           case AMQP_ACCESS_REQUEST_OK_METHOD: {
623 0           amqp_access_request_ok_t *m = (amqp_access_request_ok_t *)amqp_pool_alloc(
624             pool, sizeof(amqp_access_request_ok_t));
625 0 0         if (m == NULL) {
626 0           return AMQP_STATUS_NO_MEMORY;
627             }
628 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
629 0           return AMQP_STATUS_BAD_AMQP_DATA;
630 0           *decoded = m;
631 0           return 0;
632             }
633 0           case AMQP_EXCHANGE_DECLARE_METHOD: {
634 0           amqp_exchange_declare_t *m = (amqp_exchange_declare_t *)amqp_pool_alloc(
635             pool, sizeof(amqp_exchange_declare_t));
636 0 0         if (m == NULL) {
637 0           return AMQP_STATUS_NO_MEMORY;
638             }
639 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
640 0           return AMQP_STATUS_BAD_AMQP_DATA;
641             {
642             uint8_t len;
643 0           if (!amqp_decode_8(encoded, &offset, &len) ||
644 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
645 0           return AMQP_STATUS_BAD_AMQP_DATA;
646             }
647             {
648             uint8_t len;
649 0           if (!amqp_decode_8(encoded, &offset, &len) ||
650 0           !amqp_decode_bytes(encoded, &offset, &m->type, len))
651 0           return AMQP_STATUS_BAD_AMQP_DATA;
652             }
653 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
654 0           return AMQP_STATUS_BAD_AMQP_DATA;
655 0           m->passive = (bit_buffer & (1 << 0)) ? 1 : 0;
656 0           m->durable = (bit_buffer & (1 << 1)) ? 1 : 0;
657 0           m->auto_delete = (bit_buffer & (1 << 2)) ? 1 : 0;
658 0           m->internal = (bit_buffer & (1 << 3)) ? 1 : 0;
659 0           m->nowait = (bit_buffer & (1 << 4)) ? 1 : 0;
660             {
661 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
662 0 0         if (res < 0) return res;
663             }
664 0           *decoded = m;
665 0           return 0;
666             }
667 0           case AMQP_EXCHANGE_DECLARE_OK_METHOD: {
668             amqp_exchange_declare_ok_t *m =
669 0           (amqp_exchange_declare_ok_t *)amqp_pool_alloc(
670             pool, sizeof(amqp_exchange_declare_ok_t));
671 0 0         if (m == NULL) {
672 0           return AMQP_STATUS_NO_MEMORY;
673             }
674 0           *decoded = m;
675 0           return 0;
676             }
677 0           case AMQP_EXCHANGE_DELETE_METHOD: {
678 0           amqp_exchange_delete_t *m = (amqp_exchange_delete_t *)amqp_pool_alloc(
679             pool, sizeof(amqp_exchange_delete_t));
680 0 0         if (m == NULL) {
681 0           return AMQP_STATUS_NO_MEMORY;
682             }
683 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
684 0           return AMQP_STATUS_BAD_AMQP_DATA;
685             {
686             uint8_t len;
687 0           if (!amqp_decode_8(encoded, &offset, &len) ||
688 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
689 0           return AMQP_STATUS_BAD_AMQP_DATA;
690             }
691 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
692 0           return AMQP_STATUS_BAD_AMQP_DATA;
693 0           m->if_unused = (bit_buffer & (1 << 0)) ? 1 : 0;
694 0           m->nowait = (bit_buffer & (1 << 1)) ? 1 : 0;
695 0           *decoded = m;
696 0           return 0;
697             }
698 0           case AMQP_EXCHANGE_DELETE_OK_METHOD: {
699             amqp_exchange_delete_ok_t *m =
700 0           (amqp_exchange_delete_ok_t *)amqp_pool_alloc(
701             pool, sizeof(amqp_exchange_delete_ok_t));
702 0 0         if (m == NULL) {
703 0           return AMQP_STATUS_NO_MEMORY;
704             }
705 0           *decoded = m;
706 0           return 0;
707             }
708 0           case AMQP_EXCHANGE_BIND_METHOD: {
709 0           amqp_exchange_bind_t *m = (amqp_exchange_bind_t *)amqp_pool_alloc(
710             pool, sizeof(amqp_exchange_bind_t));
711 0 0         if (m == NULL) {
712 0           return AMQP_STATUS_NO_MEMORY;
713             }
714 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
715 0           return AMQP_STATUS_BAD_AMQP_DATA;
716             {
717             uint8_t len;
718 0           if (!amqp_decode_8(encoded, &offset, &len) ||
719 0           !amqp_decode_bytes(encoded, &offset, &m->destination, len))
720 0           return AMQP_STATUS_BAD_AMQP_DATA;
721             }
722             {
723             uint8_t len;
724 0           if (!amqp_decode_8(encoded, &offset, &len) ||
725 0           !amqp_decode_bytes(encoded, &offset, &m->source, len))
726 0           return AMQP_STATUS_BAD_AMQP_DATA;
727             }
728             {
729             uint8_t len;
730 0           if (!amqp_decode_8(encoded, &offset, &len) ||
731 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
732 0           return AMQP_STATUS_BAD_AMQP_DATA;
733             }
734 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
735 0           return AMQP_STATUS_BAD_AMQP_DATA;
736 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
737             {
738 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
739 0 0         if (res < 0) return res;
740             }
741 0           *decoded = m;
742 0           return 0;
743             }
744 0           case AMQP_EXCHANGE_BIND_OK_METHOD: {
745 0           amqp_exchange_bind_ok_t *m = (amqp_exchange_bind_ok_t *)amqp_pool_alloc(
746             pool, sizeof(amqp_exchange_bind_ok_t));
747 0 0         if (m == NULL) {
748 0           return AMQP_STATUS_NO_MEMORY;
749             }
750 0           *decoded = m;
751 0           return 0;
752             }
753 0           case AMQP_EXCHANGE_UNBIND_METHOD: {
754 0           amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *)amqp_pool_alloc(
755             pool, sizeof(amqp_exchange_unbind_t));
756 0 0         if (m == NULL) {
757 0           return AMQP_STATUS_NO_MEMORY;
758             }
759 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
760 0           return AMQP_STATUS_BAD_AMQP_DATA;
761             {
762             uint8_t len;
763 0           if (!amqp_decode_8(encoded, &offset, &len) ||
764 0           !amqp_decode_bytes(encoded, &offset, &m->destination, len))
765 0           return AMQP_STATUS_BAD_AMQP_DATA;
766             }
767             {
768             uint8_t len;
769 0           if (!amqp_decode_8(encoded, &offset, &len) ||
770 0           !amqp_decode_bytes(encoded, &offset, &m->source, len))
771 0           return AMQP_STATUS_BAD_AMQP_DATA;
772             }
773             {
774             uint8_t len;
775 0           if (!amqp_decode_8(encoded, &offset, &len) ||
776 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
777 0           return AMQP_STATUS_BAD_AMQP_DATA;
778             }
779 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
780 0           return AMQP_STATUS_BAD_AMQP_DATA;
781 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
782             {
783 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
784 0 0         if (res < 0) return res;
785             }
786 0           *decoded = m;
787 0           return 0;
788             }
789 0           case AMQP_EXCHANGE_UNBIND_OK_METHOD: {
790             amqp_exchange_unbind_ok_t *m =
791 0           (amqp_exchange_unbind_ok_t *)amqp_pool_alloc(
792             pool, sizeof(amqp_exchange_unbind_ok_t));
793 0 0         if (m == NULL) {
794 0           return AMQP_STATUS_NO_MEMORY;
795             }
796 0           *decoded = m;
797 0           return 0;
798             }
799 0           case AMQP_QUEUE_DECLARE_METHOD: {
800 0           amqp_queue_declare_t *m = (amqp_queue_declare_t *)amqp_pool_alloc(
801             pool, sizeof(amqp_queue_declare_t));
802 0 0         if (m == NULL) {
803 0           return AMQP_STATUS_NO_MEMORY;
804             }
805 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
806 0           return AMQP_STATUS_BAD_AMQP_DATA;
807             {
808             uint8_t len;
809 0           if (!amqp_decode_8(encoded, &offset, &len) ||
810 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
811 0           return AMQP_STATUS_BAD_AMQP_DATA;
812             }
813 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
814 0           return AMQP_STATUS_BAD_AMQP_DATA;
815 0           m->passive = (bit_buffer & (1 << 0)) ? 1 : 0;
816 0           m->durable = (bit_buffer & (1 << 1)) ? 1 : 0;
817 0           m->exclusive = (bit_buffer & (1 << 2)) ? 1 : 0;
818 0           m->auto_delete = (bit_buffer & (1 << 3)) ? 1 : 0;
819 0           m->nowait = (bit_buffer & (1 << 4)) ? 1 : 0;
820             {
821 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
822 0 0         if (res < 0) return res;
823             }
824 0           *decoded = m;
825 0           return 0;
826             }
827 0           case AMQP_QUEUE_DECLARE_OK_METHOD: {
828 0           amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *)amqp_pool_alloc(
829             pool, sizeof(amqp_queue_declare_ok_t));
830 0 0         if (m == NULL) {
831 0           return AMQP_STATUS_NO_MEMORY;
832             }
833             {
834             uint8_t len;
835 0           if (!amqp_decode_8(encoded, &offset, &len) ||
836 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
837 0           return AMQP_STATUS_BAD_AMQP_DATA;
838             }
839 0 0         if (!amqp_decode_32(encoded, &offset, &m->message_count))
840 0           return AMQP_STATUS_BAD_AMQP_DATA;
841 0 0         if (!amqp_decode_32(encoded, &offset, &m->consumer_count))
842 0           return AMQP_STATUS_BAD_AMQP_DATA;
843 0           *decoded = m;
844 0           return 0;
845             }
846 0           case AMQP_QUEUE_BIND_METHOD: {
847             amqp_queue_bind_t *m =
848 0           (amqp_queue_bind_t *)amqp_pool_alloc(pool, sizeof(amqp_queue_bind_t));
849 0 0         if (m == NULL) {
850 0           return AMQP_STATUS_NO_MEMORY;
851             }
852 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
853 0           return AMQP_STATUS_BAD_AMQP_DATA;
854             {
855             uint8_t len;
856 0           if (!amqp_decode_8(encoded, &offset, &len) ||
857 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
858 0           return AMQP_STATUS_BAD_AMQP_DATA;
859             }
860             {
861             uint8_t len;
862 0           if (!amqp_decode_8(encoded, &offset, &len) ||
863 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
864 0           return AMQP_STATUS_BAD_AMQP_DATA;
865             }
866             {
867             uint8_t len;
868 0           if (!amqp_decode_8(encoded, &offset, &len) ||
869 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
870 0           return AMQP_STATUS_BAD_AMQP_DATA;
871             }
872 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
873 0           return AMQP_STATUS_BAD_AMQP_DATA;
874 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
875             {
876 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
877 0 0         if (res < 0) return res;
878             }
879 0           *decoded = m;
880 0           return 0;
881             }
882 0           case AMQP_QUEUE_BIND_OK_METHOD: {
883 0           amqp_queue_bind_ok_t *m = (amqp_queue_bind_ok_t *)amqp_pool_alloc(
884             pool, sizeof(amqp_queue_bind_ok_t));
885 0 0         if (m == NULL) {
886 0           return AMQP_STATUS_NO_MEMORY;
887             }
888 0           *decoded = m;
889 0           return 0;
890             }
891 0           case AMQP_QUEUE_PURGE_METHOD: {
892 0           amqp_queue_purge_t *m = (amqp_queue_purge_t *)amqp_pool_alloc(
893             pool, sizeof(amqp_queue_purge_t));
894 0 0         if (m == NULL) {
895 0           return AMQP_STATUS_NO_MEMORY;
896             }
897 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
898 0           return AMQP_STATUS_BAD_AMQP_DATA;
899             {
900             uint8_t len;
901 0           if (!amqp_decode_8(encoded, &offset, &len) ||
902 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
903 0           return AMQP_STATUS_BAD_AMQP_DATA;
904             }
905 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
906 0           return AMQP_STATUS_BAD_AMQP_DATA;
907 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
908 0           *decoded = m;
909 0           return 0;
910             }
911 0           case AMQP_QUEUE_PURGE_OK_METHOD: {
912 0           amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *)amqp_pool_alloc(
913             pool, sizeof(amqp_queue_purge_ok_t));
914 0 0         if (m == NULL) {
915 0           return AMQP_STATUS_NO_MEMORY;
916             }
917 0 0         if (!amqp_decode_32(encoded, &offset, &m->message_count))
918 0           return AMQP_STATUS_BAD_AMQP_DATA;
919 0           *decoded = m;
920 0           return 0;
921             }
922 0           case AMQP_QUEUE_DELETE_METHOD: {
923 0           amqp_queue_delete_t *m = (amqp_queue_delete_t *)amqp_pool_alloc(
924             pool, sizeof(amqp_queue_delete_t));
925 0 0         if (m == NULL) {
926 0           return AMQP_STATUS_NO_MEMORY;
927             }
928 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
929 0           return AMQP_STATUS_BAD_AMQP_DATA;
930             {
931             uint8_t len;
932 0           if (!amqp_decode_8(encoded, &offset, &len) ||
933 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
934 0           return AMQP_STATUS_BAD_AMQP_DATA;
935             }
936 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
937 0           return AMQP_STATUS_BAD_AMQP_DATA;
938 0           m->if_unused = (bit_buffer & (1 << 0)) ? 1 : 0;
939 0           m->if_empty = (bit_buffer & (1 << 1)) ? 1 : 0;
940 0           m->nowait = (bit_buffer & (1 << 2)) ? 1 : 0;
941 0           *decoded = m;
942 0           return 0;
943             }
944 0           case AMQP_QUEUE_DELETE_OK_METHOD: {
945 0           amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *)amqp_pool_alloc(
946             pool, sizeof(amqp_queue_delete_ok_t));
947 0 0         if (m == NULL) {
948 0           return AMQP_STATUS_NO_MEMORY;
949             }
950 0 0         if (!amqp_decode_32(encoded, &offset, &m->message_count))
951 0           return AMQP_STATUS_BAD_AMQP_DATA;
952 0           *decoded = m;
953 0           return 0;
954             }
955 0           case AMQP_QUEUE_UNBIND_METHOD: {
956 0           amqp_queue_unbind_t *m = (amqp_queue_unbind_t *)amqp_pool_alloc(
957             pool, sizeof(amqp_queue_unbind_t));
958 0 0         if (m == NULL) {
959 0           return AMQP_STATUS_NO_MEMORY;
960             }
961 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
962 0           return AMQP_STATUS_BAD_AMQP_DATA;
963             {
964             uint8_t len;
965 0           if (!amqp_decode_8(encoded, &offset, &len) ||
966 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
967 0           return AMQP_STATUS_BAD_AMQP_DATA;
968             }
969             {
970             uint8_t len;
971 0           if (!amqp_decode_8(encoded, &offset, &len) ||
972 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
973 0           return AMQP_STATUS_BAD_AMQP_DATA;
974             }
975             {
976             uint8_t len;
977 0           if (!amqp_decode_8(encoded, &offset, &len) ||
978 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
979 0           return AMQP_STATUS_BAD_AMQP_DATA;
980             }
981             {
982 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
983 0 0         if (res < 0) return res;
984             }
985 0           *decoded = m;
986 0           return 0;
987             }
988 0           case AMQP_QUEUE_UNBIND_OK_METHOD: {
989 0           amqp_queue_unbind_ok_t *m = (amqp_queue_unbind_ok_t *)amqp_pool_alloc(
990             pool, sizeof(amqp_queue_unbind_ok_t));
991 0 0         if (m == NULL) {
992 0           return AMQP_STATUS_NO_MEMORY;
993             }
994 0           *decoded = m;
995 0           return 0;
996             }
997 0           case AMQP_BASIC_QOS_METHOD: {
998             amqp_basic_qos_t *m =
999 0           (amqp_basic_qos_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_qos_t));
1000 0 0         if (m == NULL) {
1001 0           return AMQP_STATUS_NO_MEMORY;
1002             }
1003 0 0         if (!amqp_decode_32(encoded, &offset, &m->prefetch_size))
1004 0           return AMQP_STATUS_BAD_AMQP_DATA;
1005 0 0         if (!amqp_decode_16(encoded, &offset, &m->prefetch_count))
1006 0           return AMQP_STATUS_BAD_AMQP_DATA;
1007 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1008 0           return AMQP_STATUS_BAD_AMQP_DATA;
1009 0           m->global = (bit_buffer & (1 << 0)) ? 1 : 0;
1010 0           *decoded = m;
1011 0           return 0;
1012             }
1013 0           case AMQP_BASIC_QOS_OK_METHOD: {
1014 0           amqp_basic_qos_ok_t *m = (amqp_basic_qos_ok_t *)amqp_pool_alloc(
1015             pool, sizeof(amqp_basic_qos_ok_t));
1016 0 0         if (m == NULL) {
1017 0           return AMQP_STATUS_NO_MEMORY;
1018             }
1019 0           *decoded = m;
1020 0           return 0;
1021             }
1022 0           case AMQP_BASIC_CONSUME_METHOD: {
1023 0           amqp_basic_consume_t *m = (amqp_basic_consume_t *)amqp_pool_alloc(
1024             pool, sizeof(amqp_basic_consume_t));
1025 0 0         if (m == NULL) {
1026 0           return AMQP_STATUS_NO_MEMORY;
1027             }
1028 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
1029 0           return AMQP_STATUS_BAD_AMQP_DATA;
1030             {
1031             uint8_t len;
1032 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1033 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
1034 0           return AMQP_STATUS_BAD_AMQP_DATA;
1035             }
1036             {
1037             uint8_t len;
1038 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1039 0           !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len))
1040 0           return AMQP_STATUS_BAD_AMQP_DATA;
1041             }
1042 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1043 0           return AMQP_STATUS_BAD_AMQP_DATA;
1044 0           m->no_local = (bit_buffer & (1 << 0)) ? 1 : 0;
1045 0           m->no_ack = (bit_buffer & (1 << 1)) ? 1 : 0;
1046 0           m->exclusive = (bit_buffer & (1 << 2)) ? 1 : 0;
1047 0           m->nowait = (bit_buffer & (1 << 3)) ? 1 : 0;
1048             {
1049 0           int res = amqp_decode_table(encoded, pool, &(m->arguments), &offset);
1050 0 0         if (res < 0) return res;
1051             }
1052 0           *decoded = m;
1053 0           return 0;
1054             }
1055 0           case AMQP_BASIC_CONSUME_OK_METHOD: {
1056 0           amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *)amqp_pool_alloc(
1057             pool, sizeof(amqp_basic_consume_ok_t));
1058 0 0         if (m == NULL) {
1059 0           return AMQP_STATUS_NO_MEMORY;
1060             }
1061             {
1062             uint8_t len;
1063 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1064 0           !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len))
1065 0           return AMQP_STATUS_BAD_AMQP_DATA;
1066             }
1067 0           *decoded = m;
1068 0           return 0;
1069             }
1070 0           case AMQP_BASIC_CANCEL_METHOD: {
1071 0           amqp_basic_cancel_t *m = (amqp_basic_cancel_t *)amqp_pool_alloc(
1072             pool, sizeof(amqp_basic_cancel_t));
1073 0 0         if (m == NULL) {
1074 0           return AMQP_STATUS_NO_MEMORY;
1075             }
1076             {
1077             uint8_t len;
1078 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1079 0           !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len))
1080 0           return AMQP_STATUS_BAD_AMQP_DATA;
1081             }
1082 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1083 0           return AMQP_STATUS_BAD_AMQP_DATA;
1084 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
1085 0           *decoded = m;
1086 0           return 0;
1087             }
1088 0           case AMQP_BASIC_CANCEL_OK_METHOD: {
1089 0           amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *)amqp_pool_alloc(
1090             pool, sizeof(amqp_basic_cancel_ok_t));
1091 0 0         if (m == NULL) {
1092 0           return AMQP_STATUS_NO_MEMORY;
1093             }
1094             {
1095             uint8_t len;
1096 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1097 0           !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len))
1098 0           return AMQP_STATUS_BAD_AMQP_DATA;
1099             }
1100 0           *decoded = m;
1101 0           return 0;
1102             }
1103 0           case AMQP_BASIC_PUBLISH_METHOD: {
1104 0           amqp_basic_publish_t *m = (amqp_basic_publish_t *)amqp_pool_alloc(
1105             pool, sizeof(amqp_basic_publish_t));
1106 0 0         if (m == NULL) {
1107 0           return AMQP_STATUS_NO_MEMORY;
1108             }
1109 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
1110 0           return AMQP_STATUS_BAD_AMQP_DATA;
1111             {
1112             uint8_t len;
1113 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1114 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
1115 0           return AMQP_STATUS_BAD_AMQP_DATA;
1116             }
1117             {
1118             uint8_t len;
1119 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1120 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
1121 0           return AMQP_STATUS_BAD_AMQP_DATA;
1122             }
1123 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1124 0           return AMQP_STATUS_BAD_AMQP_DATA;
1125 0           m->mandatory = (bit_buffer & (1 << 0)) ? 1 : 0;
1126 0           m->immediate = (bit_buffer & (1 << 1)) ? 1 : 0;
1127 0           *decoded = m;
1128 0           return 0;
1129             }
1130 0           case AMQP_BASIC_RETURN_METHOD: {
1131 0           amqp_basic_return_t *m = (amqp_basic_return_t *)amqp_pool_alloc(
1132             pool, sizeof(amqp_basic_return_t));
1133 0 0         if (m == NULL) {
1134 0           return AMQP_STATUS_NO_MEMORY;
1135             }
1136 0 0         if (!amqp_decode_16(encoded, &offset, &m->reply_code))
1137 0           return AMQP_STATUS_BAD_AMQP_DATA;
1138             {
1139             uint8_t len;
1140 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1141 0           !amqp_decode_bytes(encoded, &offset, &m->reply_text, len))
1142 0           return AMQP_STATUS_BAD_AMQP_DATA;
1143             }
1144             {
1145             uint8_t len;
1146 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1147 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
1148 0           return AMQP_STATUS_BAD_AMQP_DATA;
1149             }
1150             {
1151             uint8_t len;
1152 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1153 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
1154 0           return AMQP_STATUS_BAD_AMQP_DATA;
1155             }
1156 0           *decoded = m;
1157 0           return 0;
1158             }
1159 0           case AMQP_BASIC_DELIVER_METHOD: {
1160 0           amqp_basic_deliver_t *m = (amqp_basic_deliver_t *)amqp_pool_alloc(
1161             pool, sizeof(amqp_basic_deliver_t));
1162 0 0         if (m == NULL) {
1163 0           return AMQP_STATUS_NO_MEMORY;
1164             }
1165             {
1166             uint8_t len;
1167 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1168 0           !amqp_decode_bytes(encoded, &offset, &m->consumer_tag, len))
1169 0           return AMQP_STATUS_BAD_AMQP_DATA;
1170             }
1171 0 0         if (!amqp_decode_64(encoded, &offset, &m->delivery_tag))
1172 0           return AMQP_STATUS_BAD_AMQP_DATA;
1173 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1174 0           return AMQP_STATUS_BAD_AMQP_DATA;
1175 0           m->redelivered = (bit_buffer & (1 << 0)) ? 1 : 0;
1176             {
1177             uint8_t len;
1178 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1179 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
1180 0           return AMQP_STATUS_BAD_AMQP_DATA;
1181             }
1182             {
1183             uint8_t len;
1184 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1185 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
1186 0           return AMQP_STATUS_BAD_AMQP_DATA;
1187             }
1188 0           *decoded = m;
1189 0           return 0;
1190             }
1191 0           case AMQP_BASIC_GET_METHOD: {
1192             amqp_basic_get_t *m =
1193 0           (amqp_basic_get_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_get_t));
1194 0 0         if (m == NULL) {
1195 0           return AMQP_STATUS_NO_MEMORY;
1196             }
1197 0 0         if (!amqp_decode_16(encoded, &offset, &m->ticket))
1198 0           return AMQP_STATUS_BAD_AMQP_DATA;
1199             {
1200             uint8_t len;
1201 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1202 0           !amqp_decode_bytes(encoded, &offset, &m->queue, len))
1203 0           return AMQP_STATUS_BAD_AMQP_DATA;
1204             }
1205 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1206 0           return AMQP_STATUS_BAD_AMQP_DATA;
1207 0           m->no_ack = (bit_buffer & (1 << 0)) ? 1 : 0;
1208 0           *decoded = m;
1209 0           return 0;
1210             }
1211 0           case AMQP_BASIC_GET_OK_METHOD: {
1212 0           amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *)amqp_pool_alloc(
1213             pool, sizeof(amqp_basic_get_ok_t));
1214 0 0         if (m == NULL) {
1215 0           return AMQP_STATUS_NO_MEMORY;
1216             }
1217 0 0         if (!amqp_decode_64(encoded, &offset, &m->delivery_tag))
1218 0           return AMQP_STATUS_BAD_AMQP_DATA;
1219 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1220 0           return AMQP_STATUS_BAD_AMQP_DATA;
1221 0           m->redelivered = (bit_buffer & (1 << 0)) ? 1 : 0;
1222             {
1223             uint8_t len;
1224 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1225 0           !amqp_decode_bytes(encoded, &offset, &m->exchange, len))
1226 0           return AMQP_STATUS_BAD_AMQP_DATA;
1227             }
1228             {
1229             uint8_t len;
1230 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1231 0           !amqp_decode_bytes(encoded, &offset, &m->routing_key, len))
1232 0           return AMQP_STATUS_BAD_AMQP_DATA;
1233             }
1234 0 0         if (!amqp_decode_32(encoded, &offset, &m->message_count))
1235 0           return AMQP_STATUS_BAD_AMQP_DATA;
1236 0           *decoded = m;
1237 0           return 0;
1238             }
1239 0           case AMQP_BASIC_GET_EMPTY_METHOD: {
1240 0           amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *)amqp_pool_alloc(
1241             pool, sizeof(amqp_basic_get_empty_t));
1242 0 0         if (m == NULL) {
1243 0           return AMQP_STATUS_NO_MEMORY;
1244             }
1245             {
1246             uint8_t len;
1247 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1248 0           !amqp_decode_bytes(encoded, &offset, &m->cluster_id, len))
1249 0           return AMQP_STATUS_BAD_AMQP_DATA;
1250             }
1251 0           *decoded = m;
1252 0           return 0;
1253             }
1254 0           case AMQP_BASIC_ACK_METHOD: {
1255             amqp_basic_ack_t *m =
1256 0           (amqp_basic_ack_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_ack_t));
1257 0 0         if (m == NULL) {
1258 0           return AMQP_STATUS_NO_MEMORY;
1259             }
1260 0 0         if (!amqp_decode_64(encoded, &offset, &m->delivery_tag))
1261 0           return AMQP_STATUS_BAD_AMQP_DATA;
1262 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1263 0           return AMQP_STATUS_BAD_AMQP_DATA;
1264 0           m->multiple = (bit_buffer & (1 << 0)) ? 1 : 0;
1265 0           *decoded = m;
1266 0           return 0;
1267             }
1268 0           case AMQP_BASIC_REJECT_METHOD: {
1269 0           amqp_basic_reject_t *m = (amqp_basic_reject_t *)amqp_pool_alloc(
1270             pool, sizeof(amqp_basic_reject_t));
1271 0 0         if (m == NULL) {
1272 0           return AMQP_STATUS_NO_MEMORY;
1273             }
1274 0 0         if (!amqp_decode_64(encoded, &offset, &m->delivery_tag))
1275 0           return AMQP_STATUS_BAD_AMQP_DATA;
1276 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1277 0           return AMQP_STATUS_BAD_AMQP_DATA;
1278 0           m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0;
1279 0           *decoded = m;
1280 0           return 0;
1281             }
1282 0           case AMQP_BASIC_RECOVER_ASYNC_METHOD: {
1283             amqp_basic_recover_async_t *m =
1284 0           (amqp_basic_recover_async_t *)amqp_pool_alloc(
1285             pool, sizeof(amqp_basic_recover_async_t));
1286 0 0         if (m == NULL) {
1287 0           return AMQP_STATUS_NO_MEMORY;
1288             }
1289 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1290 0           return AMQP_STATUS_BAD_AMQP_DATA;
1291 0           m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0;
1292 0           *decoded = m;
1293 0           return 0;
1294             }
1295 0           case AMQP_BASIC_RECOVER_METHOD: {
1296 0           amqp_basic_recover_t *m = (amqp_basic_recover_t *)amqp_pool_alloc(
1297             pool, sizeof(amqp_basic_recover_t));
1298 0 0         if (m == NULL) {
1299 0           return AMQP_STATUS_NO_MEMORY;
1300             }
1301 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1302 0           return AMQP_STATUS_BAD_AMQP_DATA;
1303 0           m->requeue = (bit_buffer & (1 << 0)) ? 1 : 0;
1304 0           *decoded = m;
1305 0           return 0;
1306             }
1307 0           case AMQP_BASIC_RECOVER_OK_METHOD: {
1308 0           amqp_basic_recover_ok_t *m = (amqp_basic_recover_ok_t *)amqp_pool_alloc(
1309             pool, sizeof(amqp_basic_recover_ok_t));
1310 0 0         if (m == NULL) {
1311 0           return AMQP_STATUS_NO_MEMORY;
1312             }
1313 0           *decoded = m;
1314 0           return 0;
1315             }
1316 0           case AMQP_BASIC_NACK_METHOD: {
1317             amqp_basic_nack_t *m =
1318 0           (amqp_basic_nack_t *)amqp_pool_alloc(pool, sizeof(amqp_basic_nack_t));
1319 0 0         if (m == NULL) {
1320 0           return AMQP_STATUS_NO_MEMORY;
1321             }
1322 0 0         if (!amqp_decode_64(encoded, &offset, &m->delivery_tag))
1323 0           return AMQP_STATUS_BAD_AMQP_DATA;
1324 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1325 0           return AMQP_STATUS_BAD_AMQP_DATA;
1326 0           m->multiple = (bit_buffer & (1 << 0)) ? 1 : 0;
1327 0           m->requeue = (bit_buffer & (1 << 1)) ? 1 : 0;
1328 0           *decoded = m;
1329 0           return 0;
1330             }
1331 0           case AMQP_TX_SELECT_METHOD: {
1332             amqp_tx_select_t *m =
1333 0           (amqp_tx_select_t *)amqp_pool_alloc(pool, sizeof(amqp_tx_select_t));
1334 0 0         if (m == NULL) {
1335 0           return AMQP_STATUS_NO_MEMORY;
1336             }
1337 0           *decoded = m;
1338 0           return 0;
1339             }
1340 0           case AMQP_TX_SELECT_OK_METHOD: {
1341 0           amqp_tx_select_ok_t *m = (amqp_tx_select_ok_t *)amqp_pool_alloc(
1342             pool, sizeof(amqp_tx_select_ok_t));
1343 0 0         if (m == NULL) {
1344 0           return AMQP_STATUS_NO_MEMORY;
1345             }
1346 0           *decoded = m;
1347 0           return 0;
1348             }
1349 0           case AMQP_TX_COMMIT_METHOD: {
1350             amqp_tx_commit_t *m =
1351 0           (amqp_tx_commit_t *)amqp_pool_alloc(pool, sizeof(amqp_tx_commit_t));
1352 0 0         if (m == NULL) {
1353 0           return AMQP_STATUS_NO_MEMORY;
1354             }
1355 0           *decoded = m;
1356 0           return 0;
1357             }
1358 0           case AMQP_TX_COMMIT_OK_METHOD: {
1359 0           amqp_tx_commit_ok_t *m = (amqp_tx_commit_ok_t *)amqp_pool_alloc(
1360             pool, sizeof(amqp_tx_commit_ok_t));
1361 0 0         if (m == NULL) {
1362 0           return AMQP_STATUS_NO_MEMORY;
1363             }
1364 0           *decoded = m;
1365 0           return 0;
1366             }
1367 0           case AMQP_TX_ROLLBACK_METHOD: {
1368 0           amqp_tx_rollback_t *m = (amqp_tx_rollback_t *)amqp_pool_alloc(
1369             pool, sizeof(amqp_tx_rollback_t));
1370 0 0         if (m == NULL) {
1371 0           return AMQP_STATUS_NO_MEMORY;
1372             }
1373 0           *decoded = m;
1374 0           return 0;
1375             }
1376 0           case AMQP_TX_ROLLBACK_OK_METHOD: {
1377 0           amqp_tx_rollback_ok_t *m = (amqp_tx_rollback_ok_t *)amqp_pool_alloc(
1378             pool, sizeof(amqp_tx_rollback_ok_t));
1379 0 0         if (m == NULL) {
1380 0           return AMQP_STATUS_NO_MEMORY;
1381             }
1382 0           *decoded = m;
1383 0           return 0;
1384             }
1385 0           case AMQP_CONFIRM_SELECT_METHOD: {
1386 0           amqp_confirm_select_t *m = (amqp_confirm_select_t *)amqp_pool_alloc(
1387             pool, sizeof(amqp_confirm_select_t));
1388 0 0         if (m == NULL) {
1389 0           return AMQP_STATUS_NO_MEMORY;
1390             }
1391 0 0         if (!amqp_decode_8(encoded, &offset, &bit_buffer))
1392 0           return AMQP_STATUS_BAD_AMQP_DATA;
1393 0           m->nowait = (bit_buffer & (1 << 0)) ? 1 : 0;
1394 0           *decoded = m;
1395 0           return 0;
1396             }
1397 0           case AMQP_CONFIRM_SELECT_OK_METHOD: {
1398 0           amqp_confirm_select_ok_t *m = (amqp_confirm_select_ok_t *)amqp_pool_alloc(
1399             pool, sizeof(amqp_confirm_select_ok_t));
1400 0 0         if (m == NULL) {
1401 0           return AMQP_STATUS_NO_MEMORY;
1402             }
1403 0           *decoded = m;
1404 0           return 0;
1405             }
1406 0           default:
1407 0           return AMQP_STATUS_UNKNOWN_METHOD;
1408             }
1409             }
1410              
1411 0           int amqp_decode_properties(uint16_t class_id, amqp_pool_t *pool,
1412             amqp_bytes_t encoded, void **decoded) {
1413 0           size_t offset = 0;
1414              
1415 0           amqp_flags_t flags = 0;
1416 0           int flagword_index = 0;
1417             uint16_t partial_flags;
1418              
1419             do {
1420 0 0         if (!amqp_decode_16(encoded, &offset, &partial_flags))
1421 0           return AMQP_STATUS_BAD_AMQP_DATA;
1422 0           flags |= (partial_flags << (flagword_index * 16));
1423 0           flagword_index++;
1424 0 0         } while (partial_flags & 1);
1425              
1426 0           switch (class_id) {
1427 0           case 10: {
1428             amqp_connection_properties_t *p =
1429 0           (amqp_connection_properties_t *)amqp_pool_alloc(
1430             pool, sizeof(amqp_connection_properties_t));
1431 0 0         if (p == NULL) {
1432 0           return AMQP_STATUS_NO_MEMORY;
1433             }
1434 0           p->_flags = flags;
1435 0           *decoded = p;
1436 0           return 0;
1437             }
1438 0           case 20: {
1439             amqp_channel_properties_t *p =
1440 0           (amqp_channel_properties_t *)amqp_pool_alloc(
1441             pool, sizeof(amqp_channel_properties_t));
1442 0 0         if (p == NULL) {
1443 0           return AMQP_STATUS_NO_MEMORY;
1444             }
1445 0           p->_flags = flags;
1446 0           *decoded = p;
1447 0           return 0;
1448             }
1449 0           case 30: {
1450 0           amqp_access_properties_t *p = (amqp_access_properties_t *)amqp_pool_alloc(
1451             pool, sizeof(amqp_access_properties_t));
1452 0 0         if (p == NULL) {
1453 0           return AMQP_STATUS_NO_MEMORY;
1454             }
1455 0           p->_flags = flags;
1456 0           *decoded = p;
1457 0           return 0;
1458             }
1459 0           case 40: {
1460             amqp_exchange_properties_t *p =
1461 0           (amqp_exchange_properties_t *)amqp_pool_alloc(
1462             pool, sizeof(amqp_exchange_properties_t));
1463 0 0         if (p == NULL) {
1464 0           return AMQP_STATUS_NO_MEMORY;
1465             }
1466 0           p->_flags = flags;
1467 0           *decoded = p;
1468 0           return 0;
1469             }
1470 0           case 50: {
1471 0           amqp_queue_properties_t *p = (amqp_queue_properties_t *)amqp_pool_alloc(
1472             pool, sizeof(amqp_queue_properties_t));
1473 0 0         if (p == NULL) {
1474 0           return AMQP_STATUS_NO_MEMORY;
1475             }
1476 0           p->_flags = flags;
1477 0           *decoded = p;
1478 0           return 0;
1479             }
1480 0           case 60: {
1481 0           amqp_basic_properties_t *p = (amqp_basic_properties_t *)amqp_pool_alloc(
1482             pool, sizeof(amqp_basic_properties_t));
1483 0 0         if (p == NULL) {
1484 0           return AMQP_STATUS_NO_MEMORY;
1485             }
1486 0           p->_flags = flags;
1487 0 0         if (flags & AMQP_BASIC_CONTENT_TYPE_FLAG) {
1488             {
1489             uint8_t len;
1490 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1491 0           !amqp_decode_bytes(encoded, &offset, &p->content_type, len))
1492 0           return AMQP_STATUS_BAD_AMQP_DATA;
1493             }
1494             }
1495 0 0         if (flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) {
1496             {
1497             uint8_t len;
1498 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1499 0           !amqp_decode_bytes(encoded, &offset, &p->content_encoding, len))
1500 0           return AMQP_STATUS_BAD_AMQP_DATA;
1501             }
1502             }
1503 0 0         if (flags & AMQP_BASIC_HEADERS_FLAG) {
1504             {
1505 0           int res = amqp_decode_table(encoded, pool, &(p->headers), &offset);
1506 0 0         if (res < 0) return res;
1507             }
1508             }
1509 0 0         if (flags & AMQP_BASIC_DELIVERY_MODE_FLAG) {
1510 0 0         if (!amqp_decode_8(encoded, &offset, &p->delivery_mode))
1511 0           return AMQP_STATUS_BAD_AMQP_DATA;
1512             }
1513 0 0         if (flags & AMQP_BASIC_PRIORITY_FLAG) {
1514 0 0         if (!amqp_decode_8(encoded, &offset, &p->priority))
1515 0           return AMQP_STATUS_BAD_AMQP_DATA;
1516             }
1517 0 0         if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) {
1518             {
1519             uint8_t len;
1520 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1521 0           !amqp_decode_bytes(encoded, &offset, &p->correlation_id, len))
1522 0           return AMQP_STATUS_BAD_AMQP_DATA;
1523             }
1524             }
1525 0 0         if (flags & AMQP_BASIC_REPLY_TO_FLAG) {
1526             {
1527             uint8_t len;
1528 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1529 0           !amqp_decode_bytes(encoded, &offset, &p->reply_to, len))
1530 0           return AMQP_STATUS_BAD_AMQP_DATA;
1531             }
1532             }
1533 0 0         if (flags & AMQP_BASIC_EXPIRATION_FLAG) {
1534             {
1535             uint8_t len;
1536 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1537 0           !amqp_decode_bytes(encoded, &offset, &p->expiration, len))
1538 0           return AMQP_STATUS_BAD_AMQP_DATA;
1539             }
1540             }
1541 0 0         if (flags & AMQP_BASIC_MESSAGE_ID_FLAG) {
1542             {
1543             uint8_t len;
1544 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1545 0           !amqp_decode_bytes(encoded, &offset, &p->message_id, len))
1546 0           return AMQP_STATUS_BAD_AMQP_DATA;
1547             }
1548             }
1549 0 0         if (flags & AMQP_BASIC_TIMESTAMP_FLAG) {
1550 0 0         if (!amqp_decode_64(encoded, &offset, &p->timestamp))
1551 0           return AMQP_STATUS_BAD_AMQP_DATA;
1552             }
1553 0 0         if (flags & AMQP_BASIC_TYPE_FLAG) {
1554             {
1555             uint8_t len;
1556 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1557 0           !amqp_decode_bytes(encoded, &offset, &p->type, len))
1558 0           return AMQP_STATUS_BAD_AMQP_DATA;
1559             }
1560             }
1561 0 0         if (flags & AMQP_BASIC_USER_ID_FLAG) {
1562             {
1563             uint8_t len;
1564 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1565 0           !amqp_decode_bytes(encoded, &offset, &p->user_id, len))
1566 0           return AMQP_STATUS_BAD_AMQP_DATA;
1567             }
1568             }
1569 0 0         if (flags & AMQP_BASIC_APP_ID_FLAG) {
1570             {
1571             uint8_t len;
1572 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1573 0           !amqp_decode_bytes(encoded, &offset, &p->app_id, len))
1574 0           return AMQP_STATUS_BAD_AMQP_DATA;
1575             }
1576             }
1577 0 0         if (flags & AMQP_BASIC_CLUSTER_ID_FLAG) {
1578             {
1579             uint8_t len;
1580 0           if (!amqp_decode_8(encoded, &offset, &len) ||
1581 0           !amqp_decode_bytes(encoded, &offset, &p->cluster_id, len))
1582 0           return AMQP_STATUS_BAD_AMQP_DATA;
1583             }
1584             }
1585 0           *decoded = p;
1586 0           return 0;
1587             }
1588 0           case 90: {
1589 0           amqp_tx_properties_t *p = (amqp_tx_properties_t *)amqp_pool_alloc(
1590             pool, sizeof(amqp_tx_properties_t));
1591 0 0         if (p == NULL) {
1592 0           return AMQP_STATUS_NO_MEMORY;
1593             }
1594 0           p->_flags = flags;
1595 0           *decoded = p;
1596 0           return 0;
1597             }
1598 0           case 85: {
1599             amqp_confirm_properties_t *p =
1600 0           (amqp_confirm_properties_t *)amqp_pool_alloc(
1601             pool, sizeof(amqp_confirm_properties_t));
1602 0 0         if (p == NULL) {
1603 0           return AMQP_STATUS_NO_MEMORY;
1604             }
1605 0           p->_flags = flags;
1606 0           *decoded = p;
1607 0           return 0;
1608             }
1609 0           default:
1610 0           return AMQP_STATUS_UNKNOWN_CLASS;
1611             }
1612             }
1613              
1614 1           int amqp_encode_method(amqp_method_number_t methodNumber, void *decoded,
1615             amqp_bytes_t encoded) {
1616 1           size_t offset = 0;
1617             uint8_t bit_buffer;
1618              
1619 1           switch (methodNumber) {
1620 0           case AMQP_CONNECTION_START_METHOD: {
1621 0           amqp_connection_start_t *m = (amqp_connection_start_t *)decoded;
1622 0 0         if (!amqp_encode_8(encoded, &offset, m->version_major))
1623 0           return AMQP_STATUS_BAD_AMQP_DATA;
1624 0 0         if (!amqp_encode_8(encoded, &offset, m->version_minor))
1625 0           return AMQP_STATUS_BAD_AMQP_DATA;
1626             {
1627 0           int res = amqp_encode_table(encoded, &(m->server_properties), &offset);
1628 0 0         if (res < 0) return res;
1629             }
1630 0           if (UINT32_MAX < m->mechanisms.len ||
1631 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->mechanisms.len) ||
1632 0           !amqp_encode_bytes(encoded, &offset, m->mechanisms))
1633 0           return AMQP_STATUS_BAD_AMQP_DATA;
1634 0           if (UINT32_MAX < m->locales.len ||
1635 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->locales.len) ||
1636 0           !amqp_encode_bytes(encoded, &offset, m->locales))
1637 0           return AMQP_STATUS_BAD_AMQP_DATA;
1638 0           return (int)offset;
1639             }
1640 0           case AMQP_CONNECTION_START_OK_METHOD: {
1641 0           amqp_connection_start_ok_t *m = (amqp_connection_start_ok_t *)decoded;
1642             {
1643 0           int res = amqp_encode_table(encoded, &(m->client_properties), &offset);
1644 0 0         if (res < 0) return res;
1645             }
1646 0           if (UINT8_MAX < m->mechanism.len ||
1647 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->mechanism.len) ||
1648 0           !amqp_encode_bytes(encoded, &offset, m->mechanism))
1649 0           return AMQP_STATUS_BAD_AMQP_DATA;
1650 0           if (UINT32_MAX < m->response.len ||
1651 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) ||
1652 0           !amqp_encode_bytes(encoded, &offset, m->response))
1653 0           return AMQP_STATUS_BAD_AMQP_DATA;
1654 0           if (UINT8_MAX < m->locale.len ||
1655 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->locale.len) ||
1656 0           !amqp_encode_bytes(encoded, &offset, m->locale))
1657 0           return AMQP_STATUS_BAD_AMQP_DATA;
1658 0           return (int)offset;
1659             }
1660 0           case AMQP_CONNECTION_SECURE_METHOD: {
1661 0           amqp_connection_secure_t *m = (amqp_connection_secure_t *)decoded;
1662 0           if (UINT32_MAX < m->challenge.len ||
1663 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->challenge.len) ||
1664 0           !amqp_encode_bytes(encoded, &offset, m->challenge))
1665 0           return AMQP_STATUS_BAD_AMQP_DATA;
1666 0           return (int)offset;
1667             }
1668 0           case AMQP_CONNECTION_SECURE_OK_METHOD: {
1669 0           amqp_connection_secure_ok_t *m = (amqp_connection_secure_ok_t *)decoded;
1670 0           if (UINT32_MAX < m->response.len ||
1671 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->response.len) ||
1672 0           !amqp_encode_bytes(encoded, &offset, m->response))
1673 0           return AMQP_STATUS_BAD_AMQP_DATA;
1674 0           return (int)offset;
1675             }
1676 0           case AMQP_CONNECTION_TUNE_METHOD: {
1677 0           amqp_connection_tune_t *m = (amqp_connection_tune_t *)decoded;
1678 0 0         if (!amqp_encode_16(encoded, &offset, m->channel_max))
1679 0           return AMQP_STATUS_BAD_AMQP_DATA;
1680 0 0         if (!amqp_encode_32(encoded, &offset, m->frame_max))
1681 0           return AMQP_STATUS_BAD_AMQP_DATA;
1682 0 0         if (!amqp_encode_16(encoded, &offset, m->heartbeat))
1683 0           return AMQP_STATUS_BAD_AMQP_DATA;
1684 0           return (int)offset;
1685             }
1686 0           case AMQP_CONNECTION_TUNE_OK_METHOD: {
1687 0           amqp_connection_tune_ok_t *m = (amqp_connection_tune_ok_t *)decoded;
1688 0 0         if (!amqp_encode_16(encoded, &offset, m->channel_max))
1689 0           return AMQP_STATUS_BAD_AMQP_DATA;
1690 0 0         if (!amqp_encode_32(encoded, &offset, m->frame_max))
1691 0           return AMQP_STATUS_BAD_AMQP_DATA;
1692 0 0         if (!amqp_encode_16(encoded, &offset, m->heartbeat))
1693 0           return AMQP_STATUS_BAD_AMQP_DATA;
1694 0           return (int)offset;
1695             }
1696 0           case AMQP_CONNECTION_OPEN_METHOD: {
1697 0           amqp_connection_open_t *m = (amqp_connection_open_t *)decoded;
1698 0           if (UINT8_MAX < m->virtual_host.len ||
1699 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->virtual_host.len) ||
1700 0           !amqp_encode_bytes(encoded, &offset, m->virtual_host))
1701 0           return AMQP_STATUS_BAD_AMQP_DATA;
1702 0           if (UINT8_MAX < m->capabilities.len ||
1703 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->capabilities.len) ||
1704 0           !amqp_encode_bytes(encoded, &offset, m->capabilities))
1705 0           return AMQP_STATUS_BAD_AMQP_DATA;
1706 0           bit_buffer = 0;
1707 0 0         if (m->insist) bit_buffer |= (1 << 0);
1708 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1709 0           return AMQP_STATUS_BAD_AMQP_DATA;
1710 0           return (int)offset;
1711             }
1712 0           case AMQP_CONNECTION_OPEN_OK_METHOD: {
1713 0           amqp_connection_open_ok_t *m = (amqp_connection_open_ok_t *)decoded;
1714 0           if (UINT8_MAX < m->known_hosts.len ||
1715 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->known_hosts.len) ||
1716 0           !amqp_encode_bytes(encoded, &offset, m->known_hosts))
1717 0           return AMQP_STATUS_BAD_AMQP_DATA;
1718 0           return (int)offset;
1719             }
1720 1           case AMQP_CONNECTION_CLOSE_METHOD: {
1721 1           amqp_connection_close_t *m = (amqp_connection_close_t *)decoded;
1722 1 50         if (!amqp_encode_16(encoded, &offset, m->reply_code))
1723 0           return AMQP_STATUS_BAD_AMQP_DATA;
1724 2           if (UINT8_MAX < m->reply_text.len ||
1725 2 50         !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) ||
1726 1           !amqp_encode_bytes(encoded, &offset, m->reply_text))
1727 0           return AMQP_STATUS_BAD_AMQP_DATA;
1728 1 50         if (!amqp_encode_16(encoded, &offset, m->class_id))
1729 0           return AMQP_STATUS_BAD_AMQP_DATA;
1730 1 50         if (!amqp_encode_16(encoded, &offset, m->method_id))
1731 0           return AMQP_STATUS_BAD_AMQP_DATA;
1732 1           return (int)offset;
1733             }
1734 0           case AMQP_CONNECTION_CLOSE_OK_METHOD: {
1735 0           return (int)offset;
1736             }
1737 0           case AMQP_CONNECTION_BLOCKED_METHOD: {
1738 0           amqp_connection_blocked_t *m = (amqp_connection_blocked_t *)decoded;
1739 0           if (UINT8_MAX < m->reason.len ||
1740 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->reason.len) ||
1741 0           !amqp_encode_bytes(encoded, &offset, m->reason))
1742 0           return AMQP_STATUS_BAD_AMQP_DATA;
1743 0           return (int)offset;
1744             }
1745 0           case AMQP_CONNECTION_UNBLOCKED_METHOD: {
1746 0           return (int)offset;
1747             }
1748 0           case AMQP_CONNECTION_UPDATE_SECRET_METHOD: {
1749 0           amqp_connection_update_secret_t *m =
1750             (amqp_connection_update_secret_t *)decoded;
1751 0           if (UINT32_MAX < m->new_secret.len ||
1752 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->new_secret.len) ||
1753 0           !amqp_encode_bytes(encoded, &offset, m->new_secret))
1754 0           return AMQP_STATUS_BAD_AMQP_DATA;
1755 0           if (UINT8_MAX < m->reason.len ||
1756 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->reason.len) ||
1757 0           !amqp_encode_bytes(encoded, &offset, m->reason))
1758 0           return AMQP_STATUS_BAD_AMQP_DATA;
1759 0           return (int)offset;
1760             }
1761 0           case AMQP_CONNECTION_UPDATE_SECRET_OK_METHOD: {
1762 0           return (int)offset;
1763             }
1764 0           case AMQP_CHANNEL_OPEN_METHOD: {
1765 0           amqp_channel_open_t *m = (amqp_channel_open_t *)decoded;
1766 0           if (UINT8_MAX < m->out_of_band.len ||
1767 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->out_of_band.len) ||
1768 0           !amqp_encode_bytes(encoded, &offset, m->out_of_band))
1769 0           return AMQP_STATUS_BAD_AMQP_DATA;
1770 0           return (int)offset;
1771             }
1772 0           case AMQP_CHANNEL_OPEN_OK_METHOD: {
1773 0           amqp_channel_open_ok_t *m = (amqp_channel_open_ok_t *)decoded;
1774 0           if (UINT32_MAX < m->channel_id.len ||
1775 0 0         !amqp_encode_32(encoded, &offset, (uint32_t)m->channel_id.len) ||
1776 0           !amqp_encode_bytes(encoded, &offset, m->channel_id))
1777 0           return AMQP_STATUS_BAD_AMQP_DATA;
1778 0           return (int)offset;
1779             }
1780 0           case AMQP_CHANNEL_FLOW_METHOD: {
1781 0           amqp_channel_flow_t *m = (amqp_channel_flow_t *)decoded;
1782 0           bit_buffer = 0;
1783 0 0         if (m->active) bit_buffer |= (1 << 0);
1784 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1785 0           return AMQP_STATUS_BAD_AMQP_DATA;
1786 0           return (int)offset;
1787             }
1788 0           case AMQP_CHANNEL_FLOW_OK_METHOD: {
1789 0           amqp_channel_flow_ok_t *m = (amqp_channel_flow_ok_t *)decoded;
1790 0           bit_buffer = 0;
1791 0 0         if (m->active) bit_buffer |= (1 << 0);
1792 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1793 0           return AMQP_STATUS_BAD_AMQP_DATA;
1794 0           return (int)offset;
1795             }
1796 0           case AMQP_CHANNEL_CLOSE_METHOD: {
1797 0           amqp_channel_close_t *m = (amqp_channel_close_t *)decoded;
1798 0 0         if (!amqp_encode_16(encoded, &offset, m->reply_code))
1799 0           return AMQP_STATUS_BAD_AMQP_DATA;
1800 0           if (UINT8_MAX < m->reply_text.len ||
1801 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) ||
1802 0           !amqp_encode_bytes(encoded, &offset, m->reply_text))
1803 0           return AMQP_STATUS_BAD_AMQP_DATA;
1804 0 0         if (!amqp_encode_16(encoded, &offset, m->class_id))
1805 0           return AMQP_STATUS_BAD_AMQP_DATA;
1806 0 0         if (!amqp_encode_16(encoded, &offset, m->method_id))
1807 0           return AMQP_STATUS_BAD_AMQP_DATA;
1808 0           return (int)offset;
1809             }
1810 0           case AMQP_CHANNEL_CLOSE_OK_METHOD: {
1811 0           return (int)offset;
1812             }
1813 0           case AMQP_ACCESS_REQUEST_METHOD: {
1814 0           amqp_access_request_t *m = (amqp_access_request_t *)decoded;
1815 0           if (UINT8_MAX < m->realm.len ||
1816 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->realm.len) ||
1817 0           !amqp_encode_bytes(encoded, &offset, m->realm))
1818 0           return AMQP_STATUS_BAD_AMQP_DATA;
1819 0           bit_buffer = 0;
1820 0 0         if (m->exclusive) bit_buffer |= (1 << 0);
1821 0 0         if (m->passive) bit_buffer |= (1 << 1);
1822 0 0         if (m->active) bit_buffer |= (1 << 2);
1823 0 0         if (m->write) bit_buffer |= (1 << 3);
1824 0 0         if (m->read) bit_buffer |= (1 << 4);
1825 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1826 0           return AMQP_STATUS_BAD_AMQP_DATA;
1827 0           return (int)offset;
1828             }
1829 0           case AMQP_ACCESS_REQUEST_OK_METHOD: {
1830 0           amqp_access_request_ok_t *m = (amqp_access_request_ok_t *)decoded;
1831 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1832 0           return AMQP_STATUS_BAD_AMQP_DATA;
1833 0           return (int)offset;
1834             }
1835 0           case AMQP_EXCHANGE_DECLARE_METHOD: {
1836 0           amqp_exchange_declare_t *m = (amqp_exchange_declare_t *)decoded;
1837 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1838 0           return AMQP_STATUS_BAD_AMQP_DATA;
1839 0           if (UINT8_MAX < m->exchange.len ||
1840 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
1841 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
1842 0           return AMQP_STATUS_BAD_AMQP_DATA;
1843 0           if (UINT8_MAX < m->type.len ||
1844 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->type.len) ||
1845 0           !amqp_encode_bytes(encoded, &offset, m->type))
1846 0           return AMQP_STATUS_BAD_AMQP_DATA;
1847 0           bit_buffer = 0;
1848 0 0         if (m->passive) bit_buffer |= (1 << 0);
1849 0 0         if (m->durable) bit_buffer |= (1 << 1);
1850 0 0         if (m->auto_delete) bit_buffer |= (1 << 2);
1851 0 0         if (m->internal) bit_buffer |= (1 << 3);
1852 0 0         if (m->nowait) bit_buffer |= (1 << 4);
1853 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1854 0           return AMQP_STATUS_BAD_AMQP_DATA;
1855             {
1856 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
1857 0 0         if (res < 0) return res;
1858             }
1859 0           return (int)offset;
1860             }
1861 0           case AMQP_EXCHANGE_DECLARE_OK_METHOD: {
1862 0           return (int)offset;
1863             }
1864 0           case AMQP_EXCHANGE_DELETE_METHOD: {
1865 0           amqp_exchange_delete_t *m = (amqp_exchange_delete_t *)decoded;
1866 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1867 0           return AMQP_STATUS_BAD_AMQP_DATA;
1868 0           if (UINT8_MAX < m->exchange.len ||
1869 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
1870 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
1871 0           return AMQP_STATUS_BAD_AMQP_DATA;
1872 0           bit_buffer = 0;
1873 0 0         if (m->if_unused) bit_buffer |= (1 << 0);
1874 0 0         if (m->nowait) bit_buffer |= (1 << 1);
1875 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1876 0           return AMQP_STATUS_BAD_AMQP_DATA;
1877 0           return (int)offset;
1878             }
1879 0           case AMQP_EXCHANGE_DELETE_OK_METHOD: {
1880 0           return (int)offset;
1881             }
1882 0           case AMQP_EXCHANGE_BIND_METHOD: {
1883 0           amqp_exchange_bind_t *m = (amqp_exchange_bind_t *)decoded;
1884 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1885 0           return AMQP_STATUS_BAD_AMQP_DATA;
1886 0           if (UINT8_MAX < m->destination.len ||
1887 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) ||
1888 0           !amqp_encode_bytes(encoded, &offset, m->destination))
1889 0           return AMQP_STATUS_BAD_AMQP_DATA;
1890 0           if (UINT8_MAX < m->source.len ||
1891 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) ||
1892 0           !amqp_encode_bytes(encoded, &offset, m->source))
1893 0           return AMQP_STATUS_BAD_AMQP_DATA;
1894 0           if (UINT8_MAX < m->routing_key.len ||
1895 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
1896 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
1897 0           return AMQP_STATUS_BAD_AMQP_DATA;
1898 0           bit_buffer = 0;
1899 0 0         if (m->nowait) bit_buffer |= (1 << 0);
1900 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1901 0           return AMQP_STATUS_BAD_AMQP_DATA;
1902             {
1903 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
1904 0 0         if (res < 0) return res;
1905             }
1906 0           return (int)offset;
1907             }
1908 0           case AMQP_EXCHANGE_BIND_OK_METHOD: {
1909 0           return (int)offset;
1910             }
1911 0           case AMQP_EXCHANGE_UNBIND_METHOD: {
1912 0           amqp_exchange_unbind_t *m = (amqp_exchange_unbind_t *)decoded;
1913 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1914 0           return AMQP_STATUS_BAD_AMQP_DATA;
1915 0           if (UINT8_MAX < m->destination.len ||
1916 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->destination.len) ||
1917 0           !amqp_encode_bytes(encoded, &offset, m->destination))
1918 0           return AMQP_STATUS_BAD_AMQP_DATA;
1919 0           if (UINT8_MAX < m->source.len ||
1920 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->source.len) ||
1921 0           !amqp_encode_bytes(encoded, &offset, m->source))
1922 0           return AMQP_STATUS_BAD_AMQP_DATA;
1923 0           if (UINT8_MAX < m->routing_key.len ||
1924 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
1925 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
1926 0           return AMQP_STATUS_BAD_AMQP_DATA;
1927 0           bit_buffer = 0;
1928 0 0         if (m->nowait) bit_buffer |= (1 << 0);
1929 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1930 0           return AMQP_STATUS_BAD_AMQP_DATA;
1931             {
1932 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
1933 0 0         if (res < 0) return res;
1934             }
1935 0           return (int)offset;
1936             }
1937 0           case AMQP_EXCHANGE_UNBIND_OK_METHOD: {
1938 0           return (int)offset;
1939             }
1940 0           case AMQP_QUEUE_DECLARE_METHOD: {
1941 0           amqp_queue_declare_t *m = (amqp_queue_declare_t *)decoded;
1942 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1943 0           return AMQP_STATUS_BAD_AMQP_DATA;
1944 0           if (UINT8_MAX < m->queue.len ||
1945 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
1946 0           !amqp_encode_bytes(encoded, &offset, m->queue))
1947 0           return AMQP_STATUS_BAD_AMQP_DATA;
1948 0           bit_buffer = 0;
1949 0 0         if (m->passive) bit_buffer |= (1 << 0);
1950 0 0         if (m->durable) bit_buffer |= (1 << 1);
1951 0 0         if (m->exclusive) bit_buffer |= (1 << 2);
1952 0 0         if (m->auto_delete) bit_buffer |= (1 << 3);
1953 0 0         if (m->nowait) bit_buffer |= (1 << 4);
1954 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1955 0           return AMQP_STATUS_BAD_AMQP_DATA;
1956             {
1957 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
1958 0 0         if (res < 0) return res;
1959             }
1960 0           return (int)offset;
1961             }
1962 0           case AMQP_QUEUE_DECLARE_OK_METHOD: {
1963 0           amqp_queue_declare_ok_t *m = (amqp_queue_declare_ok_t *)decoded;
1964 0           if (UINT8_MAX < m->queue.len ||
1965 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
1966 0           !amqp_encode_bytes(encoded, &offset, m->queue))
1967 0           return AMQP_STATUS_BAD_AMQP_DATA;
1968 0 0         if (!amqp_encode_32(encoded, &offset, m->message_count))
1969 0           return AMQP_STATUS_BAD_AMQP_DATA;
1970 0 0         if (!amqp_encode_32(encoded, &offset, m->consumer_count))
1971 0           return AMQP_STATUS_BAD_AMQP_DATA;
1972 0           return (int)offset;
1973             }
1974 0           case AMQP_QUEUE_BIND_METHOD: {
1975 0           amqp_queue_bind_t *m = (amqp_queue_bind_t *)decoded;
1976 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
1977 0           return AMQP_STATUS_BAD_AMQP_DATA;
1978 0           if (UINT8_MAX < m->queue.len ||
1979 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
1980 0           !amqp_encode_bytes(encoded, &offset, m->queue))
1981 0           return AMQP_STATUS_BAD_AMQP_DATA;
1982 0           if (UINT8_MAX < m->exchange.len ||
1983 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
1984 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
1985 0           return AMQP_STATUS_BAD_AMQP_DATA;
1986 0           if (UINT8_MAX < m->routing_key.len ||
1987 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
1988 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
1989 0           return AMQP_STATUS_BAD_AMQP_DATA;
1990 0           bit_buffer = 0;
1991 0 0         if (m->nowait) bit_buffer |= (1 << 0);
1992 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
1993 0           return AMQP_STATUS_BAD_AMQP_DATA;
1994             {
1995 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
1996 0 0         if (res < 0) return res;
1997             }
1998 0           return (int)offset;
1999             }
2000 0           case AMQP_QUEUE_BIND_OK_METHOD: {
2001 0           return (int)offset;
2002             }
2003 0           case AMQP_QUEUE_PURGE_METHOD: {
2004 0           amqp_queue_purge_t *m = (amqp_queue_purge_t *)decoded;
2005 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2006 0           return AMQP_STATUS_BAD_AMQP_DATA;
2007 0           if (UINT8_MAX < m->queue.len ||
2008 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
2009 0           !amqp_encode_bytes(encoded, &offset, m->queue))
2010 0           return AMQP_STATUS_BAD_AMQP_DATA;
2011 0           bit_buffer = 0;
2012 0 0         if (m->nowait) bit_buffer |= (1 << 0);
2013 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2014 0           return AMQP_STATUS_BAD_AMQP_DATA;
2015 0           return (int)offset;
2016             }
2017 0           case AMQP_QUEUE_PURGE_OK_METHOD: {
2018 0           amqp_queue_purge_ok_t *m = (amqp_queue_purge_ok_t *)decoded;
2019 0 0         if (!amqp_encode_32(encoded, &offset, m->message_count))
2020 0           return AMQP_STATUS_BAD_AMQP_DATA;
2021 0           return (int)offset;
2022             }
2023 0           case AMQP_QUEUE_DELETE_METHOD: {
2024 0           amqp_queue_delete_t *m = (amqp_queue_delete_t *)decoded;
2025 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2026 0           return AMQP_STATUS_BAD_AMQP_DATA;
2027 0           if (UINT8_MAX < m->queue.len ||
2028 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
2029 0           !amqp_encode_bytes(encoded, &offset, m->queue))
2030 0           return AMQP_STATUS_BAD_AMQP_DATA;
2031 0           bit_buffer = 0;
2032 0 0         if (m->if_unused) bit_buffer |= (1 << 0);
2033 0 0         if (m->if_empty) bit_buffer |= (1 << 1);
2034 0 0         if (m->nowait) bit_buffer |= (1 << 2);
2035 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2036 0           return AMQP_STATUS_BAD_AMQP_DATA;
2037 0           return (int)offset;
2038             }
2039 0           case AMQP_QUEUE_DELETE_OK_METHOD: {
2040 0           amqp_queue_delete_ok_t *m = (amqp_queue_delete_ok_t *)decoded;
2041 0 0         if (!amqp_encode_32(encoded, &offset, m->message_count))
2042 0           return AMQP_STATUS_BAD_AMQP_DATA;
2043 0           return (int)offset;
2044             }
2045 0           case AMQP_QUEUE_UNBIND_METHOD: {
2046 0           amqp_queue_unbind_t *m = (amqp_queue_unbind_t *)decoded;
2047 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2048 0           return AMQP_STATUS_BAD_AMQP_DATA;
2049 0           if (UINT8_MAX < m->queue.len ||
2050 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
2051 0           !amqp_encode_bytes(encoded, &offset, m->queue))
2052 0           return AMQP_STATUS_BAD_AMQP_DATA;
2053 0           if (UINT8_MAX < m->exchange.len ||
2054 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
2055 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
2056 0           return AMQP_STATUS_BAD_AMQP_DATA;
2057 0           if (UINT8_MAX < m->routing_key.len ||
2058 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
2059 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
2060 0           return AMQP_STATUS_BAD_AMQP_DATA;
2061             {
2062 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
2063 0 0         if (res < 0) return res;
2064             }
2065 0           return (int)offset;
2066             }
2067 0           case AMQP_QUEUE_UNBIND_OK_METHOD: {
2068 0           return (int)offset;
2069             }
2070 0           case AMQP_BASIC_QOS_METHOD: {
2071 0           amqp_basic_qos_t *m = (amqp_basic_qos_t *)decoded;
2072 0 0         if (!amqp_encode_32(encoded, &offset, m->prefetch_size))
2073 0           return AMQP_STATUS_BAD_AMQP_DATA;
2074 0 0         if (!amqp_encode_16(encoded, &offset, m->prefetch_count))
2075 0           return AMQP_STATUS_BAD_AMQP_DATA;
2076 0           bit_buffer = 0;
2077 0 0         if (m->global) bit_buffer |= (1 << 0);
2078 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2079 0           return AMQP_STATUS_BAD_AMQP_DATA;
2080 0           return (int)offset;
2081             }
2082 0           case AMQP_BASIC_QOS_OK_METHOD: {
2083 0           return (int)offset;
2084             }
2085 0           case AMQP_BASIC_CONSUME_METHOD: {
2086 0           amqp_basic_consume_t *m = (amqp_basic_consume_t *)decoded;
2087 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2088 0           return AMQP_STATUS_BAD_AMQP_DATA;
2089 0           if (UINT8_MAX < m->queue.len ||
2090 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
2091 0           !amqp_encode_bytes(encoded, &offset, m->queue))
2092 0           return AMQP_STATUS_BAD_AMQP_DATA;
2093 0           if (UINT8_MAX < m->consumer_tag.len ||
2094 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) ||
2095 0           !amqp_encode_bytes(encoded, &offset, m->consumer_tag))
2096 0           return AMQP_STATUS_BAD_AMQP_DATA;
2097 0           bit_buffer = 0;
2098 0 0         if (m->no_local) bit_buffer |= (1 << 0);
2099 0 0         if (m->no_ack) bit_buffer |= (1 << 1);
2100 0 0         if (m->exclusive) bit_buffer |= (1 << 2);
2101 0 0         if (m->nowait) bit_buffer |= (1 << 3);
2102 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2103 0           return AMQP_STATUS_BAD_AMQP_DATA;
2104             {
2105 0           int res = amqp_encode_table(encoded, &(m->arguments), &offset);
2106 0 0         if (res < 0) return res;
2107             }
2108 0           return (int)offset;
2109             }
2110 0           case AMQP_BASIC_CONSUME_OK_METHOD: {
2111 0           amqp_basic_consume_ok_t *m = (amqp_basic_consume_ok_t *)decoded;
2112 0           if (UINT8_MAX < m->consumer_tag.len ||
2113 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) ||
2114 0           !amqp_encode_bytes(encoded, &offset, m->consumer_tag))
2115 0           return AMQP_STATUS_BAD_AMQP_DATA;
2116 0           return (int)offset;
2117             }
2118 0           case AMQP_BASIC_CANCEL_METHOD: {
2119 0           amqp_basic_cancel_t *m = (amqp_basic_cancel_t *)decoded;
2120 0           if (UINT8_MAX < m->consumer_tag.len ||
2121 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) ||
2122 0           !amqp_encode_bytes(encoded, &offset, m->consumer_tag))
2123 0           return AMQP_STATUS_BAD_AMQP_DATA;
2124 0           bit_buffer = 0;
2125 0 0         if (m->nowait) bit_buffer |= (1 << 0);
2126 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2127 0           return AMQP_STATUS_BAD_AMQP_DATA;
2128 0           return (int)offset;
2129             }
2130 0           case AMQP_BASIC_CANCEL_OK_METHOD: {
2131 0           amqp_basic_cancel_ok_t *m = (amqp_basic_cancel_ok_t *)decoded;
2132 0           if (UINT8_MAX < m->consumer_tag.len ||
2133 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) ||
2134 0           !amqp_encode_bytes(encoded, &offset, m->consumer_tag))
2135 0           return AMQP_STATUS_BAD_AMQP_DATA;
2136 0           return (int)offset;
2137             }
2138 0           case AMQP_BASIC_PUBLISH_METHOD: {
2139 0           amqp_basic_publish_t *m = (amqp_basic_publish_t *)decoded;
2140 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2141 0           return AMQP_STATUS_BAD_AMQP_DATA;
2142 0           if (UINT8_MAX < m->exchange.len ||
2143 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
2144 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
2145 0           return AMQP_STATUS_BAD_AMQP_DATA;
2146 0           if (UINT8_MAX < m->routing_key.len ||
2147 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
2148 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
2149 0           return AMQP_STATUS_BAD_AMQP_DATA;
2150 0           bit_buffer = 0;
2151 0 0         if (m->mandatory) bit_buffer |= (1 << 0);
2152 0 0         if (m->immediate) bit_buffer |= (1 << 1);
2153 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2154 0           return AMQP_STATUS_BAD_AMQP_DATA;
2155 0           return (int)offset;
2156             }
2157 0           case AMQP_BASIC_RETURN_METHOD: {
2158 0           amqp_basic_return_t *m = (amqp_basic_return_t *)decoded;
2159 0 0         if (!amqp_encode_16(encoded, &offset, m->reply_code))
2160 0           return AMQP_STATUS_BAD_AMQP_DATA;
2161 0           if (UINT8_MAX < m->reply_text.len ||
2162 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->reply_text.len) ||
2163 0           !amqp_encode_bytes(encoded, &offset, m->reply_text))
2164 0           return AMQP_STATUS_BAD_AMQP_DATA;
2165 0           if (UINT8_MAX < m->exchange.len ||
2166 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
2167 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
2168 0           return AMQP_STATUS_BAD_AMQP_DATA;
2169 0           if (UINT8_MAX < m->routing_key.len ||
2170 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
2171 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
2172 0           return AMQP_STATUS_BAD_AMQP_DATA;
2173 0           return (int)offset;
2174             }
2175 0           case AMQP_BASIC_DELIVER_METHOD: {
2176 0           amqp_basic_deliver_t *m = (amqp_basic_deliver_t *)decoded;
2177 0           if (UINT8_MAX < m->consumer_tag.len ||
2178 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->consumer_tag.len) ||
2179 0           !amqp_encode_bytes(encoded, &offset, m->consumer_tag))
2180 0           return AMQP_STATUS_BAD_AMQP_DATA;
2181 0 0         if (!amqp_encode_64(encoded, &offset, m->delivery_tag))
2182 0           return AMQP_STATUS_BAD_AMQP_DATA;
2183 0           bit_buffer = 0;
2184 0 0         if (m->redelivered) bit_buffer |= (1 << 0);
2185 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2186 0           return AMQP_STATUS_BAD_AMQP_DATA;
2187 0           if (UINT8_MAX < m->exchange.len ||
2188 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
2189 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
2190 0           return AMQP_STATUS_BAD_AMQP_DATA;
2191 0           if (UINT8_MAX < m->routing_key.len ||
2192 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
2193 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
2194 0           return AMQP_STATUS_BAD_AMQP_DATA;
2195 0           return (int)offset;
2196             }
2197 0           case AMQP_BASIC_GET_METHOD: {
2198 0           amqp_basic_get_t *m = (amqp_basic_get_t *)decoded;
2199 0 0         if (!amqp_encode_16(encoded, &offset, m->ticket))
2200 0           return AMQP_STATUS_BAD_AMQP_DATA;
2201 0           if (UINT8_MAX < m->queue.len ||
2202 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->queue.len) ||
2203 0           !amqp_encode_bytes(encoded, &offset, m->queue))
2204 0           return AMQP_STATUS_BAD_AMQP_DATA;
2205 0           bit_buffer = 0;
2206 0 0         if (m->no_ack) bit_buffer |= (1 << 0);
2207 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2208 0           return AMQP_STATUS_BAD_AMQP_DATA;
2209 0           return (int)offset;
2210             }
2211 0           case AMQP_BASIC_GET_OK_METHOD: {
2212 0           amqp_basic_get_ok_t *m = (amqp_basic_get_ok_t *)decoded;
2213 0 0         if (!amqp_encode_64(encoded, &offset, m->delivery_tag))
2214 0           return AMQP_STATUS_BAD_AMQP_DATA;
2215 0           bit_buffer = 0;
2216 0 0         if (m->redelivered) bit_buffer |= (1 << 0);
2217 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2218 0           return AMQP_STATUS_BAD_AMQP_DATA;
2219 0           if (UINT8_MAX < m->exchange.len ||
2220 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->exchange.len) ||
2221 0           !amqp_encode_bytes(encoded, &offset, m->exchange))
2222 0           return AMQP_STATUS_BAD_AMQP_DATA;
2223 0           if (UINT8_MAX < m->routing_key.len ||
2224 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->routing_key.len) ||
2225 0           !amqp_encode_bytes(encoded, &offset, m->routing_key))
2226 0           return AMQP_STATUS_BAD_AMQP_DATA;
2227 0 0         if (!amqp_encode_32(encoded, &offset, m->message_count))
2228 0           return AMQP_STATUS_BAD_AMQP_DATA;
2229 0           return (int)offset;
2230             }
2231 0           case AMQP_BASIC_GET_EMPTY_METHOD: {
2232 0           amqp_basic_get_empty_t *m = (amqp_basic_get_empty_t *)decoded;
2233 0           if (UINT8_MAX < m->cluster_id.len ||
2234 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)m->cluster_id.len) ||
2235 0           !amqp_encode_bytes(encoded, &offset, m->cluster_id))
2236 0           return AMQP_STATUS_BAD_AMQP_DATA;
2237 0           return (int)offset;
2238             }
2239 0           case AMQP_BASIC_ACK_METHOD: {
2240 0           amqp_basic_ack_t *m = (amqp_basic_ack_t *)decoded;
2241 0 0         if (!amqp_encode_64(encoded, &offset, m->delivery_tag))
2242 0           return AMQP_STATUS_BAD_AMQP_DATA;
2243 0           bit_buffer = 0;
2244 0 0         if (m->multiple) bit_buffer |= (1 << 0);
2245 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2246 0           return AMQP_STATUS_BAD_AMQP_DATA;
2247 0           return (int)offset;
2248             }
2249 0           case AMQP_BASIC_REJECT_METHOD: {
2250 0           amqp_basic_reject_t *m = (amqp_basic_reject_t *)decoded;
2251 0 0         if (!amqp_encode_64(encoded, &offset, m->delivery_tag))
2252 0           return AMQP_STATUS_BAD_AMQP_DATA;
2253 0           bit_buffer = 0;
2254 0 0         if (m->requeue) bit_buffer |= (1 << 0);
2255 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2256 0           return AMQP_STATUS_BAD_AMQP_DATA;
2257 0           return (int)offset;
2258             }
2259 0           case AMQP_BASIC_RECOVER_ASYNC_METHOD: {
2260 0           amqp_basic_recover_async_t *m = (amqp_basic_recover_async_t *)decoded;
2261 0           bit_buffer = 0;
2262 0 0         if (m->requeue) bit_buffer |= (1 << 0);
2263 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2264 0           return AMQP_STATUS_BAD_AMQP_DATA;
2265 0           return (int)offset;
2266             }
2267 0           case AMQP_BASIC_RECOVER_METHOD: {
2268 0           amqp_basic_recover_t *m = (amqp_basic_recover_t *)decoded;
2269 0           bit_buffer = 0;
2270 0 0         if (m->requeue) bit_buffer |= (1 << 0);
2271 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2272 0           return AMQP_STATUS_BAD_AMQP_DATA;
2273 0           return (int)offset;
2274             }
2275 0           case AMQP_BASIC_RECOVER_OK_METHOD: {
2276 0           return (int)offset;
2277             }
2278 0           case AMQP_BASIC_NACK_METHOD: {
2279 0           amqp_basic_nack_t *m = (amqp_basic_nack_t *)decoded;
2280 0 0         if (!amqp_encode_64(encoded, &offset, m->delivery_tag))
2281 0           return AMQP_STATUS_BAD_AMQP_DATA;
2282 0           bit_buffer = 0;
2283 0 0         if (m->multiple) bit_buffer |= (1 << 0);
2284 0 0         if (m->requeue) bit_buffer |= (1 << 1);
2285 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2286 0           return AMQP_STATUS_BAD_AMQP_DATA;
2287 0           return (int)offset;
2288             }
2289 0           case AMQP_TX_SELECT_METHOD: {
2290 0           return (int)offset;
2291             }
2292 0           case AMQP_TX_SELECT_OK_METHOD: {
2293 0           return (int)offset;
2294             }
2295 0           case AMQP_TX_COMMIT_METHOD: {
2296 0           return (int)offset;
2297             }
2298 0           case AMQP_TX_COMMIT_OK_METHOD: {
2299 0           return (int)offset;
2300             }
2301 0           case AMQP_TX_ROLLBACK_METHOD: {
2302 0           return (int)offset;
2303             }
2304 0           case AMQP_TX_ROLLBACK_OK_METHOD: {
2305 0           return (int)offset;
2306             }
2307 0           case AMQP_CONFIRM_SELECT_METHOD: {
2308 0           amqp_confirm_select_t *m = (amqp_confirm_select_t *)decoded;
2309 0           bit_buffer = 0;
2310 0 0         if (m->nowait) bit_buffer |= (1 << 0);
2311 0 0         if (!amqp_encode_8(encoded, &offset, bit_buffer))
2312 0           return AMQP_STATUS_BAD_AMQP_DATA;
2313 0           return (int)offset;
2314             }
2315 0           case AMQP_CONFIRM_SELECT_OK_METHOD: {
2316 0           return (int)offset;
2317             }
2318 0           default:
2319 0           return AMQP_STATUS_UNKNOWN_METHOD;
2320             }
2321             }
2322              
2323 0           int amqp_encode_properties(uint16_t class_id, void *decoded,
2324             amqp_bytes_t encoded) {
2325 0           size_t offset = 0;
2326              
2327             /* Cheat, and get the flags out generically, relying on the
2328             similarity of structure between classes */
2329 0           amqp_flags_t flags = *(amqp_flags_t *)decoded; /* cheating! */
2330              
2331             {
2332             /* We take a copy of flags to avoid destroying it, as it is used
2333             in the autogenerated code below. */
2334 0           amqp_flags_t remaining_flags = flags;
2335             do {
2336 0           amqp_flags_t remainder = remaining_flags >> 16;
2337 0           uint16_t partial_flags = remaining_flags & 0xFFFE;
2338 0 0         if (remainder != 0) {
2339 0           partial_flags |= 1;
2340             }
2341 0 0         if (!amqp_encode_16(encoded, &offset, partial_flags))
2342 0           return AMQP_STATUS_BAD_AMQP_DATA;
2343 0           remaining_flags = remainder;
2344 0 0         } while (remaining_flags != 0);
2345             }
2346              
2347 0           switch (class_id) {
2348 0           case 10: {
2349 0           return (int)offset;
2350             }
2351 0           case 20: {
2352 0           return (int)offset;
2353             }
2354 0           case 30: {
2355 0           return (int)offset;
2356             }
2357 0           case 40: {
2358 0           return (int)offset;
2359             }
2360 0           case 50: {
2361 0           return (int)offset;
2362             }
2363 0           case 60: {
2364 0           amqp_basic_properties_t *p = (amqp_basic_properties_t *)decoded;
2365 0 0         if (flags & AMQP_BASIC_CONTENT_TYPE_FLAG) {
2366 0           if (UINT8_MAX < p->content_type.len ||
2367 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->content_type.len) ||
2368 0           !amqp_encode_bytes(encoded, &offset, p->content_type))
2369 0           return AMQP_STATUS_BAD_AMQP_DATA;
2370             }
2371 0 0         if (flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) {
2372 0           if (UINT8_MAX < p->content_encoding.len ||
2373 0           !amqp_encode_8(encoded, &offset,
2374 0 0         (uint8_t)p->content_encoding.len) ||
2375 0           !amqp_encode_bytes(encoded, &offset, p->content_encoding))
2376 0           return AMQP_STATUS_BAD_AMQP_DATA;
2377             }
2378 0 0         if (flags & AMQP_BASIC_HEADERS_FLAG) {
2379             {
2380 0           int res = amqp_encode_table(encoded, &(p->headers), &offset);
2381 0 0         if (res < 0) return res;
2382             }
2383             }
2384 0 0         if (flags & AMQP_BASIC_DELIVERY_MODE_FLAG) {
2385 0 0         if (!amqp_encode_8(encoded, &offset, p->delivery_mode))
2386 0           return AMQP_STATUS_BAD_AMQP_DATA;
2387             }
2388 0 0         if (flags & AMQP_BASIC_PRIORITY_FLAG) {
2389 0 0         if (!amqp_encode_8(encoded, &offset, p->priority))
2390 0           return AMQP_STATUS_BAD_AMQP_DATA;
2391             }
2392 0 0         if (flags & AMQP_BASIC_CORRELATION_ID_FLAG) {
2393 0           if (UINT8_MAX < p->correlation_id.len ||
2394 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->correlation_id.len) ||
2395 0           !amqp_encode_bytes(encoded, &offset, p->correlation_id))
2396 0           return AMQP_STATUS_BAD_AMQP_DATA;
2397             }
2398 0 0         if (flags & AMQP_BASIC_REPLY_TO_FLAG) {
2399 0           if (UINT8_MAX < p->reply_to.len ||
2400 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->reply_to.len) ||
2401 0           !amqp_encode_bytes(encoded, &offset, p->reply_to))
2402 0           return AMQP_STATUS_BAD_AMQP_DATA;
2403             }
2404 0 0         if (flags & AMQP_BASIC_EXPIRATION_FLAG) {
2405 0           if (UINT8_MAX < p->expiration.len ||
2406 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->expiration.len) ||
2407 0           !amqp_encode_bytes(encoded, &offset, p->expiration))
2408 0           return AMQP_STATUS_BAD_AMQP_DATA;
2409             }
2410 0 0         if (flags & AMQP_BASIC_MESSAGE_ID_FLAG) {
2411 0           if (UINT8_MAX < p->message_id.len ||
2412 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->message_id.len) ||
2413 0           !amqp_encode_bytes(encoded, &offset, p->message_id))
2414 0           return AMQP_STATUS_BAD_AMQP_DATA;
2415             }
2416 0 0         if (flags & AMQP_BASIC_TIMESTAMP_FLAG) {
2417 0 0         if (!amqp_encode_64(encoded, &offset, p->timestamp))
2418 0           return AMQP_STATUS_BAD_AMQP_DATA;
2419             }
2420 0 0         if (flags & AMQP_BASIC_TYPE_FLAG) {
2421 0           if (UINT8_MAX < p->type.len ||
2422 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->type.len) ||
2423 0           !amqp_encode_bytes(encoded, &offset, p->type))
2424 0           return AMQP_STATUS_BAD_AMQP_DATA;
2425             }
2426 0 0         if (flags & AMQP_BASIC_USER_ID_FLAG) {
2427 0           if (UINT8_MAX < p->user_id.len ||
2428 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->user_id.len) ||
2429 0           !amqp_encode_bytes(encoded, &offset, p->user_id))
2430 0           return AMQP_STATUS_BAD_AMQP_DATA;
2431             }
2432 0 0         if (flags & AMQP_BASIC_APP_ID_FLAG) {
2433 0           if (UINT8_MAX < p->app_id.len ||
2434 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->app_id.len) ||
2435 0           !amqp_encode_bytes(encoded, &offset, p->app_id))
2436 0           return AMQP_STATUS_BAD_AMQP_DATA;
2437             }
2438 0 0         if (flags & AMQP_BASIC_CLUSTER_ID_FLAG) {
2439 0           if (UINT8_MAX < p->cluster_id.len ||
2440 0 0         !amqp_encode_8(encoded, &offset, (uint8_t)p->cluster_id.len) ||
2441 0           !amqp_encode_bytes(encoded, &offset, p->cluster_id))
2442 0           return AMQP_STATUS_BAD_AMQP_DATA;
2443             }
2444 0           return (int)offset;
2445             }
2446 0           case 90: {
2447 0           return (int)offset;
2448             }
2449 0           case 85: {
2450 0           return (int)offset;
2451             }
2452 0           default:
2453 0           return AMQP_STATUS_UNKNOWN_CLASS;
2454             }
2455             }
2456              
2457             /**
2458             * amqp_connection_update_secret
2459             *
2460             * @param [in] state connection state
2461             * @param [in] channel the channel to do the RPC on
2462             * @param [in] new_secret new_secret
2463             * @param [in] reason reason
2464             * @returns amqp_connection_update_secret_ok_t
2465             */
2466             AMQP_EXPORT
2467 0           amqp_connection_update_secret_ok_t *AMQP_CALL amqp_connection_update_secret(
2468             amqp_connection_state_t state, amqp_channel_t channel,
2469             amqp_bytes_t new_secret, amqp_bytes_t reason) {
2470             amqp_connection_update_secret_t req;
2471 0           req.new_secret = new_secret;
2472 0           req.reason = reason;
2473              
2474 0           return amqp_simple_rpc_decoded(state, channel,
2475             AMQP_CONNECTION_UPDATE_SECRET_METHOD,
2476             AMQP_CONNECTION_UPDATE_SECRET_OK_METHOD, &req);
2477             }
2478              
2479             /**
2480             * amqp_channel_open
2481             *
2482             * @param [in] state connection state
2483             * @param [in] channel the channel to do the RPC on
2484             * @returns amqp_channel_open_ok_t
2485             */
2486             AMQP_EXPORT
2487             amqp_channel_open_ok_t *AMQP_CALL
2488 0           amqp_channel_open(amqp_connection_state_t state, amqp_channel_t channel) {
2489             amqp_channel_open_t req;
2490 0           req.out_of_band = amqp_empty_bytes;
2491              
2492 0           return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_OPEN_METHOD,
2493             AMQP_CHANNEL_OPEN_OK_METHOD, &req);
2494             }
2495              
2496             /**
2497             * amqp_channel_flow
2498             *
2499             * @param [in] state connection state
2500             * @param [in] channel the channel to do the RPC on
2501             * @param [in] active active
2502             * @returns amqp_channel_flow_ok_t
2503             */
2504             AMQP_EXPORT
2505             amqp_channel_flow_ok_t *AMQP_CALL
2506 0           amqp_channel_flow(amqp_connection_state_t state, amqp_channel_t channel,
2507             amqp_boolean_t active) {
2508             amqp_channel_flow_t req;
2509 0           req.active = active;
2510              
2511 0           return amqp_simple_rpc_decoded(state, channel, AMQP_CHANNEL_FLOW_METHOD,
2512             AMQP_CHANNEL_FLOW_OK_METHOD, &req);
2513             }
2514              
2515             /**
2516             * amqp_exchange_declare
2517             *
2518             * @param [in] state connection state
2519             * @param [in] channel the channel to do the RPC on
2520             * @param [in] exchange exchange
2521             * @param [in] type type
2522             * @param [in] passive passive
2523             * @param [in] durable durable
2524             * @param [in] auto_delete auto_delete
2525             * @param [in] internal internal
2526             * @param [in] arguments arguments
2527             * @returns amqp_exchange_declare_ok_t
2528             */
2529             AMQP_EXPORT
2530 0           amqp_exchange_declare_ok_t *AMQP_CALL amqp_exchange_declare(
2531             amqp_connection_state_t state, amqp_channel_t channel,
2532             amqp_bytes_t exchange, amqp_bytes_t type, amqp_boolean_t passive,
2533             amqp_boolean_t durable, amqp_boolean_t auto_delete, amqp_boolean_t internal,
2534             amqp_table_t arguments) {
2535             amqp_exchange_declare_t req;
2536 0           req.ticket = 0;
2537 0           req.exchange = exchange;
2538 0           req.type = type;
2539 0           req.passive = passive;
2540 0           req.durable = durable;
2541 0           req.auto_delete = auto_delete;
2542 0           req.internal = internal;
2543 0           req.nowait = 0;
2544 0           req.arguments = arguments;
2545              
2546 0           return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DECLARE_METHOD,
2547             AMQP_EXCHANGE_DECLARE_OK_METHOD, &req);
2548             }
2549              
2550             /**
2551             * amqp_exchange_delete
2552             *
2553             * @param [in] state connection state
2554             * @param [in] channel the channel to do the RPC on
2555             * @param [in] exchange exchange
2556             * @param [in] if_unused if_unused
2557             * @returns amqp_exchange_delete_ok_t
2558             */
2559             AMQP_EXPORT
2560             amqp_exchange_delete_ok_t *AMQP_CALL
2561 0           amqp_exchange_delete(amqp_connection_state_t state, amqp_channel_t channel,
2562             amqp_bytes_t exchange, amqp_boolean_t if_unused) {
2563             amqp_exchange_delete_t req;
2564 0           req.ticket = 0;
2565 0           req.exchange = exchange;
2566 0           req.if_unused = if_unused;
2567 0           req.nowait = 0;
2568              
2569 0           return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_DELETE_METHOD,
2570             AMQP_EXCHANGE_DELETE_OK_METHOD, &req);
2571             }
2572              
2573             /**
2574             * amqp_exchange_bind
2575             *
2576             * @param [in] state connection state
2577             * @param [in] channel the channel to do the RPC on
2578             * @param [in] destination destination
2579             * @param [in] source source
2580             * @param [in] routing_key routing_key
2581             * @param [in] arguments arguments
2582             * @returns amqp_exchange_bind_ok_t
2583             */
2584             AMQP_EXPORT
2585             amqp_exchange_bind_ok_t *AMQP_CALL
2586 0           amqp_exchange_bind(amqp_connection_state_t state, amqp_channel_t channel,
2587             amqp_bytes_t destination, amqp_bytes_t source,
2588             amqp_bytes_t routing_key, amqp_table_t arguments) {
2589             amqp_exchange_bind_t req;
2590 0           req.ticket = 0;
2591 0           req.destination = destination;
2592 0           req.source = source;
2593 0           req.routing_key = routing_key;
2594 0           req.nowait = 0;
2595 0           req.arguments = arguments;
2596              
2597 0           return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_BIND_METHOD,
2598             AMQP_EXCHANGE_BIND_OK_METHOD, &req);
2599             }
2600              
2601             /**
2602             * amqp_exchange_unbind
2603             *
2604             * @param [in] state connection state
2605             * @param [in] channel the channel to do the RPC on
2606             * @param [in] destination destination
2607             * @param [in] source source
2608             * @param [in] routing_key routing_key
2609             * @param [in] arguments arguments
2610             * @returns amqp_exchange_unbind_ok_t
2611             */
2612             AMQP_EXPORT
2613             amqp_exchange_unbind_ok_t *AMQP_CALL
2614 0           amqp_exchange_unbind(amqp_connection_state_t state, amqp_channel_t channel,
2615             amqp_bytes_t destination, amqp_bytes_t source,
2616             amqp_bytes_t routing_key, amqp_table_t arguments) {
2617             amqp_exchange_unbind_t req;
2618 0           req.ticket = 0;
2619 0           req.destination = destination;
2620 0           req.source = source;
2621 0           req.routing_key = routing_key;
2622 0           req.nowait = 0;
2623 0           req.arguments = arguments;
2624              
2625 0           return amqp_simple_rpc_decoded(state, channel, AMQP_EXCHANGE_UNBIND_METHOD,
2626             AMQP_EXCHANGE_UNBIND_OK_METHOD, &req);
2627             }
2628              
2629             /**
2630             * amqp_queue_declare
2631             *
2632             * @param [in] state connection state
2633             * @param [in] channel the channel to do the RPC on
2634             * @param [in] queue queue
2635             * @param [in] passive passive
2636             * @param [in] durable durable
2637             * @param [in] exclusive exclusive
2638             * @param [in] auto_delete auto_delete
2639             * @param [in] arguments arguments
2640             * @returns amqp_queue_declare_ok_t
2641             */
2642             AMQP_EXPORT
2643 0           amqp_queue_declare_ok_t *AMQP_CALL amqp_queue_declare(
2644             amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
2645             amqp_boolean_t passive, amqp_boolean_t durable, amqp_boolean_t exclusive,
2646             amqp_boolean_t auto_delete, amqp_table_t arguments) {
2647             amqp_queue_declare_t req;
2648 0           req.ticket = 0;
2649 0           req.queue = queue;
2650 0           req.passive = passive;
2651 0           req.durable = durable;
2652 0           req.exclusive = exclusive;
2653 0           req.auto_delete = auto_delete;
2654 0           req.nowait = 0;
2655 0           req.arguments = arguments;
2656              
2657 0           return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DECLARE_METHOD,
2658             AMQP_QUEUE_DECLARE_OK_METHOD, &req);
2659             }
2660              
2661             /**
2662             * amqp_queue_bind
2663             *
2664             * @param [in] state connection state
2665             * @param [in] channel the channel to do the RPC on
2666             * @param [in] queue queue
2667             * @param [in] exchange exchange
2668             * @param [in] routing_key routing_key
2669             * @param [in] arguments arguments
2670             * @returns amqp_queue_bind_ok_t
2671             */
2672             AMQP_EXPORT
2673 0           amqp_queue_bind_ok_t *AMQP_CALL amqp_queue_bind(
2674             amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
2675             amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) {
2676             amqp_queue_bind_t req;
2677 0           req.ticket = 0;
2678 0           req.queue = queue;
2679 0           req.exchange = exchange;
2680 0           req.routing_key = routing_key;
2681 0           req.nowait = 0;
2682 0           req.arguments = arguments;
2683              
2684 0           return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_BIND_METHOD,
2685             AMQP_QUEUE_BIND_OK_METHOD, &req);
2686             }
2687              
2688             /**
2689             * amqp_queue_purge
2690             *
2691             * @param [in] state connection state
2692             * @param [in] channel the channel to do the RPC on
2693             * @param [in] queue queue
2694             * @returns amqp_queue_purge_ok_t
2695             */
2696             AMQP_EXPORT
2697 0           amqp_queue_purge_ok_t *AMQP_CALL amqp_queue_purge(amqp_connection_state_t state,
2698             amqp_channel_t channel,
2699             amqp_bytes_t queue) {
2700             amqp_queue_purge_t req;
2701 0           req.ticket = 0;
2702 0           req.queue = queue;
2703 0           req.nowait = 0;
2704              
2705 0           return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_PURGE_METHOD,
2706             AMQP_QUEUE_PURGE_OK_METHOD, &req);
2707             }
2708              
2709             /**
2710             * amqp_queue_delete
2711             *
2712             * @param [in] state connection state
2713             * @param [in] channel the channel to do the RPC on
2714             * @param [in] queue queue
2715             * @param [in] if_unused if_unused
2716             * @param [in] if_empty if_empty
2717             * @returns amqp_queue_delete_ok_t
2718             */
2719             AMQP_EXPORT
2720 0           amqp_queue_delete_ok_t *AMQP_CALL amqp_queue_delete(
2721             amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
2722             amqp_boolean_t if_unused, amqp_boolean_t if_empty) {
2723             amqp_queue_delete_t req;
2724 0           req.ticket = 0;
2725 0           req.queue = queue;
2726 0           req.if_unused = if_unused;
2727 0           req.if_empty = if_empty;
2728 0           req.nowait = 0;
2729              
2730 0           return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_DELETE_METHOD,
2731             AMQP_QUEUE_DELETE_OK_METHOD, &req);
2732             }
2733              
2734             /**
2735             * amqp_queue_unbind
2736             *
2737             * @param [in] state connection state
2738             * @param [in] channel the channel to do the RPC on
2739             * @param [in] queue queue
2740             * @param [in] exchange exchange
2741             * @param [in] routing_key routing_key
2742             * @param [in] arguments arguments
2743             * @returns amqp_queue_unbind_ok_t
2744             */
2745             AMQP_EXPORT
2746 0           amqp_queue_unbind_ok_t *AMQP_CALL amqp_queue_unbind(
2747             amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
2748             amqp_bytes_t exchange, amqp_bytes_t routing_key, amqp_table_t arguments) {
2749             amqp_queue_unbind_t req;
2750 0           req.ticket = 0;
2751 0           req.queue = queue;
2752 0           req.exchange = exchange;
2753 0           req.routing_key = routing_key;
2754 0           req.arguments = arguments;
2755              
2756 0           return amqp_simple_rpc_decoded(state, channel, AMQP_QUEUE_UNBIND_METHOD,
2757             AMQP_QUEUE_UNBIND_OK_METHOD, &req);
2758             }
2759              
2760             /**
2761             * amqp_basic_qos
2762             *
2763             * @param [in] state connection state
2764             * @param [in] channel the channel to do the RPC on
2765             * @param [in] prefetch_size prefetch_size
2766             * @param [in] prefetch_count prefetch_count
2767             * @param [in] global global
2768             * @returns amqp_basic_qos_ok_t
2769             */
2770             AMQP_EXPORT
2771 0           amqp_basic_qos_ok_t *AMQP_CALL amqp_basic_qos(amqp_connection_state_t state,
2772             amqp_channel_t channel,
2773             uint32_t prefetch_size,
2774             uint16_t prefetch_count,
2775             amqp_boolean_t global) {
2776             amqp_basic_qos_t req;
2777 0           req.prefetch_size = prefetch_size;
2778 0           req.prefetch_count = prefetch_count;
2779 0           req.global = global;
2780              
2781 0           return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_QOS_METHOD,
2782             AMQP_BASIC_QOS_OK_METHOD, &req);
2783             }
2784              
2785             /**
2786             * amqp_basic_consume
2787             *
2788             * @param [in] state connection state
2789             * @param [in] channel the channel to do the RPC on
2790             * @param [in] queue queue
2791             * @param [in] consumer_tag consumer_tag
2792             * @param [in] no_local no_local
2793             * @param [in] no_ack no_ack
2794             * @param [in] exclusive exclusive
2795             * @param [in] arguments arguments
2796             * @returns amqp_basic_consume_ok_t
2797             */
2798             AMQP_EXPORT
2799 0           amqp_basic_consume_ok_t *AMQP_CALL amqp_basic_consume(
2800             amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
2801             amqp_bytes_t consumer_tag, amqp_boolean_t no_local, amqp_boolean_t no_ack,
2802             amqp_boolean_t exclusive, amqp_table_t arguments) {
2803             amqp_basic_consume_t req;
2804 0           req.ticket = 0;
2805 0           req.queue = queue;
2806 0           req.consumer_tag = consumer_tag;
2807 0           req.no_local = no_local;
2808 0           req.no_ack = no_ack;
2809 0           req.exclusive = exclusive;
2810 0           req.nowait = 0;
2811 0           req.arguments = arguments;
2812              
2813 0           return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CONSUME_METHOD,
2814             AMQP_BASIC_CONSUME_OK_METHOD, &req);
2815             }
2816              
2817             /**
2818             * amqp_basic_cancel
2819             *
2820             * @param [in] state connection state
2821             * @param [in] channel the channel to do the RPC on
2822             * @param [in] consumer_tag consumer_tag
2823             * @returns amqp_basic_cancel_ok_t
2824             */
2825             AMQP_EXPORT
2826             amqp_basic_cancel_ok_t *AMQP_CALL
2827 0           amqp_basic_cancel(amqp_connection_state_t state, amqp_channel_t channel,
2828             amqp_bytes_t consumer_tag) {
2829             amqp_basic_cancel_t req;
2830 0           req.consumer_tag = consumer_tag;
2831 0           req.nowait = 0;
2832              
2833 0           return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_CANCEL_METHOD,
2834             AMQP_BASIC_CANCEL_OK_METHOD, &req);
2835             }
2836              
2837             /**
2838             * amqp_basic_recover
2839             *
2840             * @param [in] state connection state
2841             * @param [in] channel the channel to do the RPC on
2842             * @param [in] requeue requeue
2843             * @returns amqp_basic_recover_ok_t
2844             */
2845             AMQP_EXPORT
2846             amqp_basic_recover_ok_t *AMQP_CALL
2847 0           amqp_basic_recover(amqp_connection_state_t state, amqp_channel_t channel,
2848             amqp_boolean_t requeue) {
2849             amqp_basic_recover_t req;
2850 0           req.requeue = requeue;
2851              
2852 0           return amqp_simple_rpc_decoded(state, channel, AMQP_BASIC_RECOVER_METHOD,
2853             AMQP_BASIC_RECOVER_OK_METHOD, &req);
2854             }
2855              
2856             /**
2857             * amqp_tx_select
2858             *
2859             * @param [in] state connection state
2860             * @param [in] channel the channel to do the RPC on
2861             * @returns amqp_tx_select_ok_t
2862             */
2863             AMQP_EXPORT
2864 0           amqp_tx_select_ok_t *AMQP_CALL amqp_tx_select(amqp_connection_state_t state,
2865             amqp_channel_t channel) {
2866             amqp_tx_select_t req;
2867              
2868 0           return amqp_simple_rpc_decoded(state, channel, AMQP_TX_SELECT_METHOD,
2869             AMQP_TX_SELECT_OK_METHOD, &req);
2870             }
2871              
2872             /**
2873             * amqp_tx_commit
2874             *
2875             * @param [in] state connection state
2876             * @param [in] channel the channel to do the RPC on
2877             * @returns amqp_tx_commit_ok_t
2878             */
2879             AMQP_EXPORT
2880 0           amqp_tx_commit_ok_t *AMQP_CALL amqp_tx_commit(amqp_connection_state_t state,
2881             amqp_channel_t channel) {
2882             amqp_tx_commit_t req;
2883              
2884 0           return amqp_simple_rpc_decoded(state, channel, AMQP_TX_COMMIT_METHOD,
2885             AMQP_TX_COMMIT_OK_METHOD, &req);
2886             }
2887              
2888             /**
2889             * amqp_tx_rollback
2890             *
2891             * @param [in] state connection state
2892             * @param [in] channel the channel to do the RPC on
2893             * @returns amqp_tx_rollback_ok_t
2894             */
2895             AMQP_EXPORT
2896 0           amqp_tx_rollback_ok_t *AMQP_CALL amqp_tx_rollback(amqp_connection_state_t state,
2897             amqp_channel_t channel) {
2898             amqp_tx_rollback_t req;
2899              
2900 0           return amqp_simple_rpc_decoded(state, channel, AMQP_TX_ROLLBACK_METHOD,
2901             AMQP_TX_ROLLBACK_OK_METHOD, &req);
2902             }
2903              
2904             /**
2905             * amqp_confirm_select
2906             *
2907             * @param [in] state connection state
2908             * @param [in] channel the channel to do the RPC on
2909             * @returns amqp_confirm_select_ok_t
2910             */
2911             AMQP_EXPORT
2912             amqp_confirm_select_ok_t *AMQP_CALL
2913 0           amqp_confirm_select(amqp_connection_state_t state, amqp_channel_t channel) {
2914             amqp_confirm_select_t req;
2915 0           req.nowait = 0;
2916              
2917 0           return amqp_simple_rpc_decoded(state, channel, AMQP_CONFIRM_SELECT_METHOD,
2918             AMQP_CONFIRM_SELECT_OK_METHOD, &req);
2919             }