rabbitmq 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/ext/rabbitmq/Rakefile +14 -9
- data/lib/rabbitmq/connection/channel_manager.rb +61 -0
- data/lib/rabbitmq/connection/event_manager.rb +55 -0
- data/lib/rabbitmq/connection/transport.rb +157 -0
- data/lib/rabbitmq/ffi.rb +4 -356
- data/lib/rabbitmq/ffi/ext.rb +12 -299
- data/lib/rabbitmq/ffi/ext/basic_properties.rb +57 -0
- data/lib/rabbitmq/ffi/ext/bytes.rb +29 -0
- data/lib/rabbitmq/ffi/ext/connection_info.rb +12 -0
- data/lib/rabbitmq/ffi/ext/field_value.rb +49 -0
- data/lib/rabbitmq/ffi/ext/frame.rb +43 -0
- data/lib/rabbitmq/ffi/ext/frame_payload_properties.rb +12 -0
- data/lib/rabbitmq/ffi/ext/method.rb +49 -0
- data/lib/rabbitmq/ffi/ext/table.rb +51 -0
- data/lib/rabbitmq/ffi/ext/timeval.rb +18 -0
- data/lib/rabbitmq/ffi/gen.rb +65 -0
- data/lib/rabbitmq/ffi/gen/access_request.rb +49 -0
- data/lib/rabbitmq/ffi/gen/access_request_ok.rb +29 -0
- data/lib/rabbitmq/ffi/gen/basic_ack.rb +36 -0
- data/lib/rabbitmq/ffi/gen/basic_cancel.rb +37 -0
- data/lib/rabbitmq/ffi/gen/basic_cancel_ok.rb +30 -0
- data/lib/rabbitmq/ffi/gen/basic_consume.rb +57 -0
- data/lib/rabbitmq/ffi/gen/basic_consume_ok.rb +30 -0
- data/lib/rabbitmq/ffi/gen/basic_deliver.rb +48 -0
- data/lib/rabbitmq/ffi/gen/basic_get.rb +40 -0
- data/lib/rabbitmq/ffi/gen/basic_get_empty.rb +30 -0
- data/lib/rabbitmq/ffi/gen/basic_get_ok.rb +47 -0
- data/lib/rabbitmq/ffi/gen/basic_nack.rb +39 -0
- data/lib/rabbitmq/ffi/gen/basic_publish.rb +47 -0
- data/lib/rabbitmq/ffi/gen/basic_qos.rb +39 -0
- data/lib/rabbitmq/ffi/gen/basic_qos_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/basic_recover.rb +29 -0
- data/lib/rabbitmq/ffi/gen/basic_recover_async.rb +29 -0
- data/lib/rabbitmq/ffi/gen/basic_recover_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/basic_reject.rb +36 -0
- data/lib/rabbitmq/ffi/gen/basic_return.rb +45 -0
- data/lib/rabbitmq/ffi/gen/channel_close.rb +45 -0
- data/lib/rabbitmq/ffi/gen/channel_close_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/channel_flow.rb +29 -0
- data/lib/rabbitmq/ffi/gen/channel_flow_ok.rb +29 -0
- data/lib/rabbitmq/ffi/gen/channel_open.rb +30 -0
- data/lib/rabbitmq/ffi/gen/channel_open_ok.rb +30 -0
- data/lib/rabbitmq/ffi/gen/confirm_select.rb +29 -0
- data/lib/rabbitmq/ffi/gen/confirm_select_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/connection_blocked.rb +30 -0
- data/lib/rabbitmq/ffi/gen/connection_close.rb +45 -0
- data/lib/rabbitmq/ffi/gen/connection_close_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/connection_open.rb +41 -0
- data/lib/rabbitmq/ffi/gen/connection_open_ok.rb +30 -0
- data/lib/rabbitmq/ffi/gen/connection_secure.rb +30 -0
- data/lib/rabbitmq/ffi/gen/connection_secure_ok.rb +30 -0
- data/lib/rabbitmq/ffi/gen/connection_start.rb +48 -0
- data/lib/rabbitmq/ffi/gen/connection_start_ok.rb +46 -0
- data/lib/rabbitmq/ffi/gen/connection_tune.rb +39 -0
- data/lib/rabbitmq/ffi/gen/connection_tune_ok.rb +39 -0
- data/lib/rabbitmq/ffi/gen/connection_unblocked.rb +28 -0
- data/lib/rabbitmq/ffi/gen/exchange_bind.rb +52 -0
- data/lib/rabbitmq/ffi/gen/exchange_bind_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/exchange_declare.rb +60 -0
- data/lib/rabbitmq/ffi/gen/exchange_declare_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/exchange_delete.rb +43 -0
- data/lib/rabbitmq/ffi/gen/exchange_delete_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/exchange_unbind.rb +52 -0
- data/lib/rabbitmq/ffi/gen/exchange_unbind_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/queue_bind.rb +52 -0
- data/lib/rabbitmq/ffi/gen/queue_bind_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/queue_declare.rb +56 -0
- data/lib/rabbitmq/ffi/gen/queue_declare_ok.rb +40 -0
- data/lib/rabbitmq/ffi/gen/queue_delete.rb +46 -0
- data/lib/rabbitmq/ffi/gen/queue_delete_ok.rb +29 -0
- data/lib/rabbitmq/ffi/gen/queue_purge.rb +40 -0
- data/lib/rabbitmq/ffi/gen/queue_purge_ok.rb +29 -0
- data/lib/rabbitmq/ffi/gen/queue_unbind.rb +49 -0
- data/lib/rabbitmq/ffi/gen/queue_unbind_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_commit.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_commit_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_rollback.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_rollback_ok.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_select.rb +28 -0
- data/lib/rabbitmq/ffi/gen/tx_select_ok.rb +28 -0
- metadata +79 -2
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicConsumeOk < ::FFI::Struct
|
5
|
+
layout(:consumer_tag, Bytes)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_consume_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_consume_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(consumer_tag: nil)
|
16
|
+
self[:consumer_tag] = Bytes.from_s(consumer_tag.to_s) if consumer_tag
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{consumer_tag: self[:consumer_tag].to_s(free)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
self[:consumer_tag].free!
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicDeliver < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:consumer_tag, Bytes,
|
7
|
+
:delivery_tag, :uint64,
|
8
|
+
:redelivered, Boolean,
|
9
|
+
:exchange, Bytes,
|
10
|
+
:routing_key, Bytes
|
11
|
+
)
|
12
|
+
|
13
|
+
def self.id
|
14
|
+
:basic_deliver
|
15
|
+
end
|
16
|
+
|
17
|
+
def id
|
18
|
+
:basic_deliver
|
19
|
+
end
|
20
|
+
|
21
|
+
def apply(consumer_tag: nil, delivery_tag: nil, redelivered: nil, exchange: nil, routing_key: nil)
|
22
|
+
self[:consumer_tag] = Bytes.from_s(consumer_tag.to_s) if consumer_tag
|
23
|
+
self[:delivery_tag] = Integer(delivery_tag) if delivery_tag
|
24
|
+
self[:redelivered] = redelivered unless redelivered.nil?
|
25
|
+
self[:exchange] = Bytes.from_s(exchange.to_s) if exchange
|
26
|
+
self[:routing_key] = Bytes.from_s(routing_key.to_s) if routing_key
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_h(free=false)
|
31
|
+
{
|
32
|
+
consumer_tag: self[:consumer_tag].to_s(free),
|
33
|
+
delivery_tag: self[:delivery_tag],
|
34
|
+
redelivered: self[:redelivered],
|
35
|
+
exchange: self[:exchange].to_s(free),
|
36
|
+
routing_key: self[:routing_key].to_s(free)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def free!
|
41
|
+
self[:consumer_tag].free!
|
42
|
+
self[:exchange].free!
|
43
|
+
self[:routing_key].free!
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicGet < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:ticket, :uint16,
|
7
|
+
:queue, Bytes,
|
8
|
+
:no_ack, Boolean
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:basic_get
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:basic_get
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(ticket: nil, queue: nil, no_ack: nil)
|
20
|
+
self[:ticket] = Integer(ticket) if ticket
|
21
|
+
self[:queue] = Bytes.from_s(queue.to_s) if queue
|
22
|
+
self[:no_ack] = no_ack unless no_ack.nil?
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
ticket: self[:ticket],
|
29
|
+
queue: self[:queue].to_s(free),
|
30
|
+
no_ack: self[:no_ack]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def free!
|
35
|
+
self[:queue].free!
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicGetEmpty < ::FFI::Struct
|
5
|
+
layout(:cluster_id, Bytes)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_get_empty
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_get_empty
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(cluster_id: nil)
|
16
|
+
self[:cluster_id] = Bytes.from_s(cluster_id.to_s) if cluster_id
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{cluster_id: self[:cluster_id].to_s(free)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
self[:cluster_id].free!
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicGetOk < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:delivery_tag, :uint64,
|
7
|
+
:redelivered, Boolean,
|
8
|
+
:exchange, Bytes,
|
9
|
+
:routing_key, Bytes,
|
10
|
+
:message_count, :uint32
|
11
|
+
)
|
12
|
+
|
13
|
+
def self.id
|
14
|
+
:basic_get_ok
|
15
|
+
end
|
16
|
+
|
17
|
+
def id
|
18
|
+
:basic_get_ok
|
19
|
+
end
|
20
|
+
|
21
|
+
def apply(delivery_tag: nil, redelivered: nil, exchange: nil, routing_key: nil, message_count: nil)
|
22
|
+
self[:delivery_tag] = Integer(delivery_tag) if delivery_tag
|
23
|
+
self[:redelivered] = redelivered unless redelivered.nil?
|
24
|
+
self[:exchange] = Bytes.from_s(exchange.to_s) if exchange
|
25
|
+
self[:routing_key] = Bytes.from_s(routing_key.to_s) if routing_key
|
26
|
+
self[:message_count] = Integer(message_count) if message_count
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_h(free=false)
|
31
|
+
{
|
32
|
+
delivery_tag: self[:delivery_tag],
|
33
|
+
redelivered: self[:redelivered],
|
34
|
+
exchange: self[:exchange].to_s(free),
|
35
|
+
routing_key: self[:routing_key].to_s(free),
|
36
|
+
message_count: self[:message_count]
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def free!
|
41
|
+
self[:exchange].free!
|
42
|
+
self[:routing_key].free!
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicNack < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:delivery_tag, :uint64,
|
7
|
+
:multiple, Boolean,
|
8
|
+
:requeue, Boolean
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:basic_nack
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:basic_nack
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(delivery_tag: nil, multiple: nil, requeue: nil)
|
20
|
+
self[:delivery_tag] = Integer(delivery_tag) if delivery_tag
|
21
|
+
self[:multiple] = multiple unless multiple.nil?
|
22
|
+
self[:requeue] = requeue unless requeue.nil?
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
delivery_tag: self[:delivery_tag],
|
29
|
+
multiple: self[:multiple],
|
30
|
+
requeue: self[:requeue]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def free!
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicPublish < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:ticket, :uint16,
|
7
|
+
:exchange, Bytes,
|
8
|
+
:routing_key, Bytes,
|
9
|
+
:mandatory, Boolean,
|
10
|
+
:immediate, Boolean
|
11
|
+
)
|
12
|
+
|
13
|
+
def self.id
|
14
|
+
:basic_publish
|
15
|
+
end
|
16
|
+
|
17
|
+
def id
|
18
|
+
:basic_publish
|
19
|
+
end
|
20
|
+
|
21
|
+
def apply(ticket: nil, exchange: nil, routing_key: nil, mandatory: nil, immediate: nil)
|
22
|
+
self[:ticket] = Integer(ticket) if ticket
|
23
|
+
self[:exchange] = Bytes.from_s(exchange.to_s) if exchange
|
24
|
+
self[:routing_key] = Bytes.from_s(routing_key.to_s) if routing_key
|
25
|
+
self[:mandatory] = mandatory unless mandatory.nil?
|
26
|
+
self[:immediate] = immediate unless immediate.nil?
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_h(free=false)
|
31
|
+
{
|
32
|
+
ticket: self[:ticket],
|
33
|
+
exchange: self[:exchange].to_s(free),
|
34
|
+
routing_key: self[:routing_key].to_s(free),
|
35
|
+
mandatory: self[:mandatory],
|
36
|
+
immediate: self[:immediate]
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def free!
|
41
|
+
self[:exchange].free!
|
42
|
+
self[:routing_key].free!
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicQos < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:prefetch_size, :uint32,
|
7
|
+
:prefetch_count, :uint16,
|
8
|
+
:global, Boolean
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:basic_qos
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:basic_qos
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(prefetch_size: nil, prefetch_count: nil, global: nil)
|
20
|
+
self[:prefetch_size] = Integer(prefetch_size) if prefetch_size
|
21
|
+
self[:prefetch_count] = Integer(prefetch_count) if prefetch_count
|
22
|
+
self[:global] = global unless global.nil?
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
prefetch_size: self[:prefetch_size],
|
29
|
+
prefetch_count: self[:prefetch_count],
|
30
|
+
global: self[:global]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def free!
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicQosOk < ::FFI::Struct
|
5
|
+
layout(:dummy, :char)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_qos_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_qos_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(dummy: nil)
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_h(free=false)
|
20
|
+
{}
|
21
|
+
end
|
22
|
+
|
23
|
+
def free!
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicRecover < ::FFI::Struct
|
5
|
+
layout(:requeue, Boolean)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_recover
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_recover
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(requeue: nil)
|
16
|
+
self[:requeue] = requeue unless requeue.nil?
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{requeue: self[:requeue]}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicRecoverAsync < ::FFI::Struct
|
5
|
+
layout(:requeue, Boolean)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_recover_async
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_recover_async
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(requeue: nil)
|
16
|
+
self[:requeue] = requeue unless requeue.nil?
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{requeue: self[:requeue]}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class BasicRecoverOk < ::FFI::Struct
|
5
|
+
layout(:dummy, :char)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:basic_recover_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:basic_recover_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(dummy: nil)
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_h(free=false)
|
20
|
+
{}
|
21
|
+
end
|
22
|
+
|
23
|
+
def free!
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|