bunny 0.1.1 → 0.2.0
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.
- data/README.markdown +15 -8
- data/examples/simple_consumer.rb +24 -5
- data/examples/{fanout.rb → simple_fanout.rb} +1 -6
- data/examples/simple_publisher.rb +1 -7
- data/examples/simple_topic.rb +59 -0
- data/lib/{amqp.rb → api_messages.rb} +1 -5
- data/lib/bunny.rb +21 -8
- data/lib/{amqp → bunny}/client.rb +16 -16
- data/lib/bunny/exchange.rb +16 -8
- data/lib/bunny/header.rb +1 -3
- data/lib/bunny/queue.rb +29 -20
- data/lib/{amqp → engineroom}/buffer.rb +6 -6
- data/lib/{amqp → engineroom}/frame.rb +4 -3
- data/lib/engineroom/protocol.rb +156 -0
- data/lib/engineroom/spec.rb +830 -0
- data/protocol/amqp-0.8.json +1 -1
- data/protocol/codegen.rb +83 -85
- data/spec/exchange_spec.rb +44 -2
- data/spec/queue_spec.rb +1 -1
- metadata +11 -12
- data/lib/amqp/protocol.rb +0 -158
- data/lib/amqp/spec.rb +0 -832
- data/protocol/amqp-0.8.xml +0 -3908
@@ -8,7 +8,7 @@ else
|
|
8
8
|
require 'enumerator'
|
9
9
|
end
|
10
10
|
|
11
|
-
module
|
11
|
+
module Transport
|
12
12
|
class Buffer #:nodoc: all
|
13
13
|
|
14
14
|
def initialize data = ''
|
@@ -132,7 +132,7 @@ module AMQP
|
|
132
132
|
|
133
133
|
@bits.shift
|
134
134
|
else
|
135
|
-
raise InvalidTypeError, "Cannot read data of type #{type}"
|
135
|
+
raise API::InvalidTypeError, "Cannot read data of type #{type}"
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
@@ -229,7 +229,7 @@ module AMQP
|
|
229
229
|
write(type, value) unless type == :bit
|
230
230
|
end
|
231
231
|
else
|
232
|
-
raise InvalidTypeError, "Cannot write data of type #{type}"
|
232
|
+
raise API::InvalidTypeError, "Cannot write data of type #{type}"
|
233
233
|
end
|
234
234
|
|
235
235
|
self
|
@@ -239,21 +239,21 @@ module AMQP
|
|
239
239
|
begin
|
240
240
|
cur_data, cur_pos = @data.clone, @pos
|
241
241
|
yield self
|
242
|
-
rescue BufferOverflowError
|
242
|
+
rescue API::BufferOverflowError
|
243
243
|
@data, @pos = cur_data, cur_pos
|
244
244
|
nil
|
245
245
|
end
|
246
246
|
end
|
247
247
|
|
248
248
|
def _read(size, pack = nil)
|
249
|
-
if @data.is_a?(Client)
|
249
|
+
if @data.is_a?(API::Client)
|
250
250
|
raw = @data.read(size)
|
251
251
|
return raw if raw.nil? or pack.nil?
|
252
252
|
return raw.unpack(pack).first
|
253
253
|
end
|
254
254
|
|
255
255
|
if @pos + size > length
|
256
|
-
raise BufferOverflowError
|
256
|
+
raise API::BufferOverflowError
|
257
257
|
else
|
258
258
|
data = @data[@pos,size]
|
259
259
|
@data[@pos,size] = ''
|
@@ -1,4 +1,5 @@
|
|
1
|
-
module
|
1
|
+
module Transport
|
2
|
+
|
2
3
|
class Frame #:nodoc: all
|
3
4
|
def initialize payload = nil, channel = 0
|
4
5
|
@channel, @payload = channel, payload
|
@@ -50,10 +51,10 @@ module AMQP
|
|
50
51
|
class Body; end
|
51
52
|
|
52
53
|
def self.parse buf
|
53
|
-
buf = Buffer.new(buf) unless buf.is_a? Buffer
|
54
|
+
buf = Transport::Buffer.new(buf) unless buf.is_a? Transport::Buffer
|
54
55
|
buf.extract do
|
55
56
|
id, channel, payload, footer = buf.read(:octet, :short, :longstr, :octet)
|
56
|
-
Frame.types[id].new(payload, channel) if footer == FOOTER
|
57
|
+
Transport::Frame.types[id].new(payload, channel) if footer == Transport::Frame::FOOTER
|
57
58
|
end
|
58
59
|
end
|
59
60
|
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
module Protocol
|
2
|
+
#:stopdoc:
|
3
|
+
class Class::Method
|
4
|
+
def initialize *args
|
5
|
+
opts = args.pop if args.last.is_a? Hash
|
6
|
+
opts ||= {}
|
7
|
+
|
8
|
+
@debug = 1 # XXX hack, p(obj) == '' if no instance vars are set
|
9
|
+
|
10
|
+
if args.size == 1 and args.first.is_a? Transport::Buffer
|
11
|
+
buf = args.shift
|
12
|
+
else
|
13
|
+
buf = nil
|
14
|
+
end
|
15
|
+
|
16
|
+
self.class.arguments.each do |type, name|
|
17
|
+
val = buf ? buf.read(type) :
|
18
|
+
args.shift || opts[name] || opts[name.to_s]
|
19
|
+
instance_variable_set("@#{name}", val)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def arguments
|
24
|
+
self.class.arguments.inject({}) do |hash, (type, name)|
|
25
|
+
hash.update name => instance_variable_get("@#{name}")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_binary
|
30
|
+
buf = Transport::Buffer.new
|
31
|
+
buf.write :short, self.class.parent.id
|
32
|
+
buf.write :short, self.class.id
|
33
|
+
|
34
|
+
bits = []
|
35
|
+
|
36
|
+
self.class.arguments.each do |type, name|
|
37
|
+
val = instance_variable_get("@#{name}")
|
38
|
+
if type == :bit
|
39
|
+
bits << (val || false)
|
40
|
+
else
|
41
|
+
unless bits.empty?
|
42
|
+
buf.write :bit, bits
|
43
|
+
bits = []
|
44
|
+
end
|
45
|
+
buf.write type, val
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
buf.write :bit, bits unless bits.empty?
|
50
|
+
buf.rewind
|
51
|
+
|
52
|
+
buf
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_s
|
56
|
+
to_binary.to_s
|
57
|
+
end
|
58
|
+
|
59
|
+
def to_frame channel = 0
|
60
|
+
Transport::Frame::Method.new(self, channel)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
#:startdoc:
|
65
|
+
#
|
66
|
+
# Contains a properties hash that holds some potentially interesting
|
67
|
+
# information.
|
68
|
+
# * :delivery_mode
|
69
|
+
# 1 equals transient.
|
70
|
+
# 2 equals persistent. Unconsumed persistent messages will survive
|
71
|
+
# a server restart when they are stored in a durable queue.
|
72
|
+
# * :redelivered
|
73
|
+
# True or False
|
74
|
+
# * :routing_key
|
75
|
+
# The routing string used for matching this message to this queue.
|
76
|
+
# * :priority
|
77
|
+
# An integer in the range of 0 to 9 inclusive.
|
78
|
+
# * :content_type
|
79
|
+
# Always "application/octet-stream" (byte stream)
|
80
|
+
# * :exchange
|
81
|
+
# The source exchange which published this message.
|
82
|
+
# * :message_count
|
83
|
+
# The number of unconsumed messages contained in the queue.
|
84
|
+
# * :delivery_tag
|
85
|
+
# A monotonically increasing integer. This number should not be trusted
|
86
|
+
# as a sequence number. There is no guarantee it won't get reset.
|
87
|
+
class Header
|
88
|
+
def initialize *args
|
89
|
+
opts = args.pop if args.last.is_a? Hash
|
90
|
+
opts ||= {}
|
91
|
+
|
92
|
+
first = args.shift
|
93
|
+
|
94
|
+
if first.is_a? ::Class and first.ancestors.include? Protocol::Class
|
95
|
+
@klass = first
|
96
|
+
@size = args.shift || 0
|
97
|
+
@weight = args.shift || 0
|
98
|
+
@properties = opts
|
99
|
+
|
100
|
+
elsif first.is_a? Transport::Buffer or first.is_a? String
|
101
|
+
buf = first
|
102
|
+
buf = Transport::Buffer.new(buf) unless buf.is_a? Transport::Buffer
|
103
|
+
|
104
|
+
@klass = Protocol.classes[buf.read(:short)]
|
105
|
+
@weight = buf.read(:short)
|
106
|
+
@size = buf.read(:longlong)
|
107
|
+
|
108
|
+
props = buf.read(:properties, *klass.properties.map{|type,_| type })
|
109
|
+
@properties = Hash[*klass.properties.map{|_,name| name }.zip(props).reject{|k,v| v.nil? }.flatten]
|
110
|
+
|
111
|
+
else
|
112
|
+
raise ArgumentError, 'Invalid argument'
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
attr_accessor :klass, :size, :weight, :properties
|
117
|
+
|
118
|
+
def to_binary
|
119
|
+
buf = Transport::Buffer.new
|
120
|
+
buf.write :short, klass.id
|
121
|
+
buf.write :short, weight # XXX rabbitmq only supports weight == 0
|
122
|
+
buf.write :longlong, size
|
123
|
+
buf.write :properties, (klass.properties.map do |type, name|
|
124
|
+
[ type, properties[name] || properties[name.to_s] ]
|
125
|
+
end)
|
126
|
+
buf.rewind
|
127
|
+
buf
|
128
|
+
end
|
129
|
+
|
130
|
+
def to_s
|
131
|
+
to_binary.to_s
|
132
|
+
end
|
133
|
+
|
134
|
+
def to_frame channel = 0
|
135
|
+
Transport::Frame::Header.new(self, channel)
|
136
|
+
end
|
137
|
+
|
138
|
+
def == header
|
139
|
+
[ :klass, :size, :weight, :properties ].inject(true) do |eql, field|
|
140
|
+
eql and __send__(field) == header.__send__(field)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def method_missing meth, *args, &blk
|
145
|
+
@properties.has_key?(meth) || @klass.properties.find{|_,name| name == meth } ? @properties[meth] :
|
146
|
+
super
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def self.parse buf
|
151
|
+
buf = Transport::Buffer.new(buf) unless buf.is_a? Transport::Buffer
|
152
|
+
class_id, method_id = buf.read(:short, :short)
|
153
|
+
classes[class_id].methods[method_id].new(buf)
|
154
|
+
end
|
155
|
+
#:stopdoc:
|
156
|
+
end
|
@@ -0,0 +1,830 @@
|
|
1
|
+
|
2
|
+
#:stopdoc:
|
3
|
+
# this file was autogenerated on Fri May 01 00:29:03 +0100 2009
|
4
|
+
# using amqp-0.8.json (mtime: Thu Apr 30 22:19:16 +0100 2009)
|
5
|
+
#
|
6
|
+
# DO NOT EDIT! (edit protocol/codegen.rb instead, and run `rake codegen`)
|
7
|
+
|
8
|
+
module Transport
|
9
|
+
class Frame
|
10
|
+
def self.types
|
11
|
+
@types ||= {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.Frame id
|
15
|
+
(@_base_frames ||= {})[id] ||= Class.new(Frame) do
|
16
|
+
class_eval %[
|
17
|
+
def self.inherited klass
|
18
|
+
klass.const_set(:ID, #{id})
|
19
|
+
Frame.types[#{id}] = klass
|
20
|
+
end
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Method < Frame( 1 ); end
|
26
|
+
class Header < Frame( 2 ); end
|
27
|
+
class Body < Frame( 3 ); end
|
28
|
+
class OobMethod < Frame( 4 ); end
|
29
|
+
class OobHeader < Frame( 5 ); end
|
30
|
+
class OobBody < Frame( 6 ); end
|
31
|
+
class Trace < Frame( 7 ); end
|
32
|
+
class Heartbeat < Frame( 8 ); end
|
33
|
+
|
34
|
+
FOOTER = 206
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
module Protocol
|
39
|
+
HEADER = "AMQP".freeze
|
40
|
+
VERSION_MAJOR = 8
|
41
|
+
VERSION_MINOR = 0
|
42
|
+
PORT = 5672
|
43
|
+
|
44
|
+
RESPONSES = {
|
45
|
+
200 => :REPLY_SUCCESS,
|
46
|
+
310 => :NOT_DELIVERED,
|
47
|
+
311 => :CONTENT_TOO_LARGE,
|
48
|
+
312 => :NO_ROUTE,
|
49
|
+
313 => :NO_CONSUMERS,
|
50
|
+
403 => :ACCESS_REFUSED,
|
51
|
+
404 => :NOT_FOUND,
|
52
|
+
405 => :RESOURCE_LOCKED,
|
53
|
+
406 => :PRECONDITION_FAILED,
|
54
|
+
320 => :CONNECTION_FORCED,
|
55
|
+
402 => :INVALID_PATH,
|
56
|
+
}
|
57
|
+
|
58
|
+
FIELDS = [
|
59
|
+
:bit,
|
60
|
+
:long,
|
61
|
+
:longlong,
|
62
|
+
:longstr,
|
63
|
+
:octet,
|
64
|
+
:short,
|
65
|
+
:shortstr,
|
66
|
+
:table,
|
67
|
+
:timestamp,
|
68
|
+
]
|
69
|
+
|
70
|
+
class Class
|
71
|
+
class << self
|
72
|
+
FIELDS.each do |f|
|
73
|
+
class_eval %[
|
74
|
+
def #{f} name
|
75
|
+
properties << [ :#{f}, name ] unless properties.include?([:#{f}, name])
|
76
|
+
attr_accessor name
|
77
|
+
end
|
78
|
+
]
|
79
|
+
end
|
80
|
+
|
81
|
+
def properties() @properties ||= [] end
|
82
|
+
|
83
|
+
def id() self::ID end
|
84
|
+
def name() self::NAME end
|
85
|
+
end
|
86
|
+
|
87
|
+
class Method
|
88
|
+
class << self
|
89
|
+
FIELDS.each do |f|
|
90
|
+
class_eval %[
|
91
|
+
def #{f} name
|
92
|
+
arguments << [ :#{f}, name ] unless arguments.include?([:#{f}, name])
|
93
|
+
attr_accessor name
|
94
|
+
end
|
95
|
+
]
|
96
|
+
end
|
97
|
+
|
98
|
+
def arguments() @arguments ||= [] end
|
99
|
+
|
100
|
+
def parent() Protocol.const_get(self.to_s[/Protocol::(.+?)::/,1]) end
|
101
|
+
def id() self::ID end
|
102
|
+
def name() self::NAME end
|
103
|
+
end
|
104
|
+
|
105
|
+
def == b
|
106
|
+
self.class.arguments.inject(true) do |eql, (type, name)|
|
107
|
+
eql and __send__("#{name}") == b.__send__("#{name}")
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def self.methods() @methods ||= {} end
|
113
|
+
|
114
|
+
def self.Method(id, name)
|
115
|
+
@_base_methods ||= {}
|
116
|
+
@_base_methods[id] ||= ::Class.new(Method) do
|
117
|
+
class_eval %[
|
118
|
+
def self.inherited klass
|
119
|
+
klass.const_set(:ID, #{id})
|
120
|
+
klass.const_set(:NAME, :#{name.to_s})
|
121
|
+
klass.parent.methods[#{id}] = klass
|
122
|
+
klass.parent.methods[klass::NAME] = klass
|
123
|
+
end
|
124
|
+
]
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def self.classes() @classes ||= {} end
|
130
|
+
|
131
|
+
def self.Class(id, name)
|
132
|
+
@_base_classes ||= {}
|
133
|
+
@_base_classes[id] ||= ::Class.new(Class) do
|
134
|
+
class_eval %[
|
135
|
+
def self.inherited klass
|
136
|
+
klass.const_set(:ID, #{id})
|
137
|
+
klass.const_set(:NAME, :#{name.to_s})
|
138
|
+
Protocol.classes[#{id}] = klass
|
139
|
+
Protocol.classes[klass::NAME] = klass
|
140
|
+
end
|
141
|
+
]
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
module Protocol
|
147
|
+
class Connection < Class( 10, :connection ); end
|
148
|
+
class Channel < Class( 20, :channel ); end
|
149
|
+
class Access < Class( 30, :access ); end
|
150
|
+
class Exchange < Class( 40, :exchange ); end
|
151
|
+
class Queue < Class( 50, :queue ); end
|
152
|
+
class Basic < Class( 60, :basic ); end
|
153
|
+
class File < Class( 70, :file ); end
|
154
|
+
class Stream < Class( 80, :stream ); end
|
155
|
+
class Tx < Class( 90, :tx ); end
|
156
|
+
class Dtx < Class( 100, :dtx ); end
|
157
|
+
class Tunnel < Class( 110, :tunnel ); end
|
158
|
+
class Test < Class( 120, :test ); end
|
159
|
+
|
160
|
+
class Connection
|
161
|
+
|
162
|
+
class Start < Method( 10, :start ); end
|
163
|
+
class StartOk < Method( 11, :start_ok ); end
|
164
|
+
class Secure < Method( 20, :secure ); end
|
165
|
+
class SecureOk < Method( 21, :secure_ok ); end
|
166
|
+
class Tune < Method( 30, :tune ); end
|
167
|
+
class TuneOk < Method( 31, :tune_ok ); end
|
168
|
+
class Open < Method( 40, :open ); end
|
169
|
+
class OpenOk < Method( 41, :open_ok ); end
|
170
|
+
class Redirect < Method( 50, :redirect ); end
|
171
|
+
class Close < Method( 60, :close ); end
|
172
|
+
class CloseOk < Method( 61, :close_ok ); end
|
173
|
+
|
174
|
+
class Start
|
175
|
+
octet :version_major
|
176
|
+
octet :version_minor
|
177
|
+
table :server_properties
|
178
|
+
longstr :mechanisms
|
179
|
+
longstr :locales
|
180
|
+
end
|
181
|
+
|
182
|
+
class StartOk
|
183
|
+
table :client_properties
|
184
|
+
shortstr :mechanism
|
185
|
+
longstr :response
|
186
|
+
shortstr :locale
|
187
|
+
end
|
188
|
+
|
189
|
+
class Secure
|
190
|
+
longstr :challenge
|
191
|
+
end
|
192
|
+
|
193
|
+
class SecureOk
|
194
|
+
longstr :response
|
195
|
+
end
|
196
|
+
|
197
|
+
class Tune
|
198
|
+
short :channel_max
|
199
|
+
long :frame_max
|
200
|
+
short :heartbeat
|
201
|
+
end
|
202
|
+
|
203
|
+
class TuneOk
|
204
|
+
short :channel_max
|
205
|
+
long :frame_max
|
206
|
+
short :heartbeat
|
207
|
+
end
|
208
|
+
|
209
|
+
class Open
|
210
|
+
shortstr :virtual_host
|
211
|
+
shortstr :capabilities
|
212
|
+
bit :insist
|
213
|
+
end
|
214
|
+
|
215
|
+
class OpenOk
|
216
|
+
shortstr :known_hosts
|
217
|
+
end
|
218
|
+
|
219
|
+
class Redirect
|
220
|
+
shortstr :host
|
221
|
+
shortstr :known_hosts
|
222
|
+
end
|
223
|
+
|
224
|
+
class Close
|
225
|
+
short :reply_code
|
226
|
+
shortstr :reply_text
|
227
|
+
short :class_id
|
228
|
+
short :method_id
|
229
|
+
end
|
230
|
+
|
231
|
+
class CloseOk
|
232
|
+
end
|
233
|
+
|
234
|
+
end
|
235
|
+
|
236
|
+
class Channel
|
237
|
+
|
238
|
+
class Open < Method( 10, :open ); end
|
239
|
+
class OpenOk < Method( 11, :open_ok ); end
|
240
|
+
class Flow < Method( 20, :flow ); end
|
241
|
+
class FlowOk < Method( 21, :flow_ok ); end
|
242
|
+
class Alert < Method( 30, :alert ); end
|
243
|
+
class Close < Method( 40, :close ); end
|
244
|
+
class CloseOk < Method( 41, :close_ok ); end
|
245
|
+
|
246
|
+
class Open
|
247
|
+
shortstr :out_of_band
|
248
|
+
end
|
249
|
+
|
250
|
+
class OpenOk
|
251
|
+
end
|
252
|
+
|
253
|
+
class Flow
|
254
|
+
bit :active
|
255
|
+
end
|
256
|
+
|
257
|
+
class FlowOk
|
258
|
+
bit :active
|
259
|
+
end
|
260
|
+
|
261
|
+
class Alert
|
262
|
+
short :reply_code
|
263
|
+
shortstr :reply_text
|
264
|
+
table :details
|
265
|
+
end
|
266
|
+
|
267
|
+
class Close
|
268
|
+
short :reply_code
|
269
|
+
shortstr :reply_text
|
270
|
+
short :class_id
|
271
|
+
short :method_id
|
272
|
+
end
|
273
|
+
|
274
|
+
class CloseOk
|
275
|
+
end
|
276
|
+
|
277
|
+
end
|
278
|
+
|
279
|
+
class Access
|
280
|
+
|
281
|
+
class Request < Method( 10, :request ); end
|
282
|
+
class RequestOk < Method( 11, :request_ok ); end
|
283
|
+
|
284
|
+
class Request
|
285
|
+
shortstr :realm
|
286
|
+
bit :exclusive
|
287
|
+
bit :passive
|
288
|
+
bit :active
|
289
|
+
bit :write
|
290
|
+
bit :read
|
291
|
+
end
|
292
|
+
|
293
|
+
class RequestOk
|
294
|
+
short :ticket
|
295
|
+
end
|
296
|
+
|
297
|
+
end
|
298
|
+
|
299
|
+
class Exchange
|
300
|
+
|
301
|
+
class Declare < Method( 10, :declare ); end
|
302
|
+
class DeclareOk < Method( 11, :declare_ok ); end
|
303
|
+
class Delete < Method( 20, :delete ); end
|
304
|
+
class DeleteOk < Method( 21, :delete_ok ); end
|
305
|
+
|
306
|
+
class Declare
|
307
|
+
short :ticket
|
308
|
+
shortstr :exchange
|
309
|
+
shortstr :type
|
310
|
+
bit :passive
|
311
|
+
bit :durable
|
312
|
+
bit :auto_delete
|
313
|
+
bit :internal
|
314
|
+
bit :nowait
|
315
|
+
table :arguments
|
316
|
+
end
|
317
|
+
|
318
|
+
class DeclareOk
|
319
|
+
end
|
320
|
+
|
321
|
+
class Delete
|
322
|
+
short :ticket
|
323
|
+
shortstr :exchange
|
324
|
+
bit :if_unused
|
325
|
+
bit :nowait
|
326
|
+
end
|
327
|
+
|
328
|
+
class DeleteOk
|
329
|
+
end
|
330
|
+
|
331
|
+
end
|
332
|
+
|
333
|
+
class Queue
|
334
|
+
|
335
|
+
class Declare < Method( 10, :declare ); end
|
336
|
+
class DeclareOk < Method( 11, :declare_ok ); end
|
337
|
+
class Bind < Method( 20, :bind ); end
|
338
|
+
class BindOk < Method( 21, :bind_ok ); end
|
339
|
+
class Purge < Method( 30, :purge ); end
|
340
|
+
class PurgeOk < Method( 31, :purge_ok ); end
|
341
|
+
class Delete < Method( 40, :delete ); end
|
342
|
+
class DeleteOk < Method( 41, :delete_ok ); end
|
343
|
+
class Unbind < Method( 50, :unbind ); end
|
344
|
+
class UnbindOk < Method( 51, :unbind_ok ); end
|
345
|
+
|
346
|
+
class Declare
|
347
|
+
short :ticket
|
348
|
+
shortstr :queue
|
349
|
+
bit :passive
|
350
|
+
bit :durable
|
351
|
+
bit :exclusive
|
352
|
+
bit :auto_delete
|
353
|
+
bit :nowait
|
354
|
+
table :arguments
|
355
|
+
end
|
356
|
+
|
357
|
+
class DeclareOk
|
358
|
+
shortstr :queue
|
359
|
+
long :message_count
|
360
|
+
long :consumer_count
|
361
|
+
end
|
362
|
+
|
363
|
+
class Bind
|
364
|
+
short :ticket
|
365
|
+
shortstr :queue
|
366
|
+
shortstr :exchange
|
367
|
+
shortstr :routing_key
|
368
|
+
bit :nowait
|
369
|
+
table :arguments
|
370
|
+
end
|
371
|
+
|
372
|
+
class BindOk
|
373
|
+
end
|
374
|
+
|
375
|
+
class Purge
|
376
|
+
short :ticket
|
377
|
+
shortstr :queue
|
378
|
+
bit :nowait
|
379
|
+
end
|
380
|
+
|
381
|
+
class PurgeOk
|
382
|
+
long :message_count
|
383
|
+
end
|
384
|
+
|
385
|
+
class Delete
|
386
|
+
short :ticket
|
387
|
+
shortstr :queue
|
388
|
+
bit :if_unused
|
389
|
+
bit :if_empty
|
390
|
+
bit :nowait
|
391
|
+
end
|
392
|
+
|
393
|
+
class DeleteOk
|
394
|
+
long :message_count
|
395
|
+
end
|
396
|
+
|
397
|
+
class Unbind
|
398
|
+
short :ticket
|
399
|
+
shortstr :queue
|
400
|
+
shortstr :exchange
|
401
|
+
shortstr :routing_key
|
402
|
+
table :arguments
|
403
|
+
end
|
404
|
+
|
405
|
+
class UnbindOk
|
406
|
+
end
|
407
|
+
|
408
|
+
end
|
409
|
+
|
410
|
+
class Basic
|
411
|
+
shortstr :content_type
|
412
|
+
shortstr :content_encoding
|
413
|
+
table :headers
|
414
|
+
octet :delivery_mode
|
415
|
+
octet :priority
|
416
|
+
shortstr :correlation_id
|
417
|
+
shortstr :reply_to
|
418
|
+
shortstr :expiration
|
419
|
+
shortstr :message_id
|
420
|
+
timestamp :timestamp
|
421
|
+
shortstr :type
|
422
|
+
shortstr :user_id
|
423
|
+
shortstr :app_id
|
424
|
+
shortstr :cluster_id
|
425
|
+
|
426
|
+
class Qos < Method( 10, :qos ); end
|
427
|
+
class QosOk < Method( 11, :qos_ok ); end
|
428
|
+
class Consume < Method( 20, :consume ); end
|
429
|
+
class ConsumeOk < Method( 21, :consume_ok ); end
|
430
|
+
class Cancel < Method( 30, :cancel ); end
|
431
|
+
class CancelOk < Method( 31, :cancel_ok ); end
|
432
|
+
class Publish < Method( 40, :publish ); end
|
433
|
+
class Return < Method( 50, :return ); end
|
434
|
+
class Deliver < Method( 60, :deliver ); end
|
435
|
+
class Get < Method( 70, :get ); end
|
436
|
+
class GetOk < Method( 71, :get_ok ); end
|
437
|
+
class GetEmpty < Method( 72, :get_empty ); end
|
438
|
+
class Ack < Method( 80, :ack ); end
|
439
|
+
class Reject < Method( 90, :reject ); end
|
440
|
+
class Recover < Method( 100, :recover ); end
|
441
|
+
|
442
|
+
class Qos
|
443
|
+
long :prefetch_size
|
444
|
+
short :prefetch_count
|
445
|
+
bit :global
|
446
|
+
end
|
447
|
+
|
448
|
+
class QosOk
|
449
|
+
end
|
450
|
+
|
451
|
+
class Consume
|
452
|
+
short :ticket
|
453
|
+
shortstr :queue
|
454
|
+
shortstr :consumer_tag
|
455
|
+
bit :no_local
|
456
|
+
bit :no_ack
|
457
|
+
bit :exclusive
|
458
|
+
bit :nowait
|
459
|
+
end
|
460
|
+
|
461
|
+
class ConsumeOk
|
462
|
+
shortstr :consumer_tag
|
463
|
+
end
|
464
|
+
|
465
|
+
class Cancel
|
466
|
+
shortstr :consumer_tag
|
467
|
+
bit :nowait
|
468
|
+
end
|
469
|
+
|
470
|
+
class CancelOk
|
471
|
+
shortstr :consumer_tag
|
472
|
+
end
|
473
|
+
|
474
|
+
class Publish
|
475
|
+
short :ticket
|
476
|
+
shortstr :exchange
|
477
|
+
shortstr :routing_key
|
478
|
+
bit :mandatory
|
479
|
+
bit :immediate
|
480
|
+
end
|
481
|
+
|
482
|
+
class Return
|
483
|
+
short :reply_code
|
484
|
+
shortstr :reply_text
|
485
|
+
shortstr :exchange
|
486
|
+
shortstr :routing_key
|
487
|
+
end
|
488
|
+
|
489
|
+
class Deliver
|
490
|
+
shortstr :consumer_tag
|
491
|
+
longlong :delivery_tag
|
492
|
+
bit :redelivered
|
493
|
+
shortstr :exchange
|
494
|
+
shortstr :routing_key
|
495
|
+
end
|
496
|
+
|
497
|
+
class Get
|
498
|
+
short :ticket
|
499
|
+
shortstr :queue
|
500
|
+
bit :no_ack
|
501
|
+
end
|
502
|
+
|
503
|
+
class GetOk
|
504
|
+
longlong :delivery_tag
|
505
|
+
bit :redelivered
|
506
|
+
shortstr :exchange
|
507
|
+
shortstr :routing_key
|
508
|
+
long :message_count
|
509
|
+
end
|
510
|
+
|
511
|
+
class GetEmpty
|
512
|
+
shortstr :cluster_id
|
513
|
+
end
|
514
|
+
|
515
|
+
class Ack
|
516
|
+
longlong :delivery_tag
|
517
|
+
bit :multiple
|
518
|
+
end
|
519
|
+
|
520
|
+
class Reject
|
521
|
+
longlong :delivery_tag
|
522
|
+
bit :requeue
|
523
|
+
end
|
524
|
+
|
525
|
+
class Recover
|
526
|
+
bit :requeue
|
527
|
+
end
|
528
|
+
|
529
|
+
end
|
530
|
+
|
531
|
+
class File
|
532
|
+
shortstr :content_type
|
533
|
+
shortstr :content_encoding
|
534
|
+
table :headers
|
535
|
+
octet :priority
|
536
|
+
shortstr :reply_to
|
537
|
+
shortstr :message_id
|
538
|
+
shortstr :filename
|
539
|
+
timestamp :timestamp
|
540
|
+
shortstr :cluster_id
|
541
|
+
|
542
|
+
class Qos < Method( 10, :qos ); end
|
543
|
+
class QosOk < Method( 11, :qos_ok ); end
|
544
|
+
class Consume < Method( 20, :consume ); end
|
545
|
+
class ConsumeOk < Method( 21, :consume_ok ); end
|
546
|
+
class Cancel < Method( 30, :cancel ); end
|
547
|
+
class CancelOk < Method( 31, :cancel_ok ); end
|
548
|
+
class Open < Method( 40, :open ); end
|
549
|
+
class OpenOk < Method( 41, :open_ok ); end
|
550
|
+
class Stage < Method( 50, :stage ); end
|
551
|
+
class Publish < Method( 60, :publish ); end
|
552
|
+
class Return < Method( 70, :return ); end
|
553
|
+
class Deliver < Method( 80, :deliver ); end
|
554
|
+
class Ack < Method( 90, :ack ); end
|
555
|
+
class Reject < Method( 100, :reject ); end
|
556
|
+
|
557
|
+
class Qos
|
558
|
+
long :prefetch_size
|
559
|
+
short :prefetch_count
|
560
|
+
bit :global
|
561
|
+
end
|
562
|
+
|
563
|
+
class QosOk
|
564
|
+
end
|
565
|
+
|
566
|
+
class Consume
|
567
|
+
short :ticket
|
568
|
+
shortstr :queue
|
569
|
+
shortstr :consumer_tag
|
570
|
+
bit :no_local
|
571
|
+
bit :no_ack
|
572
|
+
bit :exclusive
|
573
|
+
bit :nowait
|
574
|
+
end
|
575
|
+
|
576
|
+
class ConsumeOk
|
577
|
+
shortstr :consumer_tag
|
578
|
+
end
|
579
|
+
|
580
|
+
class Cancel
|
581
|
+
shortstr :consumer_tag
|
582
|
+
bit :nowait
|
583
|
+
end
|
584
|
+
|
585
|
+
class CancelOk
|
586
|
+
shortstr :consumer_tag
|
587
|
+
end
|
588
|
+
|
589
|
+
class Open
|
590
|
+
shortstr :identifier
|
591
|
+
longlong :content_size
|
592
|
+
end
|
593
|
+
|
594
|
+
class OpenOk
|
595
|
+
longlong :staged_size
|
596
|
+
end
|
597
|
+
|
598
|
+
class Stage
|
599
|
+
end
|
600
|
+
|
601
|
+
class Publish
|
602
|
+
short :ticket
|
603
|
+
shortstr :exchange
|
604
|
+
shortstr :routing_key
|
605
|
+
bit :mandatory
|
606
|
+
bit :immediate
|
607
|
+
shortstr :identifier
|
608
|
+
end
|
609
|
+
|
610
|
+
class Return
|
611
|
+
short :reply_code
|
612
|
+
shortstr :reply_text
|
613
|
+
shortstr :exchange
|
614
|
+
shortstr :routing_key
|
615
|
+
end
|
616
|
+
|
617
|
+
class Deliver
|
618
|
+
shortstr :consumer_tag
|
619
|
+
longlong :delivery_tag
|
620
|
+
bit :redelivered
|
621
|
+
shortstr :exchange
|
622
|
+
shortstr :routing_key
|
623
|
+
shortstr :identifier
|
624
|
+
end
|
625
|
+
|
626
|
+
class Ack
|
627
|
+
longlong :delivery_tag
|
628
|
+
bit :multiple
|
629
|
+
end
|
630
|
+
|
631
|
+
class Reject
|
632
|
+
longlong :delivery_tag
|
633
|
+
bit :requeue
|
634
|
+
end
|
635
|
+
|
636
|
+
end
|
637
|
+
|
638
|
+
class Stream
|
639
|
+
shortstr :content_type
|
640
|
+
shortstr :content_encoding
|
641
|
+
table :headers
|
642
|
+
octet :priority
|
643
|
+
timestamp :timestamp
|
644
|
+
|
645
|
+
class Qos < Method( 10, :qos ); end
|
646
|
+
class QosOk < Method( 11, :qos_ok ); end
|
647
|
+
class Consume < Method( 20, :consume ); end
|
648
|
+
class ConsumeOk < Method( 21, :consume_ok ); end
|
649
|
+
class Cancel < Method( 30, :cancel ); end
|
650
|
+
class CancelOk < Method( 31, :cancel_ok ); end
|
651
|
+
class Publish < Method( 40, :publish ); end
|
652
|
+
class Return < Method( 50, :return ); end
|
653
|
+
class Deliver < Method( 60, :deliver ); end
|
654
|
+
|
655
|
+
class Qos
|
656
|
+
long :prefetch_size
|
657
|
+
short :prefetch_count
|
658
|
+
long :consume_rate
|
659
|
+
bit :global
|
660
|
+
end
|
661
|
+
|
662
|
+
class QosOk
|
663
|
+
end
|
664
|
+
|
665
|
+
class Consume
|
666
|
+
short :ticket
|
667
|
+
shortstr :queue
|
668
|
+
shortstr :consumer_tag
|
669
|
+
bit :no_local
|
670
|
+
bit :exclusive
|
671
|
+
bit :nowait
|
672
|
+
end
|
673
|
+
|
674
|
+
class ConsumeOk
|
675
|
+
shortstr :consumer_tag
|
676
|
+
end
|
677
|
+
|
678
|
+
class Cancel
|
679
|
+
shortstr :consumer_tag
|
680
|
+
bit :nowait
|
681
|
+
end
|
682
|
+
|
683
|
+
class CancelOk
|
684
|
+
shortstr :consumer_tag
|
685
|
+
end
|
686
|
+
|
687
|
+
class Publish
|
688
|
+
short :ticket
|
689
|
+
shortstr :exchange
|
690
|
+
shortstr :routing_key
|
691
|
+
bit :mandatory
|
692
|
+
bit :immediate
|
693
|
+
end
|
694
|
+
|
695
|
+
class Return
|
696
|
+
short :reply_code
|
697
|
+
shortstr :reply_text
|
698
|
+
shortstr :exchange
|
699
|
+
shortstr :routing_key
|
700
|
+
end
|
701
|
+
|
702
|
+
class Deliver
|
703
|
+
shortstr :consumer_tag
|
704
|
+
longlong :delivery_tag
|
705
|
+
shortstr :exchange
|
706
|
+
shortstr :queue
|
707
|
+
end
|
708
|
+
|
709
|
+
end
|
710
|
+
|
711
|
+
class Tx
|
712
|
+
|
713
|
+
class Select < Method( 10, :select ); end
|
714
|
+
class SelectOk < Method( 11, :select_ok ); end
|
715
|
+
class Commit < Method( 20, :commit ); end
|
716
|
+
class CommitOk < Method( 21, :commit_ok ); end
|
717
|
+
class Rollback < Method( 30, :rollback ); end
|
718
|
+
class RollbackOk < Method( 31, :rollback_ok ); end
|
719
|
+
|
720
|
+
class Select
|
721
|
+
end
|
722
|
+
|
723
|
+
class SelectOk
|
724
|
+
end
|
725
|
+
|
726
|
+
class Commit
|
727
|
+
end
|
728
|
+
|
729
|
+
class CommitOk
|
730
|
+
end
|
731
|
+
|
732
|
+
class Rollback
|
733
|
+
end
|
734
|
+
|
735
|
+
class RollbackOk
|
736
|
+
end
|
737
|
+
|
738
|
+
end
|
739
|
+
|
740
|
+
class Dtx
|
741
|
+
|
742
|
+
class Select < Method( 10, :select ); end
|
743
|
+
class SelectOk < Method( 11, :select_ok ); end
|
744
|
+
class Start < Method( 20, :start ); end
|
745
|
+
class StartOk < Method( 21, :start_ok ); end
|
746
|
+
|
747
|
+
class Select
|
748
|
+
end
|
749
|
+
|
750
|
+
class SelectOk
|
751
|
+
end
|
752
|
+
|
753
|
+
class Start
|
754
|
+
shortstr :dtx_identifier
|
755
|
+
end
|
756
|
+
|
757
|
+
class StartOk
|
758
|
+
end
|
759
|
+
|
760
|
+
end
|
761
|
+
|
762
|
+
class Tunnel
|
763
|
+
table :headers
|
764
|
+
shortstr :proxy_name
|
765
|
+
shortstr :data_name
|
766
|
+
octet :durable
|
767
|
+
octet :broadcast
|
768
|
+
|
769
|
+
class Request < Method( 10, :request ); end
|
770
|
+
|
771
|
+
class Request
|
772
|
+
table :meta_data
|
773
|
+
end
|
774
|
+
|
775
|
+
end
|
776
|
+
|
777
|
+
class Test
|
778
|
+
|
779
|
+
class Integer < Method( 10, :integer ); end
|
780
|
+
class IntegerOk < Method( 11, :integer_ok ); end
|
781
|
+
class String < Method( 20, :string ); end
|
782
|
+
class StringOk < Method( 21, :string_ok ); end
|
783
|
+
class Table < Method( 30, :table ); end
|
784
|
+
class TableOk < Method( 31, :table_ok ); end
|
785
|
+
class Content < Method( 40, :content ); end
|
786
|
+
class ContentOk < Method( 41, :content_ok ); end
|
787
|
+
|
788
|
+
class Integer
|
789
|
+
octet :integer_1
|
790
|
+
short :integer_2
|
791
|
+
long :integer_3
|
792
|
+
longlong :integer_4
|
793
|
+
octet :operation
|
794
|
+
end
|
795
|
+
|
796
|
+
class IntegerOk
|
797
|
+
longlong :result
|
798
|
+
end
|
799
|
+
|
800
|
+
class String
|
801
|
+
shortstr :string_1
|
802
|
+
longstr :string_2
|
803
|
+
octet :operation
|
804
|
+
end
|
805
|
+
|
806
|
+
class StringOk
|
807
|
+
longstr :result
|
808
|
+
end
|
809
|
+
|
810
|
+
class Table
|
811
|
+
table :table
|
812
|
+
octet :integer_op
|
813
|
+
octet :string_op
|
814
|
+
end
|
815
|
+
|
816
|
+
class TableOk
|
817
|
+
longlong :integer_result
|
818
|
+
longstr :string_result
|
819
|
+
end
|
820
|
+
|
821
|
+
class Content
|
822
|
+
end
|
823
|
+
|
824
|
+
class ContentOk
|
825
|
+
long :content_checksum
|
826
|
+
end
|
827
|
+
|
828
|
+
end
|
829
|
+
|
830
|
+
end
|