arvicco-amqp 0.6.8 → 0.6.9

Sign up to get free protection for your applications and to get access to all the features.
data/old/codegen.rb ADDED
@@ -0,0 +1,148 @@
1
+ require 'rubygems'
2
+ require 'json'
3
+
4
+ s = JSON.parse(File.read('amqp-0.8.json'))
5
+
6
+ # require 'pp'
7
+ # pp(s)
8
+ # exit
9
+
10
+ require 'erb'
11
+
12
+ puts ERB.new(%q[
13
+ module AMQP
14
+ HEADER = <%= s['name'].dump %>.freeze
15
+ VERSION_MAJOR = <%= s['major-version'] %>
16
+ VERSION_MINOR = <%= s['minor-version'] %>
17
+ PORT = <%= s['port'] %>
18
+
19
+ class Frame
20
+ TYPES = [
21
+ nil,
22
+ <%- s['constants'].select{|c| (1..8).include? c['value'] }.each do |c| -%>
23
+ :<%= c['name'].tr('-', '_').gsub(/^FRAME_/,'').upcase -%>,
24
+ <%- end -%>
25
+ ]
26
+ FOOTER = <%= frame_end = s['constants'].find{|c| c['name'] == 'FRAME-END' }['value'] %>
27
+ end
28
+
29
+ RESPONSES = {
30
+ <%- s['constants'].select{|c| c['value'] != frame_end and (200..500).include? c['value'] }.each do |c| -%>
31
+ <%= c['value'] %> => :<%= c['name'].tr('-', '_').gsub(/^FRAME_/,'').upcase -%>,
32
+ <%- end -%>
33
+ }
34
+
35
+ FIELDS = [
36
+ <%- s['domains'].select{|d| d.first == d.last }.each do |d| -%>
37
+ :<%= d.first -%>,
38
+ <%- end -%>
39
+ ]
40
+
41
+ module Protocol
42
+ class Class
43
+ class << self
44
+ FIELDS.each do |f|
45
+ class_eval %[
46
+ def #{f} name
47
+ properties << [ :#{f}, name ] unless properties.include?([:#{f}, name])
48
+ attr_accessor name
49
+ end
50
+ ]
51
+ end
52
+
53
+ def properties() @properties ||= [] end
54
+
55
+ def id() self::ID end
56
+ def name() self::NAME end
57
+ end
58
+
59
+ class Method
60
+ class << self
61
+ FIELDS.each do |f|
62
+ class_eval %[
63
+ def #{f} name
64
+ arguments << [ :#{f}, name ] unless arguments.include?([:#{f}, name])
65
+ attr_accessor name
66
+ end
67
+ ]
68
+ end
69
+
70
+ def arguments() @arguments ||= [] end
71
+
72
+ def parent() Protocol.const_get(self.to_s[/Protocol::(.+?)::/,1]) end
73
+ def id() self::ID end
74
+ def name() self::NAME end
75
+ end
76
+
77
+ def == b
78
+ self.class.arguments.inject(true) do |eql, (type, name)|
79
+ eql and __send__("#{name}") == b.__send__("#{name}")
80
+ end
81
+ end
82
+ end
83
+
84
+ def self.methods() @methods ||= {} end
85
+
86
+ def self.Method(id, name)
87
+ @_base_methods ||= {}
88
+ @_base_methods[id] ||= ::Class.new(Method) do
89
+ class_eval %[
90
+ def self.inherited klass
91
+ klass.const_set(:ID, #{id})
92
+ klass.const_set(:NAME, :#{name.to_s})
93
+ klass.parent.methods[#{id}] = klass
94
+ klass.parent.methods[klass::NAME] = klass
95
+ end
96
+ ]
97
+ end
98
+ end
99
+ end
100
+
101
+ def self.classes() @classes ||= {} end
102
+
103
+ def self.Class(id, name)
104
+ @_base_classes ||= {}
105
+ @_base_classes[id] ||= ::Class.new(Class) do
106
+ class_eval %[
107
+ def self.inherited klass
108
+ klass.const_set(:ID, #{id})
109
+ klass.const_set(:NAME, :#{name.to_s})
110
+ Protocol.classes[#{id}] = klass
111
+ Protocol.classes[klass::NAME] = klass
112
+ end
113
+ ]
114
+ end
115
+ end
116
+
117
+ <%- s['classes'].each do |c| -%>
118
+ class <%= c['name'].capitalize.ljust(12) %> < Class(<%= c['id'] %>, :<%= c['name'] %>); end
119
+ <%- end -%>
120
+
121
+ <%- s['classes'].each do |c| -%>
122
+ class <%= c['name'].capitalize %>
123
+ <%- c['properties'].each do |p| -%>
124
+ <%= p['type'].ljust(10) %> :<%= p['name'].tr('-','_') %>
125
+ <%- end if c['properties'] -%>
126
+
127
+ <%- c['methods'].each do |m| -%>
128
+ class <%= m['name'].capitalize.gsub(/-(.)/){ "#{$1.upcase}"}.ljust(12) %> < Method(<%= m['id'] %>, :<%= m['name'].tr('- ','_') %>); end
129
+ <%- end -%>
130
+
131
+ <%- c['methods'].each do |m| -%>
132
+ class <%= m['name'].capitalize.gsub(/-(.)/){ "#{$1.upcase}"} %>
133
+ <%- m['arguments'].each do |a| -%>
134
+ <%- if a['domain'] -%>
135
+ <%= s['domains'].find{|k,v| k == a['domain']}.last.ljust(10) %> :<%= a['name'].tr('- ','_') %>
136
+ <%- else -%>
137
+ <%= a['type'].ljust(10) %> :<%= a['name'].tr('- ','_') %>
138
+ <%- end -%>
139
+ <%- end if m['arguments'] -%>
140
+ end
141
+
142
+ <%- end -%>
143
+ end
144
+
145
+ <%- end -%>
146
+ end
147
+ end
148
+ ].gsub!(/^ /,''), nil, '>-%').result(binding)
@@ -0,0 +1,617 @@
1
+ /*
2
+ Copyright (c) 2008 John Leuner
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this file (the "Software"), to deal in the
6
+ Software without restriction, including without limitation the
7
+ rights to use, copy, modify, merge, publish, distribute,
8
+ sublicense, and/or sell copies of the Software, and to permit
9
+ persons to whom the Software is furnished to do so, subject to
10
+ the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ Class information entered from amqp_xml0-8.pdf and domain types from amqp-xml-doc0-9.pdf
25
+
26
+ b3cb053f15e7b98808c0ccc67f23cb3e amqp_xml0-8.pdf
27
+ http://www.twiststandards.org/index.php?option=com_docman&task=cat_view&gid=28&&Itemid=90
28
+ 8444db91e2949dbecfb2585e9eef6d64 amqp-xml-doc0-9.pdf
29
+ https://jira.amqp.org/confluence/download/attachments/720900/amqp-xml-doc0-9.pdf?version=1
30
+ */
31
+
32
+ {
33
+ "name": "AMQP",
34
+ "major-version": 8,
35
+ "minor-version": 0,
36
+ "port": 5672,
37
+
38
+ "domains": [
39
+ ["access-ticket", "short"],
40
+ ["bit", "bit"],
41
+ ["channel-id", "longstr"],
42
+ ["class-id", "short"],
43
+ ["consumer-tag", "shortstr"],
44
+ ["delivery-tag", "longlong"],
45
+ ["destination", "shortstr"],
46
+ ["duration", "longlong"],
47
+ ["exchange-name", "shortstr"],
48
+ ["known-hosts", "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-OOB-METHOD", "value": 4},
78
+ {"name": "FRAME-OOB-HEADER", "value": 5},
79
+ {"name": "FRAME-OOB-BODY", "value": 6},
80
+ {"name": "FRAME-TRACE", "value": 7},
81
+ {"name": "FRAME-HEARTBEAT", "value": 8},
82
+ {"name": "FRAME-MIN-SIZE", "value": 4096},
83
+ {"name": "FRAME-END", "value": 206},
84
+ {"name": "REPLY-SUCCESS", "value": 200},
85
+ {"name": "NOT-DELIVERED", "value": 310, "class": "soft-error"},
86
+ {"name": "CONTENT-TOO-LARGE", "value": 311, "class": "soft-error"},
87
+ {"name": "NO-ROUTE", "value": 312, "class": "soft-error"},
88
+ {"name": "NO-CONSUMERS", "value": 313, "class": "soft-error"},
89
+ {"name": "ACCESS-REFUSED", "value": 403, "class": "soft-error"},
90
+ {"name": "NOT-FOUND", "value": 404, "class": "soft-error"},
91
+ {"name": "RESOURCE-LOCKED", "value": 405, "class": "soft-error"},
92
+ {"name": "PRECONDITION-FAILED", "value": 406, "class": "soft-error"},
93
+ {"name": "CONNECTION-FORCED", "value": 320, "class": "hard-error"},
94
+ {"name": "INVALID-PATH", "value": 402, "class": "hard-error"},
95
+ {"name": "FRAME-ERROR", "value": 501, "class": "hard-error"},
96
+ {"name": "SYNTAX-ERROR", "value": 502, "class": "hard-error"},
97
+ {"name": "COMMAND-INVALID", "value": 503, "class": "hard-error"},
98
+ {"name": "CHANNEL-ERROR", "value": 504, "class": "hard-error"},
99
+ {"name": "RESOURCE-ERROR", "value": 506, "class": "hard-error"},
100
+ {"name": "NOT-ALLOWED", "value": 530, "class": "hard-error"},
101
+ {"name": "NOT-IMPLEMENTED", "value": 540, "class": "hard-error"},
102
+ {"name": "INTERNAL-ERROR", "value": 541, "class": "hard-error"}
103
+ ],
104
+
105
+ "classes": [
106
+ {
107
+ "id": 10,
108
+ "methods": [{"id": 10,
109
+ "arguments": [{"type": "octet", "name": "version-major"},
110
+ {"type": "octet", "name": "version-minor"},
111
+ {"domain": "peer-properties", "name": "server properties"},
112
+ {"type": "longstr", "name": "mechanisms"},
113
+ {"type": "longstr", "name": "locales"}],
114
+ "name": "start"},
115
+ {"id": 11,
116
+ "arguments": [{"domain": "peer-properties", "name": "client-properties"},
117
+ {"type": "shortstr", "name": "mechanism"},
118
+ {"type": "longstr", "name": "response"},
119
+ {"type": "shortstr", "name": "locale"}],
120
+ "name": "start-ok"},
121
+ {"id": 20,
122
+ "arguments": [{"type": "longstr", "name": "challenge"}],
123
+ "name": "secure"},
124
+ {"id": 21,
125
+ "arguments": [{"type": "longstr", "name": "response"}],
126
+ "name": "secure-ok"},
127
+ {"id": 30,
128
+ "arguments": [{"type": "short", "name": "channel-max"},
129
+ {"type": "long", "name": "frame-max"},
130
+ {"type": "short", "name": "heartbeat"}],
131
+ "name": "tune"},
132
+ {"id": 31,
133
+ "arguments": [{"type": "short", "name": "channel-max"},
134
+ {"type": "long", "name": "frame-max"},
135
+ {"type": "short", "name": "heartbeat"}],
136
+ "name": "tune-ok"},
137
+ {"id": 40,
138
+ "arguments": [{"type": "shortstr", "name": "virtual-host"},
139
+ {"type": "shortstr", "name": "capabilities"},
140
+ {"type": "bit", "name": "insist"}],
141
+ "name": "open"},
142
+ {"id": 41,
143
+ "arguments": [{"type": "shortstr", "name": "known-hosts"}],
144
+ "name": "open-ok"},
145
+ {"id": 50,
146
+ "arguments": [{"type": "shortstr", "name": "host"},
147
+ {"type": "shortstr", "name": "known-hosts"}],
148
+ "name": "redirect"},
149
+ {"id": 60,
150
+ "arguments": [{"type": "short", "name": "reply-code"},
151
+ {"type": "shortstr", "name": "reply-text"},
152
+ {"type": "short", "name": "class-id"},
153
+ {"type": "short", "name": "method-id"}],
154
+ "name": "close"},
155
+ {"id": 61,
156
+ "arguments": [],
157
+ "name": "close-ok"}],
158
+ "name": "connection",
159
+ "properties": []
160
+ },
161
+ {
162
+ "id": 20,
163
+ "methods": [{"id": 10,
164
+ "arguments": [{"type": "shortstr", "name": "out-of-band"}],
165
+ "name": "open"},
166
+ {"id": 11,
167
+ "arguments": [],
168
+ "name": "open-ok"},
169
+ {"id": 20,
170
+ "arguments": [{"type": "bit", "name": "active"}],
171
+ "name": "flow"},
172
+ {"id": 21,
173
+ "arguments": [{"type": "bit", "name": "active"}],
174
+ "name": "flow-ok"},
175
+ {"id": 30,
176
+ "arguments": [{"type": "short", "name": "reply-code"},
177
+ {"type": "shortstr", "name": "reply-text"},
178
+ {"type": "table", "name": "details"}],
179
+ "name": "alert"},
180
+ {"id": 40,
181
+ "arguments": [{"type": "short", "name": "reply-code"},
182
+ {"type": "shortstr", "name": "reply-text"},
183
+ {"type": "short", "name": "class-id"},
184
+ {"type": "short", "name": "method-id"}],
185
+ "name": "close"},
186
+ {"id": 41,
187
+ "arguments": [],
188
+ "name": "close-ok"}],
189
+ "name": "channel"
190
+ },
191
+ {
192
+ "id": 30,
193
+ "methods": [{"id": 10,
194
+ "arguments": [{"type": "shortstr", "name": "realm"},
195
+ {"type": "bit", "name": "exclusive"},
196
+ {"type": "bit", "name": "passive"},
197
+ {"type": "bit", "name": "active"},
198
+ {"type": "bit", "name": "write"},
199
+ {"type": "bit", "name": "read"}],
200
+ "name": "request"},
201
+ {"id": 11,
202
+ "arguments": [{"type": "short", "name": "ticket"}],
203
+ "name": "request-ok"}],
204
+ "name": "access"
205
+ },
206
+ {
207
+ "id": 40,
208
+ "methods": [{"id": 10,
209
+ "arguments": [{"type": "short", "name": "ticket"},
210
+ {"type": "shortstr", "name": "exchange"},
211
+ {"type": "shortstr", "name": "type"},
212
+ {"type": "bit", "name": "passive"},
213
+ {"type": "bit", "name": "durable"},
214
+ {"type": "bit", "name": "auto-delete"},
215
+ {"type": "bit", "name": "internal"},
216
+ {"type": "bit", "name": "nowait"},
217
+ {"type": "table", "name": "arguments"}],
218
+ "name": "declare"},
219
+ {"id": 11,
220
+ "arguments": [],
221
+ "name": "declare-ok"},
222
+ {"id": 20,
223
+ "arguments": [{"type": "short", "name": "ticket"},
224
+ {"type": "shortstr", "name": "exchange"},
225
+ {"type": "bit", "name": "if-unused"},
226
+ {"type": "bit", "name": "nowait"}],
227
+ "name": "delete"},
228
+ {"id": 21,
229
+ "arguments": [],
230
+ "name": "delete-ok"}],
231
+ "name": "exchange"
232
+ },
233
+ {
234
+ "id": 50,
235
+ "methods": [{"id": 10,
236
+ "arguments": [{"type": "short", "name": "ticket"},
237
+ {"type": "shortstr", "name": "queue"},
238
+ {"type": "bit", "name": "passive"},
239
+ {"type": "bit", "name": "durable"},
240
+ {"type": "bit", "name": "exclusive"},
241
+ {"type": "bit", "name": "auto-delete"},
242
+ {"type": "bit", "name": "nowait"},
243
+ {"type": "table", "name": "arguments"}],
244
+ "name": "declare"},
245
+ {"id": 11,
246
+ "arguments": [{"type": "shortstr", "name": "queue"},
247
+ {"type": "long", "name": "message-count"},
248
+ {"type": "long", "name": "consumer-count"}],
249
+ "name": "declare-ok"},
250
+ {"id": 20,
251
+ "arguments": [{"type": "short", "name": "ticket"},
252
+ {"type": "shortstr", "name": "queue"},
253
+ {"type": "shortstr", "name": "exchange"},
254
+ {"type": "shortstr", "name": "routing-key"},
255
+ {"type": "bit", "name": "nowait"},
256
+ {"type": "table", "name": "arguments"}],
257
+ "name": "bind"},
258
+ {"id": 21,
259
+ "arguments": [],
260
+ "name": "bind-ok"},
261
+ {"id": 30,
262
+ "arguments": [{"type": "short", "name": "ticket"},
263
+ {"type": "shortstr", "name": "queue"},
264
+ {"type": "bit", "name": "nowait"}],
265
+ "name": "purge"},
266
+ {"id": 31,
267
+ "arguments": [{"type": "long", "name": "message-count"}],
268
+ "name": "purge-ok"},
269
+ {"id": 40,
270
+ "arguments": [{"type": "short", "name": "ticket"},
271
+ {"type": "shortstr", "name": "queue"},
272
+ {"type": "bit", "name": "if-unused"},
273
+ {"type": "bit", "name": "if-empty"},
274
+ {"type": "bit", "name": "nowait"}],
275
+ "name": "delete"},
276
+ {"id": 41,
277
+ "arguments": [{"type": "long", "name": "message-count"}],
278
+ "name": "delete-ok"},
279
+ {"id": 50,
280
+ "arguments": [{"type": "short", "name": "ticket"},
281
+ {"type": "shortstr", "name": "queue"},
282
+ {"type": "shortstr", "name": "exchange"},
283
+ {"type": "shortstr", "name": "routing-key"},
284
+ {"type": "table", "name": "arguments"}],
285
+ "name": "unbind"},
286
+ {"id": 51,
287
+ "arguments": [],
288
+ "name": "unbind-ok"}
289
+ ],
290
+ "name": "queue"
291
+ },
292
+ {
293
+ "id": 60,
294
+ "methods": [{"id": 10,
295
+ "arguments": [{"type": "long", "name": "prefetch-size"},
296
+ {"type": "short", "name": "prefetch-count"},
297
+ {"type": "bit", "name": "global"}],
298
+ "name": "qos"},
299
+ {"id": 11,
300
+ "arguments": [],
301
+ "name": "qos-ok"},
302
+ {"id": 20,
303
+ "arguments": [{"domain": "access-ticket", "name": "ticket"},
304
+ {"domain": "queue-name", "name": "queue"},
305
+ {"type": "shortstr", "name": "consumer-tag"},
306
+ {"type": "bit", "name": "no-local"},
307
+ {"type": "bit", "name": "no-ack"},
308
+ {"type": "bit", "name": "exclusive"},
309
+ {"type": "bit", "name": "nowait"}],
310
+ "name": "consume"},
311
+ {"id": 21,
312
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
313
+ "name": "consume-ok"},
314
+ {"id": 30,
315
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
316
+ {"type": "bit", "name": "nowait"}],
317
+ "name": "cancel"},
318
+ {"id": 31,
319
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
320
+ "name": "cancel-ok"},
321
+ {"content": true,
322
+ "id": 40,
323
+ "arguments": [{"type": "short", "name": "ticket"},
324
+ {"type": "shortstr", "name": "exchange"},
325
+ {"type": "shortstr", "name": "routing-key"},
326
+ {"type": "bit", "name": "mandatory"},
327
+ {"type": "bit", "name": "immediate"}],
328
+ "name": "publish"},
329
+ {"content": true,
330
+ "id": 50,
331
+ "arguments": [{"type": "short", "name": "reply-code"},
332
+ {"type": "shortstr", "name": "reply-text"},
333
+ {"type": "shortstr", "name": "exchange"},
334
+ {"type": "shortstr", "name": "routing-key"}],
335
+ "name": "return"},
336
+ {"content": true,
337
+ "id": 60,
338
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
339
+ {"type": "longlong", "name": "delivery-tag"},
340
+ {"type": "bit", "name": "redelivered"},
341
+ {"type": "shortstr", "name": "exchange"},
342
+ {"type": "shortstr", "name": "routing-key"}],
343
+ "name": "deliver"},
344
+ {"id": 70,
345
+ "arguments": [{"type": "short", "name": "ticket"},
346
+ {"type": "shortstr", "name": "queue"},
347
+ {"type": "bit", "name": "no-ack"}],
348
+ "name": "get"},
349
+ {"content": true,
350
+ "id": 71,
351
+ "arguments": [{"type": "longlong", "name": "delivery-tag"},
352
+ {"type": "bit", "name": "redelivered"},
353
+ {"type": "shortstr", "name": "exchange"},
354
+ {"type": "shortstr", "name": "routing-key"},
355
+ {"type": "long", "name": "message-count"}],
356
+ "name": "get-ok"},
357
+ {"id": 72,
358
+ "arguments": [{"type": "shortstr", "name": "cluster-id"}],
359
+ "name": "get-empty"},
360
+ {"id": 80,
361
+ "arguments": [{"type": "longlong", "name": "delivery-tag"},
362
+ {"type": "bit", "name": "multiple"}],
363
+ "name": "ack"},
364
+ {"id": 90,
365
+ "arguments": [{"type": "longlong", "name": "delivery-tag"},
366
+ {"type": "bit", "name": "requeue"}],
367
+ "name": "reject"},
368
+ {"id": 100,
369
+ "arguments": [{"type": "bit", "name": "requeue"}],
370
+ "name": "recover"}],
371
+ "name": "basic",
372
+ "properties": [{"type": "shortstr", "name": "content-type"},
373
+ {"type": "shortstr", "name": "content-encoding"},
374
+ {"type": "table", "name": "headers"},
375
+ {"type": "octet", "name": "delivery-mode"},
376
+ {"type": "octet", "name": "priority"},
377
+ {"type": "shortstr", "name": "correlation-id"},
378
+ {"type": "shortstr", "name": "reply-to"},
379
+ {"type": "shortstr", "name": "expiration"},
380
+ {"type": "shortstr", "name": "message-id"},
381
+ {"type": "timestamp", "name": "timestamp"},
382
+ {"type": "shortstr", "name": "type"},
383
+ {"type": "shortstr", "name": "user-id"},
384
+ {"type": "shortstr", "name": "app-id"},
385
+ {"type": "shortstr", "name": "cluster-id"}]
386
+ },
387
+ {
388
+ "id": 70,
389
+ "methods": [{"id": 10,
390
+ "arguments": [{"type": "long", "name": "prefetch-size"},
391
+ {"type": "short", "name": "prefetch-count"},
392
+ {"type": "bit", "name": "global"}],
393
+ "name": "qos"},
394
+ {"id": 11,
395
+ "arguments": [],
396
+ "name": "qos-ok"},
397
+ {"id": 20,
398
+ "arguments": [{"type": "short", "name": "ticket"},
399
+ {"type": "shortstr", "name": "queue"},
400
+ {"type": "shortstr", "name": "consumer-tag"},
401
+ {"type": "bit", "name": "no-local"},
402
+ {"type": "bit", "name": "no-ack"},
403
+ {"type": "bit", "name": "exclusive"},
404
+ {"type": "bit", "name": "nowait"}],
405
+ "name": "consume"},
406
+ {"id": 21,
407
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
408
+ "name": "consume-ok"},
409
+ {"id": 30,
410
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
411
+ {"type": "bit", "name": "nowait"}],
412
+ "name": "cancel"},
413
+ {"id": 31,
414
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
415
+ "name": "cancel-ok"},
416
+ {"id": 40,
417
+ "arguments": [{"type": "shortstr", "name": "identifier"},
418
+ {"type": "longlong", "name": "content-size"}],
419
+ "name": "open"},
420
+ {"id": 41,
421
+ "arguments": [{"type": "longlong", "name": "staged-size"}],
422
+ "name": "open-ok"},
423
+ {"content": true,
424
+ "id": 50,
425
+ "arguments": [],
426
+ "name": "stage"},
427
+ {"id": 60,
428
+ "arguments": [{"type": "short", "name": "ticket"},
429
+ {"type": "shortstr", "name": "exchange"},
430
+ {"type": "shortstr", "name": "routing-key"},
431
+ {"type": "bit", "name": "mandatory"},
432
+ {"type": "bit", "name": "immediate"},
433
+ {"type": "shortstr", "name": "identifier"}],
434
+ "name": "publish"},
435
+ {"content": true,
436
+ "id": 70,
437
+ "arguments": [{"type": "short", "name": "reply-code"},
438
+ {"type": "shortstr", "name": "reply-text"},
439
+ {"type": "shortstr", "name": "exchange"},
440
+ {"type": "shortstr", "name": "routing-key"}],
441
+ "name": "return"},
442
+ {"id": 80,
443
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
444
+ {"type": "longlong", "name": "delivery-tag"},
445
+ {"type": "bit", "name": "redelivered"},
446
+ {"type": "shortstr", "name": "exchange"},
447
+ {"type": "shortstr", "name": "routing-key"},
448
+ {"type": "shortstr", "name": "identifier"}],
449
+ "name": "deliver"},
450
+ {"id": 90,
451
+ "arguments": [{"type": "longlong", "name": "delivery-tag"},
452
+ {"type": "bit", "name": "multiple"}],
453
+ "name": "ack"},
454
+ {"id": 100,
455
+ "arguments": [{"type": "longlong", "name": "delivery-tag"},
456
+ {"type": "bit", "name": "requeue"}],
457
+ "name": "reject"}],
458
+ "name": "file",
459
+ "properties": [{"type": "shortstr", "name": "content-type"},
460
+ {"type": "shortstr", "name": "content-encoding"},
461
+ {"type": "table", "name": "headers"},
462
+ {"type": "octet", "name": "priority"},
463
+ {"type": "shortstr", "name": "reply-to"},
464
+ {"type": "shortstr", "name": "message-id"},
465
+ {"type": "shortstr", "name": "filename"},
466
+ {"type": "timestamp", "name": "timestamp"},
467
+ {"type": "shortstr", "name": "cluster-id"}]
468
+ },
469
+ {
470
+ "id": 80,
471
+ "methods": [{"id": 10,
472
+ "arguments": [{"type": "long", "name": "prefetch-size"},
473
+ {"type": "short", "name": "prefetch-count"},
474
+ {"type": "long", "name": "consume-rate"},
475
+ {"type": "bit", "name": "global"}],
476
+ "name": "qos"},
477
+ {"id": 11,
478
+ "arguments": [],
479
+ "name": "qos-ok"},
480
+ {"id": 20,
481
+ "arguments": [{"type": "short", "name": "ticket"},
482
+ {"type": "shortstr", "name": "queue"},
483
+ {"type": "shortstr", "name": "consumer-tag"},
484
+ {"type": "bit", "name": "no-local"},
485
+ {"type": "bit", "name": "exclusive"},
486
+ {"type": "bit", "name": "nowait"}],
487
+ "name": "consume"},
488
+ {"id": 21,
489
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
490
+ "name": "consume-ok"},
491
+ {"id": 30,
492
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
493
+ {"type": "bit", "name": "nowait"}],
494
+ "name": "cancel"},
495
+ {"id": 31,
496
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"}],
497
+ "name": "cancel-ok"},
498
+ {"content": true,
499
+ "id": 40,
500
+ "arguments": [{"type": "short", "name": "ticket"},
501
+ {"type": "shortstr", "name": "exchange"},
502
+ {"type": "shortstr", "name": "routing-key"},
503
+ {"type": "bit", "name": "mandatory"},
504
+ {"type": "bit", "name": "immediate"}],
505
+ "name": "publish"},
506
+ {"content": true,
507
+ "id": 50,
508
+ "arguments": [{"type": "short", "name": "reply-code"},
509
+ {"type": "shortstr", "name": "reply-text"},
510
+ {"type": "shortstr", "name": "exchange"},
511
+ {"type": "shortstr", "name": "routing-key"}],
512
+ "name": "return"},
513
+ {"content": true,
514
+ "id": 60,
515
+ "arguments": [{"type": "shortstr", "name": "consumer-tag"},
516
+ {"type": "longlong", "name": "delivery-tag"},
517
+ {"type": "shortstr", "name": "exchange"},
518
+ {"type": "shortstr", "name": "queue"}],
519
+ "name": "deliver"}],
520
+ "name": "stream",
521
+ "properties": [{"type": "shortstr", "name": "content-type"},
522
+ {"type": "shortstr", "name": "content-encoding"},
523
+ {"type": "table", "name": "headers"},
524
+ {"type": "octet", "name": "priority"},
525
+ {"type": "timestamp", "name": "timestamp"}]
526
+ },
527
+ {
528
+ "id": 90,
529
+ "methods": [{"id": 10,
530
+ "arguments": [],
531
+ "name": "select"},
532
+ {"id": 11,
533
+ "arguments": [],
534
+ "name": "select-ok"},
535
+ {"id": 20,
536
+ "arguments": [],
537
+ "name": "commit"},
538
+ {"id": 21,
539
+ "arguments": [],
540
+ "name": "commit-ok"},
541
+ {"id": 30,
542
+ "arguments": [],
543
+ "name": "rollback"},
544
+ {"id": 31,
545
+ "arguments": [],
546
+ "name": "rollback-ok"}],
547
+ "name": "tx"
548
+ },
549
+ {
550
+ "id": 100,
551
+ "methods": [{"id": 10,
552
+ "arguments": [],
553
+ "name": "select"},
554
+ {"id": 11,
555
+ "arguments": [],
556
+ "name": "select-ok"},
557
+ {"id": 20,
558
+ "arguments": [{"type": "shortstr", "name": "dtx-identifier"}],
559
+ "name": "start"},
560
+ {"id": 21,
561
+ "arguments": [], "name": "start-ok"}],
562
+ "name": "dtx"
563
+ },
564
+ {
565
+ "id": 110,
566
+ "methods": [{"content": true,
567
+ "id": 10,
568
+ "arguments": [{"type": "table", "name": "meta-data"}],
569
+ "name": "request"}],
570
+ "name": "tunnel",
571
+ "properties": [{"type": "table", "name": "headers"},
572
+ {"type": "shortstr", "name": "proxy-name"},
573
+ {"type": "shortstr", "name": "data-name"},
574
+ {"type": "octet", "name": "durable"},
575
+ {"type": "octet", "name": "broadcast"}]
576
+ },
577
+ {
578
+ "id": 120,
579
+ "methods": [{"id": 10,
580
+ "arguments": [{"type": "octet", "name": "integer-1"},
581
+ {"type": "short", "name": "integer-2"},
582
+ {"type": "long", "name": "integer-3"},
583
+ {"type": "longlong", "name": "integer-4"},
584
+ {"type": "octet", "name": "operation"}],
585
+ "name": "integer"},
586
+ {"id": 11,
587
+ "arguments": [{"type": "longlong", "name": "result"}],
588
+ "name": "integer-ok"},
589
+ {"id": 20,
590
+ "arguments": [{"type": "shortstr", "name": "string-1"},
591
+ {"type": "longstr", "name": "string-2"},
592
+ {"type": "octet", "name": "operation"}],
593
+ "name": "string"},
594
+ {"id": 21,
595
+ "arguments": [{"type": "longstr", "name": "result"}],
596
+ "name": "string-ok"},
597
+ {"id": 30,
598
+ "arguments": [{"type": "table", "name": "table"},
599
+ {"type": "octet", "name": "integer-op"},
600
+ {"type": "octet", "name": "string-op"}],
601
+ "name": "table"},
602
+ {"id": 31,
603
+ "arguments": [{"type": "longlong", "name": "integer-result"},
604
+ {"type": "longstr", "name": "string-result"}],
605
+ "name": "table-ok"},
606
+ {"content": true,
607
+ "id": 40,
608
+ "arguments": [],
609
+ "name": "content"},
610
+ {"content": true,
611
+ "id": 41,
612
+ "arguments": [{"type": "long", "name": "content-checksum"}],
613
+ "name": "content-ok"}],
614
+ "name": "test"
615
+ }
616
+ ]
617
+ }