bunny 0.8.0 → 0.9.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. data/.gitignore +7 -1
  2. data/.travis.yml +14 -4
  3. data/ChangeLog.md +72 -0
  4. data/Gemfile +17 -11
  5. data/README.md +82 -0
  6. data/bunny.gemspec +6 -13
  7. data/examples/connection/heartbeat.rb +17 -0
  8. data/lib/bunny.rb +40 -56
  9. data/lib/bunny/channel.rb +615 -19
  10. data/lib/bunny/channel_id_allocator.rb +59 -0
  11. data/lib/bunny/compatibility.rb +24 -0
  12. data/lib/bunny/concurrent/condition.rb +63 -0
  13. data/lib/bunny/consumer.rb +42 -26
  14. data/lib/bunny/consumer_tag_generator.rb +22 -0
  15. data/lib/bunny/consumer_work_pool.rb +67 -0
  16. data/lib/bunny/exceptions.rb +128 -0
  17. data/lib/bunny/exchange.rb +131 -136
  18. data/lib/bunny/framing.rb +53 -0
  19. data/lib/bunny/heartbeat_sender.rb +59 -0
  20. data/lib/bunny/main_loop.rb +70 -0
  21. data/lib/bunny/message_metadata.rb +126 -0
  22. data/lib/bunny/queue.rb +102 -275
  23. data/lib/bunny/session.rb +478 -0
  24. data/lib/bunny/socket.rb +44 -0
  25. data/lib/bunny/system_timer.rb +9 -9
  26. data/lib/bunny/transport.rb +179 -0
  27. data/lib/bunny/version.rb +1 -1
  28. data/spec/compatibility/queue_declare_spec.rb +40 -0
  29. data/spec/higher_level_api/integration/basic_ack_spec.rb +54 -0
  30. data/spec/higher_level_api/integration/basic_consume_spec.rb +51 -0
  31. data/spec/higher_level_api/integration/basic_get_spec.rb +47 -0
  32. data/spec/higher_level_api/integration/basic_nack_spec.rb +39 -0
  33. data/spec/higher_level_api/integration/basic_publish_spec.rb +105 -0
  34. data/spec/higher_level_api/integration/basic_qos_spec.rb +32 -0
  35. data/spec/higher_level_api/integration/basic_recover_spec.rb +18 -0
  36. data/spec/higher_level_api/integration/basic_reject_spec.rb +53 -0
  37. data/spec/higher_level_api/integration/basic_return_spec.rb +33 -0
  38. data/spec/higher_level_api/integration/channel_close_spec.rb +29 -0
  39. data/spec/higher_level_api/integration/channel_flow_spec.rb +24 -0
  40. data/spec/higher_level_api/integration/channel_open_spec.rb +57 -0
  41. data/spec/higher_level_api/integration/channel_open_stress_spec.rb +22 -0
  42. data/spec/higher_level_api/integration/confirm_select_spec.rb +19 -0
  43. data/spec/higher_level_api/integration/connection_spec.rb +340 -0
  44. data/spec/higher_level_api/integration/exchange_bind_spec.rb +31 -0
  45. data/spec/higher_level_api/integration/exchange_declare_spec.rb +183 -0
  46. data/spec/higher_level_api/integration/exchange_delete_spec.rb +37 -0
  47. data/spec/higher_level_api/integration/exchange_unbind_spec.rb +40 -0
  48. data/spec/higher_level_api/integration/queue_bind_spec.rb +109 -0
  49. data/spec/higher_level_api/integration/queue_declare_spec.rb +129 -0
  50. data/spec/higher_level_api/integration/queue_delete_spec.rb +38 -0
  51. data/spec/higher_level_api/integration/queue_purge_spec.rb +30 -0
  52. data/spec/higher_level_api/integration/queue_unbind_spec.rb +33 -0
  53. data/spec/higher_level_api/integration/tx_commit_spec.rb +21 -0
  54. data/spec/higher_level_api/integration/tx_rollback_spec.rb +21 -0
  55. data/spec/lower_level_api/integration/basic_cancel_spec.rb +57 -0
  56. data/spec/lower_level_api/integration/basic_consume_spec.rb +100 -0
  57. data/spec/spec_helper.rb +64 -0
  58. data/spec/unit/bunny_spec.rb +15 -0
  59. data/spec/unit/concurrent/condition_spec.rb +66 -0
  60. metadata +135 -93
  61. data/CHANGELOG +0 -21
  62. data/README.textile +0 -76
  63. data/Rakefile +0 -14
  64. data/examples/simple.rb +0 -32
  65. data/examples/simple_ack.rb +0 -35
  66. data/examples/simple_consumer.rb +0 -55
  67. data/examples/simple_fanout.rb +0 -41
  68. data/examples/simple_headers.rb +0 -42
  69. data/examples/simple_publisher.rb +0 -29
  70. data/examples/simple_topic.rb +0 -61
  71. data/ext/amqp-0.9.1.json +0 -389
  72. data/ext/config.yml +0 -4
  73. data/ext/qparser.rb +0 -426
  74. data/lib/bunny/client.rb +0 -370
  75. data/lib/bunny/subscription.rb +0 -92
  76. data/lib/qrack/amq-client-url.rb +0 -165
  77. data/lib/qrack/channel.rb +0 -20
  78. data/lib/qrack/client.rb +0 -247
  79. data/lib/qrack/errors.rb +0 -5
  80. data/lib/qrack/protocol/protocol.rb +0 -135
  81. data/lib/qrack/protocol/spec.rb +0 -525
  82. data/lib/qrack/qrack.rb +0 -20
  83. data/lib/qrack/queue.rb +0 -40
  84. data/lib/qrack/subscription.rb +0 -152
  85. data/lib/qrack/transport/buffer.rb +0 -305
  86. data/lib/qrack/transport/frame.rb +0 -102
  87. data/spec/spec_09/amqp_url_spec.rb +0 -19
  88. data/spec/spec_09/bunny_spec.rb +0 -76
  89. data/spec/spec_09/connection_spec.rb +0 -34
  90. data/spec/spec_09/exchange_spec.rb +0 -173
  91. data/spec/spec_09/queue_spec.rb +0 -240
