rabbitmq 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -0
  3. data/ext/rabbitmq/Rakefile +14 -9
  4. data/lib/rabbitmq/connection/channel_manager.rb +61 -0
  5. data/lib/rabbitmq/connection/event_manager.rb +55 -0
  6. data/lib/rabbitmq/connection/transport.rb +157 -0
  7. data/lib/rabbitmq/ffi.rb +4 -356
  8. data/lib/rabbitmq/ffi/ext.rb +12 -299
  9. data/lib/rabbitmq/ffi/ext/basic_properties.rb +57 -0
  10. data/lib/rabbitmq/ffi/ext/bytes.rb +29 -0
  11. data/lib/rabbitmq/ffi/ext/connection_info.rb +12 -0
  12. data/lib/rabbitmq/ffi/ext/field_value.rb +49 -0
  13. data/lib/rabbitmq/ffi/ext/frame.rb +43 -0
  14. data/lib/rabbitmq/ffi/ext/frame_payload_properties.rb +12 -0
  15. data/lib/rabbitmq/ffi/ext/method.rb +49 -0
  16. data/lib/rabbitmq/ffi/ext/table.rb +51 -0
  17. data/lib/rabbitmq/ffi/ext/timeval.rb +18 -0
  18. data/lib/rabbitmq/ffi/gen.rb +65 -0
  19. data/lib/rabbitmq/ffi/gen/access_request.rb +49 -0
  20. data/lib/rabbitmq/ffi/gen/access_request_ok.rb +29 -0
  21. data/lib/rabbitmq/ffi/gen/basic_ack.rb +36 -0
  22. data/lib/rabbitmq/ffi/gen/basic_cancel.rb +37 -0
  23. data/lib/rabbitmq/ffi/gen/basic_cancel_ok.rb +30 -0
  24. data/lib/rabbitmq/ffi/gen/basic_consume.rb +57 -0
  25. data/lib/rabbitmq/ffi/gen/basic_consume_ok.rb +30 -0
  26. data/lib/rabbitmq/ffi/gen/basic_deliver.rb +48 -0
  27. data/lib/rabbitmq/ffi/gen/basic_get.rb +40 -0
  28. data/lib/rabbitmq/ffi/gen/basic_get_empty.rb +30 -0
  29. data/lib/rabbitmq/ffi/gen/basic_get_ok.rb +47 -0
  30. data/lib/rabbitmq/ffi/gen/basic_nack.rb +39 -0
  31. data/lib/rabbitmq/ffi/gen/basic_publish.rb +47 -0
  32. data/lib/rabbitmq/ffi/gen/basic_qos.rb +39 -0
  33. data/lib/rabbitmq/ffi/gen/basic_qos_ok.rb +28 -0
  34. data/lib/rabbitmq/ffi/gen/basic_recover.rb +29 -0
  35. data/lib/rabbitmq/ffi/gen/basic_recover_async.rb +29 -0
  36. data/lib/rabbitmq/ffi/gen/basic_recover_ok.rb +28 -0
  37. data/lib/rabbitmq/ffi/gen/basic_reject.rb +36 -0
  38. data/lib/rabbitmq/ffi/gen/basic_return.rb +45 -0
  39. data/lib/rabbitmq/ffi/gen/channel_close.rb +45 -0
  40. data/lib/rabbitmq/ffi/gen/channel_close_ok.rb +28 -0
  41. data/lib/rabbitmq/ffi/gen/channel_flow.rb +29 -0
  42. data/lib/rabbitmq/ffi/gen/channel_flow_ok.rb +29 -0
  43. data/lib/rabbitmq/ffi/gen/channel_open.rb +30 -0
  44. data/lib/rabbitmq/ffi/gen/channel_open_ok.rb +30 -0
  45. data/lib/rabbitmq/ffi/gen/confirm_select.rb +29 -0
  46. data/lib/rabbitmq/ffi/gen/confirm_select_ok.rb +28 -0
  47. data/lib/rabbitmq/ffi/gen/connection_blocked.rb +30 -0
  48. data/lib/rabbitmq/ffi/gen/connection_close.rb +45 -0
  49. data/lib/rabbitmq/ffi/gen/connection_close_ok.rb +28 -0
  50. data/lib/rabbitmq/ffi/gen/connection_open.rb +41 -0
  51. data/lib/rabbitmq/ffi/gen/connection_open_ok.rb +30 -0
  52. data/lib/rabbitmq/ffi/gen/connection_secure.rb +30 -0
  53. data/lib/rabbitmq/ffi/gen/connection_secure_ok.rb +30 -0
  54. data/lib/rabbitmq/ffi/gen/connection_start.rb +48 -0
  55. data/lib/rabbitmq/ffi/gen/connection_start_ok.rb +46 -0
  56. data/lib/rabbitmq/ffi/gen/connection_tune.rb +39 -0
  57. data/lib/rabbitmq/ffi/gen/connection_tune_ok.rb +39 -0
  58. data/lib/rabbitmq/ffi/gen/connection_unblocked.rb +28 -0
  59. data/lib/rabbitmq/ffi/gen/exchange_bind.rb +52 -0
  60. data/lib/rabbitmq/ffi/gen/exchange_bind_ok.rb +28 -0
  61. data/lib/rabbitmq/ffi/gen/exchange_declare.rb +60 -0
  62. data/lib/rabbitmq/ffi/gen/exchange_declare_ok.rb +28 -0
  63. data/lib/rabbitmq/ffi/gen/exchange_delete.rb +43 -0
  64. data/lib/rabbitmq/ffi/gen/exchange_delete_ok.rb +28 -0
  65. data/lib/rabbitmq/ffi/gen/exchange_unbind.rb +52 -0
  66. data/lib/rabbitmq/ffi/gen/exchange_unbind_ok.rb +28 -0
  67. data/lib/rabbitmq/ffi/gen/queue_bind.rb +52 -0
  68. data/lib/rabbitmq/ffi/gen/queue_bind_ok.rb +28 -0
  69. data/lib/rabbitmq/ffi/gen/queue_declare.rb +56 -0
  70. data/lib/rabbitmq/ffi/gen/queue_declare_ok.rb +40 -0
  71. data/lib/rabbitmq/ffi/gen/queue_delete.rb +46 -0
  72. data/lib/rabbitmq/ffi/gen/queue_delete_ok.rb +29 -0
  73. data/lib/rabbitmq/ffi/gen/queue_purge.rb +40 -0
  74. data/lib/rabbitmq/ffi/gen/queue_purge_ok.rb +29 -0
  75. data/lib/rabbitmq/ffi/gen/queue_unbind.rb +49 -0
  76. data/lib/rabbitmq/ffi/gen/queue_unbind_ok.rb +28 -0
  77. data/lib/rabbitmq/ffi/gen/tx_commit.rb +28 -0
  78. data/lib/rabbitmq/ffi/gen/tx_commit_ok.rb +28 -0
  79. data/lib/rabbitmq/ffi/gen/tx_rollback.rb +28 -0
  80. data/lib/rabbitmq/ffi/gen/tx_rollback_ok.rb +28 -0
  81. data/lib/rabbitmq/ffi/gen/tx_select.rb +28 -0
  82. data/lib/rabbitmq/ffi/gen/tx_select_ok.rb +28 -0
  83. 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