rabbitmq 0.2.3 → 0.2.4

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