bunny 0.8.0 → 0.9.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
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
- }