@@ -1,41 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # simple_fanout.rb
4
-
5
- # Assumes that target message broker/server has a user called 'guest' with a password 'guest'
6
- # and that it is running on 'localhost'.
7
-
8
- # If this is not the case, please change the 'Bunny.new' call below to include
9
- # the relevant arguments e.g. b = Bunny.new(:user => 'john', :pass => 'doe', :host => 'foobar')
10
-
11
- $:.unshift File.dirname(__FILE__) + '/../lib'
12
-
13
- require 'bunny'
14
-
15
- b = Bunny.new(:logging => true)
16
-
17
- # start a communication session with the amqp server
18
- b.start
19
-
20
- # declare queues
21
- q1 = b.queue('test_fan1')
22
- q2 = b.queue('test_fan2')
23
-
24
- # create a fanout exchange
25
- exch = b.exchange('test_fan', :type => :fanout)
26
-
27
- # bind the queues to the exchange
28
- q1.bind(exch)
29
- q2.bind(exch)
30
-
31
- # publish a message to the exchange
32
- exch.publish('This message will be fanned out')
33
-
34
- # get message from the queues
35
- msg = q1.pop[:payload]
36
- puts 'This is the message from q1: ' + msg + "\n\n"
37
- msg = q2.pop[:payload]
38
- puts 'This is the message from q2: ' + msg + "\n\n"
39
-
40
- # close the client connection
41
- b.stop
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # simple_headers.rb
4
-
5
- # Assumes that target message broker/server has a user called 'guest' with a password 'guest'
6
- # and that it is running on 'localhost'.
7
-
8
- # If this is not the case, please change the 'Bunny.new' call below to include
9
- # the relevant arguments e.g. b = Bunny.new(:user => 'john', :pass => 'doe', :host => 'foobar')
10
-
11
- $:.unshift File.dirname(__FILE__) + '/../lib'
12
-
13
- require 'bunny'
14
-
15
- b = Bunny.new(:logging => true)
16
-
17
- # start a communication session with the amqp server
18
- b.start
19
-
20
- # declare queues
21
- q = b.queue('header_q1')
22
-
23
- # create a headers exchange
24
- header_exch = b.exchange('header_exch', :type => :headers)
25
-
26
- # bind the queue to the exchange
27
- q.bind(header_exch, :arguments => {'h1'=>'a','x-match'=>'all'})
28
-
29
- # publish messages to the exchange
30
- header_exch.publish('Headers test msg 1', :headers => {'h1'=>'a'})
31
- header_exch.publish('Headers test msg 2', :headers => {'h1'=>'z'})
32
-
33
-
34
- # get messages from the queue - should only be msg 1 that got through
35
- msg = ""
36
- until msg == :queue_empty do
37
- msg = q.pop[:payload]
38
- puts 'This is a message from the header_q1 queue: ' + msg + "\n" unless msg == :queue_empty
39
- end
40
-
41
- # close the client connection
42
- b.stop
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # simple_publisher.rb
4
-
5
- # N.B. To be used in conjunction with simple_consumer.rb. See simple_consumer.rb for explanation.
6
-
7
- # Assumes that target message broker/server has a user called 'guest' with a password 'guest'
8
- # and that it is running on 'localhost'.
9
-
10
- # If this is not the case, please change the 'Bunny.new' call below to include
11
- # the relevant arguments e.g. b = Bunny.new(:user => 'john', :pass => 'doe', :host => 'foobar')
12
-
13
- $:.unshift File.dirname(__FILE__) + '/../lib'
14
-
15
- require 'bunny'
16
-
17
- b = Bunny.new(:logging => true)
18
-
19
- # start a communication session with the amqp server
20
- b.start
21
-
22
- # create/get exchange
23
- exch = b.exchange('sorting_room')
24
-
25
- # publish message to exchange
26
- exch.publish('This is a message from the publisher', :key => 'fred')
27
-
28
- # message should now be picked up by the consumer so we can stop
29
- b.stop
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # simple_topic.rb
4
-
5
- # Assumes that target message broker/server has a user called 'guest' with a password 'guest'
6
- # and that it is running on 'localhost'.
7
-
8
- # If this is not the case, please change the 'Bunny.new' call below to include
9
- # the relevant arguments e.g. b = Bunny.new(:user => 'john', :pass => 'doe', :host => 'foobar')
10
-
11
- $:.unshift File.dirname(__FILE__) + '/../lib'
12
-
13
- require 'bunny'
14
-
15
- b = Bunny.new(:logging => true)
16
-
17
- # start a communication session with the amqp server
18
- b.start
19
-
20
- # declare queues
21
- soccer = b.queue('topic_soccer')
22
- cricket = b.queue('topic_cricket')
23
- rugby = b.queue('topic_rugby')
24
- allsport = b.queue('topic_allsport')
25
-
26
- # create a topic exchange
27
- sports_results = b.exchange('sports_results', :type => :topic)
28
-
29
- # bind the queues to the exchange
30
- soccer.bind(sports_results, :key => 'soccer.*')
31
- cricket.bind(sports_results, :key => 'cricket.*')
32
- rugby.bind(sports_results, :key => 'rugby.*')
33
- allsport.bind(sports_results, :key => '*.result')
34
-
35
- # publish messages to the exchange
36
- sports_results.publish('Manchester United 1 : Hull City 4', :key => 'soccer.result')
37
- sports_results.publish('England beat Australia by 5 wickets in first test', :key => 'cricket.result')
38
- sports_results.publish('British Lions 15 : South Africa 12', :key => 'rugby.result')
39
-
40
- # get message from the queues
41
-
42
- # soccer queue got the soccer message
43
- msg = soccer.pop[:payload]
44
- puts 'This is a message from the soccer q: ' + msg + "\n\n"
45
-
46
- # cricket queue got the cricket message
47
- msg = cricket.pop[:payload]
48
- puts 'This is a message from the cricket q: ' + msg + "\n\n"
49
-
50
- # rugby queue got the rugby message
51
- msg = rugby.pop[:payload]
52
- puts 'This is a message from the rugby q: ' + msg + "\n\n"
53
-
54
- # allsport queue got all of the messages
55
- until msg == :queue_empty do
56
- msg = allsport.pop[:payload]
57
- puts 'This is a message from the allsport q: ' + msg + "\n\n" unless msg == :queue_empty
58
- end
59
-
60
- # close the client connection
61
- b.stop
@@ -1,389 +0,0 @@
1
- {
2
- "name": "AMQP",
3
- "major-version": 0,
4
- "minor-version": 9,
5
- "revision": 1,
6
- "port": 5672,
7
- "ssl_port": 5671,
8
- "copyright": [
9
- "Copyright (C) 2008-2009 LShift Ltd, Cohesive Financial Technologies LLC,\n",
10
- "and Rabbit Technologies Ltd\n",
11
- "\n",
12
- "Permission is hereby granted, free of charge, to any person\n",
13
- "obtaining a copy of this file (the \"Software\"), to deal in the\n",
14
- "Software without restriction, including without limitation the \n",
15
- "rights to use, copy, modify, merge, publish, distribute, \n",
16
- "sublicense, and/or sell copies of the Software, and to permit \n",
17
- "persons to whom the Software is furnished to do so, subject to \n",
18
- "the following conditions:\n",
19
- "\n",
20
- "The above copyright notice and this permission notice shall be\n",
21
- "included in all copies or substantial portions of the Software.\n",
22
- "\n",
23
- "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n",
24
- "EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n",
25
- "OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n",
26
- "NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n",
27
- "HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n",
28
- "WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n",
29
- "FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n",
30
- "OTHER DEALINGS IN THE SOFTWARE.\n",
31
- "\n",
32
- "Class information entered from amqp_xml0-8.pdf and domain types from amqp-xml-doc0-9.pdf\n",
33
- "Updated for 0-9-1 by Tony Garnock-Jones\n",
34
- "\n",
35
- "b3cb053f15e7b98808c0ccc67f23cb3e amqp_xml0-8.pdf\n",
36
- "http://www.twiststandards.org/index.php?option=com_docman&task=cat_view&gid=28&&Itemid=90\n",
37
- "8444db91e2949dbecfb2585e9eef6d64 amqp-xml-doc0-9.pdf\n",
38
- "https://jira.amqp.org/confluence/download/attachments/720900/amqp-xml-doc0-9.pdf?version=1\n"],
39
-
40
- "domains": [
41
- ["bit", "bit"],
42
- ["channel-id", "longstr"],
43
- ["class-id", "short"],
44
- ["consumer-tag", "shortstr"],
45
- ["delivery-tag", "longlong"],
46
- ["destination", "shortstr"],
47
- ["duration", "longlong"],
48
- ["exchange-name", "shortstr"],
49
- ["long", "long"],
50
- ["longlong", "longlong"],
51
- ["longstr", "longstr"],
52
- ["method-id", "short"],
53
- ["no-ack", "bit"],
54
- ["no-local", "bit"],
55
- ["octet", "octet"],
56
- ["offset", "longlong"],
57
- ["path", "shortstr"],
58
- ["peer-properties", "table"],
59
- ["queue-name", "shortstr"],
60
- ["redelivered", "bit"],
61
- ["reference", "longstr"],
62
- ["reject-code", "short"],
63
- ["reject-text", "shortstr"],
64
- ["reply-code", "short"],
65
- ["reply-text", "shortstr"],
66
- ["security-token", "longstr"],
67
- ["short", "short"],
68
- ["shortstr", "shortstr"],
69
- ["table", "table"],
70
- ["timestamp", "timestamp"]
71
- ],
72
-
73
- "constants": [
74
- {"name": "FRAME-METHOD", "value": 1},
75
- {"name": "FRAME-HEADER", "value": 2},
76
- {"name": "FRAME-BODY", "value": 3},
77
- {"name": "FRAME-HEARTBEAT", "value": 8},
78
- {"name": "FRAME-MIN-SIZE", "value": 4096},
79
- {"name": "FRAME-END", "value": 206},
80
- {"name": "REPLY-SUCCESS", "value": 200},
81
- {"name": "CONTENT-TOO-LARGE", "value": 311, "class": "soft-error"},
82
- {"name": "NO-ROUTE", "value": 312, "class": "soft-error"},
83
- {"name": "NO-CONSUMERS", "value": 313, "class": "soft-error"},
84
- {"name": "ACCESS-REFUSED", "value": 403, "class": "soft-error"},
85
- {"name": "NOT-FOUND", "value": 404, "class": "soft-error"},
86
- {"name": "RESOURCE-LOCKED", "value": 405, "class": "soft-error"},
87
- {"name": "PRECONDITION-FAILED", "value": 406, "class": "soft-error"},
88
- {"name": "CONNECTION-FORCED", "value": 320, "class": "hard-error"},
89
- {"name": "INVALID-PATH", "value": 402, "class": "hard-error"},
90
- {"name": "FRAME-ERROR", "value": 501, "class": "hard-error"},
91
- {"name": "SYNTAX-ERROR", "value": 502, "class": "hard-error"},
92
- {"name": "COMMAND-INVALID", "value": 503, "class": "hard-error"},
93
- {"name": "CHANNEL-ERROR", "value": 504, "class": "hard-error"},
94
- {"name": "UNEXPECTED-FRAME", "value": 505, "class": "hard-error"},
95
- {"name": "RESOURCE-ERROR", "value": 506, "class": "hard-error"},
96
- {"name": "NOT-ALLOWED", "value": 530, "class": "hard-error"},
97
- {"name": "NOT-IMPLEMENTED", "value": 540, "class": "hard-error"},
98
- {"name": "INTERNAL-ERROR", "value": 541, "class": "hard-error"}
99
- ],
100
-
101
- "classes": [
102
- {
103
- "id": 10,
104
- "methods": [{"id": 10,
105
- "arguments": [{"type": "octet", "name": "version-major", "default-value": 0},
106
- {"type": "octet", "name": "version-minor", "default-value": 8},
107
- {"domain": "peer-properties", "name": "server properties"},
108
- {"type": "longstr", "name": "mechanisms", "default-value": "PLAIN"},
109
- {"type": "longstr", "name": "locales", "default-value": "en_US"}],
110
- "name": "start"},
111
- {"id": 11,
112
- "arguments": [{"domain": "peer-properties", "name": "client-properties"},
113
- {"type": "shortstr", "name": "mechanism", "default-value": "PLAIN"},
114
- {"type": "longstr", "name": "response"},
115
- {"type": "shortstr", "name": "locale", "default-value": "en_US"}],
116
- "name": "start-ok"},
117
- {"id": 20,
118
- "arguments": [{"type": "longstr", "name": "challenge"}],
119
- "name": "secure"},
120
- {"id": 21,
121
- "arguments": [{"type": "longstr", "name": "response"}],
122
- "name": "secure-ok"},
123
- {"id": 30,
124
- "arguments": [{"type": "short", "name": "channel-max", "default-value": 0},
125
- {"type": "long", "name": "frame-max", "default-value": 0},
126
- {"type": "short", "name": "heartbeat", "default-value": 0}],
127
- "name": "tune"},
128
- {"id": 31,
129
- "arguments": [{"type": "short", "name": "channel-max", "default-value": 0},
130
- {"type": "long", "name": "frame-max", "default-value": 0},
131
- {"type": "short", "name": "heartbeat", "default-value": 0}],
132
- "name": "tune-ok"},
133
- {"id": 40,
134
- "arguments": [{"type": "shortstr", "name": "virtual-host", "default-value": "/"},
135
- {"type": "shortstr", "name": "deprecated-capabilities", "default-value": ""},
136
- {"type": "bit", "name": "deprecated-insist", "default-value": false}],
137
- "name": "open"},
138
- {"id": 41,
139
- "arguments": [{"type": "shortstr", "name": "deprecated-known-hosts", "default-value": ""}],
140
- "name": "open-ok"},
141
- {"id": 50,
142
- "arguments": [{"type": "short", "name": "reply-code"},
143
- {"type": "shortstr", "name": "reply-text", "default-value": ""},
144
- {"type": "short", "name": "class-id"},
145
- {"type": "short", "name": "method-id"}],
146
- "name": "close"},
147
- {"id": 51,
148
- "arguments": [],
149
- "name": "close-ok"}],
150
- "name": "connection",
151
- "properties": []
152
- },
153
- {
154
- "id": 20,
155
- "methods": [{"id": 10,
156
- "arguments": [{"type": "shortstr", "name": "deprecated-out-of-band", "default-value": ""}],
157
- "name": "open"},
158
- {"id": 11,
159
- "arguments": [{"type": "longstr", "name": "deprecated-channel-id", "default-value": ""}],
160
- "name": "open-ok"},
161
- {"id": 20,
162
- "arguments": [{"type": "bit", "name": "active"}],
163
- "name": "flow"},
164
- {"id": 21,
165
- "arguments": [{"type": "bit", "name": "active"}],
166
- "name": "flow-ok"},
167
- {"id": 40,
168
- "arguments": [{"type": "short", "name": "reply-code"},
169
- {"type": "shortstr", "name": "reply-text", "default-value": ""},
170
- {"type": "short", "name": "class-id"},
171
- {"type": "short", "name": "method-id"}],
172
- "name": "close"},
173
- {"id": 41,
174
- "arguments": [],
175
- "name": "close-ok"}],
176
- "name": "channel"
177
- },
178
- {
179
- "id": 40,
180
- "methods": [{"id": 10,
181
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
182
- {"type": "shortstr", "name": "exchange"},
183
- {"type": "shortstr", "name": "type", "default-value": "direct"},
184
- {"type": "bit", "name": "passive", "default-value": false},
185
- {"type": "bit", "name": "durable", "default-value": false},
186
- {"type": "bit", "name": "deprecated-auto-delete", "default-value": false},
187
- {"type": "bit", "name": "deprecated-internal", "default-value": false},
188
- {"type": "bit", "name": "nowait", "default-value": false},
189
- {"type": "table", "name": "arguments", "default-value": {}}],
190
- "name": "declare"},
191
- {"id": 11,
192
- "arguments": [],
193
- "name": "declare-ok"},
194
- {"id": 20,
195
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
196
- {"type": "shortstr", "name": "exchange"},
197
- {"type": "bit", "name": "if-unused", "default-value": false},
198
- {"type": "bit", "name": "nowait", "default-value": false}],
199
- "name": "delete"},
200
- {"id": 21,
201
- "arguments": [],
202
- "name": "delete-ok"}],
203
- "name": "exchange"
204
- },
205
- {
206
- "id": 50,
207
- "methods": [{"id": 10,
208
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
209
- {"type": "shortstr", "name": "queue", "default-value": ""},
210
- {"type": "bit", "name": "passive", "default-value": false},
211
- {"type": "bit", "name": "durable", "default-value": false},
212
- {"type": "bit", "name": "exclusive", "default-value": false},
213
- {"type": "bit", "name": "auto-delete", "default-value": false},
214
- {"type": "bit", "name": "nowait", "default-value": false},
215
- {"type": "table", "name": "arguments", "default-value": {}}],
216
- "name": "declare"},
217
- {"id": 11,
218
- "arguments": [{"type": "shortstr", "name": "queue"},
219
- {"type": "long", "name": "message-count"},
220
- {"type": "long", "name": "consumer-count"}],
221
- "name": "declare-ok"},
222
- {"id": 20,
223
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
224
- {"type": "shortstr", "name": "queue"},
225
- {"type": "shortstr", "name": "exchange"},
226
- {"type": "shortstr", "name": "routing-key"},
227
- {"type": "bit", "name": "nowait", "default-value": false},
228
- {"type": "table", "name": "arguments", "default-value": {}}],
229
- "name": "bind"},
230
- {"id": 21,
231
- "arguments": [],
232
- "name": "bind-ok"},
233
- {"id": 30,
234
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
235
- {"type": "shortstr", "name": "queue"},
236
- {"type": "bit", "name": "nowait", "default-value": false}],
237
- "name": "purge"},
238
- {"id": 31,
239
- "arguments": [{"type": "long", "name": "message-count"}],
240
- "name": "purge-ok"},
241
- {"id": 40,
242
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
243
- {"type": "shortstr", "name": "queue"},
244
- {"type": "bit", "name": "if-unused", "default-value": false},
245
- {"type": "bit", "name": "if-empty", "default-value": false},
246
- {"type": "bit", "name": "nowait", "default-value": false}],
247
- "name": "delete"},
248
- {"id": 41,
249
- "arguments": [{"type": "long", "name": "message-count"}],
250
- "name": "delete-ok"},
251
- {"id": 50,
252
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
253
- {"type": "shortstr", "name": "queue"},
254
- {"type": "shortstr", "name": "exchange"},
255
- {"type": "shortstr", "name": "routing-key"},
256
- {"type": "table", "name": "arguments"}],
257
- "name": "unbind"},
258
- {"id": 51,
259
- "arguments": [],
260
- "name": "unbind-ok"}
261
- ],
262
- "name": "queue"
263
- },
264
- {
265
- "id": 60,
266
- "methods": [{"id": 10,
267
- "arguments": [{"type": "long", "name": "prefetch-size", "default-value": 0},
268
- {"type": "short", "name": "prefetch-count", "default-value": 0},
269
- {"type": "bit", "name": "global", "default-value": false}],
270
- "name": "qos"},
271
- {"id": 11,
272
- "arguments": [],
273
- "name": "qos-ok"},
274
- {"id": 20,
275
- "arguments": [{"domain": "short", "name": "deprecated-ticket", "default-value": 1},
276
- {"domain": "queue-name", "name": "queue"},
277
- {"type": "shortstr", "name": "consumer-tag"},
278
- {"type": "bit", "name": "no-local", "default-value": false},
279
- {"type": "bit", "name": "no-ack", "default-value": false},
280
- {"type": "bit", "name": "exclusive", "default-value": false},
281
- {"type": "bit", "name": "nowait", "default-value": false},
282
- {"type": "table", "name": "filter", "default-value": {}}],
283
- "name": "consume"},
284
- {"id": 21,
285
- "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
286
- "name": "consume-ok"},
287
- {"id": 30,
288
- "arguments": [{"type": "shortstr", "name": "consumer-tag"},
289
- {"type": "bit", "name": "nowait", "default-value": false}],
290
- "name": "cancel"},
291
- {"id": 31,
292
- "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
293
- "name": "cancel-ok"},
294
- {"content": true,
295
- "id": 40,
296
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
297
- {"type": "shortstr", "name": "exchange", "default-value": ""},
298
- {"type": "shortstr", "name": "routing-key"},
299
- {"type": "bit", "name": "mandatory", "default-value": false},
300
- {"type": "bit", "name": "immediate", "default-value": false}],
301
- "name": "publish"},
302
- {"content": true,
303
- "id": 50,
304
- "arguments": [{"type": "short", "name": "reply-code"},
305
- {"type": "shortstr", "name": "reply-text", "default-value": ""},
306
- {"type": "shortstr", "name": "exchange"},
307
- {"type": "shortstr", "name": "routing-key"}],
308
- "name": "return"},
309
- {"content": true,
310
- "id": 60,
311
- "arguments": [{"type": "shortstr", "name": "consumer-tag"},
312
- {"type": "longlong", "name": "delivery-tag"},
313
- {"type": "bit", "name": "redelivered", "default-value": false},
314
- {"type": "shortstr", "name": "exchange"},
315
- {"type": "shortstr", "name": "routing-key"}],
316
- "name": "deliver"},
317
- {"id": 70,
318
- "arguments": [{"type": "short", "name": "deprecated-ticket", "default-value": 1},
319
- {"type": "shortstr", "name": "queue"},
320
- {"type": "bit", "name": "no-ack", "default-value": false}],
321
- "name": "get"},
322
- {"content": true,
323
- "id": 71,
324
- "arguments": [{"type": "longlong", "name": "delivery-tag"},
325
- {"type": "bit", "name": "redelivered", "default-value": false},
326
- {"type": "shortstr", "name": "exchange"},
327
- {"type": "shortstr", "name": "routing-key"},
328
- {"type": "long", "name": "message-count"}],
329
- "name": "get-ok"},
330
- {"id": 72,
331
- "arguments": [{"type": "shortstr", "name": "deprecated-cluster-id", "default-value": ""}],
332
- "name": "get-empty"},
333
- {"id": 80,
334
- "arguments": [{"type": "longlong", "name": "delivery-tag", "default-value": 0},
335
- {"type": "bit", "name": "multiple", "default-value": true}],
336
- "name": "ack"},
337
- {"id": 90,
338
- "arguments": [{"type": "longlong", "name": "delivery-tag"},
339
- {"type": "bit", "name": "requeue", "default-value": true}],
340
- "name": "reject"},
341
- {"id": 100,
342
- "arguments": [{"type": "bit", "name": "requeue", "default-value": false}],
343
- "name": "recover-async"},
344
- {"id": 110,
345
- "arguments": [{"type": "bit", "name": "requeue", "default-value": false}],
346
- "name": "recover"},
347
- {"id": 111,
348
- "arguments": [],
349
- "name": "recover-ok"}],
350
- "name": "basic",
351
- "properties": [{"type": "shortstr", "name": "content-type"},
352
- {"type": "shortstr", "name": "content-encoding"},
353
- {"type": "table", "name": "headers"},
354
- {"type": "octet", "name": "delivery-mode"},
355
- {"type": "octet", "name": "priority"},
356
- {"type": "shortstr", "name": "correlation-id"},
357
- {"type": "shortstr", "name": "reply-to"},
358
- {"type": "shortstr", "name": "expiration"},
359
- {"type": "shortstr", "name": "message-id"},
360
- {"type": "timestamp", "name": "timestamp"},
361
- {"type": "shortstr", "name": "type"},
362
- {"type": "shortstr", "name": "user-id"},
363
- {"type": "shortstr", "name": "app-id"},
364
- {"type": "shortstr", "name": "deprecated-cluster-id"}]
365
- },
366
- {
367
- "id": 90,
368
- "methods": [{"id": 10,
369
- "arguments": [],
370
- "name": "select"},
371
- {"id": 11,
372
- "arguments": [],
373
- "name": "select-ok"},
374
- {"id": 20,
375
- "arguments": [],
376
- "name": "commit"},
377
- {"id": 21,
378
- "arguments": [],
379
- "name": "commit-ok"},
380
- {"id": 30,
381
- "arguments": [],
382
- "name": "rollback"},
383
- {"id": 31,
384
- "arguments": [],
385
- "name": "rollback-ok"}],
386
- "name": "tx"
387
- }
388
- ]
389
- }