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,28 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class ExchangeDeclareOk < ::FFI::Struct
5
+ layout(:dummy, :char)
6
+
7
+ def self.id
8
+ :exchange_declare_ok
9
+ end
10
+
11
+ def id
12
+ :exchange_declare_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,43 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class ExchangeDelete < ::FFI::Struct
5
+ layout(
6
+ :ticket, :uint16,
7
+ :exchange, Bytes,
8
+ :if_unused, Boolean,
9
+ :nowait, Boolean
10
+ )
11
+
12
+ def self.id
13
+ :exchange_delete
14
+ end
15
+
16
+ def id
17
+ :exchange_delete
18
+ end
19
+
20
+ def apply(ticket: nil, exchange: nil, if_unused: nil, nowait: nil)
21
+ self[:ticket] = Integer(ticket) if ticket
22
+ self[:exchange] = Bytes.from_s(exchange.to_s) if exchange
23
+ self[:if_unused] = if_unused unless if_unused.nil?
24
+ self[:nowait] = nowait unless nowait.nil?
25
+ self
26
+ end
27
+
28
+ def to_h(free=false)
29
+ {
30
+ ticket: self[:ticket],
31
+ exchange: self[:exchange].to_s(free),
32
+ if_unused: self[:if_unused],
33
+ nowait: self[:nowait]
34
+ }
35
+ end
36
+
37
+ def free!
38
+ self[:exchange].free!
39
+ end
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,28 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class ExchangeDeleteOk < ::FFI::Struct
5
+ layout(:dummy, :char)
6
+
7
+ def self.id
8
+ :exchange_delete_ok
9
+ end
10
+
11
+ def id
12
+ :exchange_delete_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,52 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class ExchangeUnbind < ::FFI::Struct
5
+ layout(
6
+ :ticket, :uint16,
7
+ :destination, Bytes,
8
+ :source, Bytes,
9
+ :routing_key, Bytes,
10
+ :nowait, Boolean,
11
+ :arguments, Table
12
+ )
13
+
14
+ def self.id
15
+ :exchange_unbind
16
+ end
17
+
18
+ def id
19
+ :exchange_unbind
20
+ end
21
+
22
+ def apply(ticket: nil, destination: nil, source: nil, routing_key: nil, nowait: nil, arguments: nil)
23
+ self[:ticket] = Integer(ticket) if ticket
24
+ self[:destination] = Bytes.from_s(destination.to_s) if destination
25
+ self[:source] = Bytes.from_s(source.to_s) if source
26
+ self[:routing_key] = Bytes.from_s(routing_key.to_s) if routing_key
27
+ self[:nowait] = nowait unless nowait.nil?
28
+ self[:arguments] = Table.from(arguments) if arguments
29
+ self
30
+ end
31
+
32
+ def to_h(free=false)
33
+ {
34
+ ticket: self[:ticket],
35
+ destination: self[:destination].to_s(free),
36
+ source: self[:source].to_s(free),
37
+ routing_key: self[:routing_key].to_s(free),
38
+ nowait: self[:nowait],
39
+ arguments: self[:arguments].to_h(free)
40
+ }
41
+ end
42
+
43
+ def free!
44
+ self[:destination].free!
45
+ self[:source].free!
46
+ self[:routing_key].free!
47
+ self[:arguments].free!
48
+ end
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,28 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class ExchangeUnbindOk < ::FFI::Struct
5
+ layout(:dummy, :char)
6
+
7
+ def self.id
8
+ :exchange_unbind_ok
9
+ end
10
+
11
+ def id
12
+ :exchange_unbind_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,52 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueBind < ::FFI::Struct
5
+ layout(
6
+ :ticket, :uint16,
7
+ :queue, Bytes,
8
+ :exchange, Bytes,
9
+ :routing_key, Bytes,
10
+ :nowait, Boolean,
11
+ :arguments, Table
12
+ )
13
+
14
+ def self.id
15
+ :queue_bind
16
+ end
17
+
18
+ def id
19
+ :queue_bind
20
+ end
21
+
22
+ def apply(ticket: nil, queue: nil, exchange: nil, routing_key: nil, nowait: nil, arguments: nil)
23
+ self[:ticket] = Integer(ticket) if ticket
24
+ self[:queue] = Bytes.from_s(queue.to_s) if queue
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[:nowait] = nowait unless nowait.nil?
28
+ self[:arguments] = Table.from(arguments) if arguments
29
+ self
30
+ end
31
+
32
+ def to_h(free=false)
33
+ {
34
+ ticket: self[:ticket],
35
+ queue: self[:queue].to_s(free),
36
+ exchange: self[:exchange].to_s(free),
37
+ routing_key: self[:routing_key].to_s(free),
38
+ nowait: self[:nowait],
39
+ arguments: self[:arguments].to_h(free)
40
+ }
41
+ end
42
+
43
+ def free!
44
+ self[:queue].free!
45
+ self[:exchange].free!
46
+ self[:routing_key].free!
47
+ self[:arguments].free!
48
+ end
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,28 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueBindOk < ::FFI::Struct
5
+ layout(:dummy, :char)
6
+
7
+ def self.id
8
+ :queue_bind_ok
9
+ end
10
+
11
+ def id
12
+ :queue_bind_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,56 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueDeclare < ::FFI::Struct
5
+ layout(
6
+ :ticket, :uint16,
7
+ :queue, Bytes,
8
+ :passive, Boolean,
9
+ :durable, Boolean,
10
+ :exclusive, Boolean,
11
+ :auto_delete, Boolean,
12
+ :nowait, Boolean,
13
+ :arguments, Table
14
+ )
15
+
16
+ def self.id
17
+ :queue_declare
18
+ end
19
+
20
+ def id
21
+ :queue_declare
22
+ end
23
+
24
+ def apply(ticket: nil, queue: nil, passive: nil, durable: nil, exclusive: nil, auto_delete: nil, nowait: nil, arguments: nil)
25
+ self[:ticket] = Integer(ticket) if ticket
26
+ self[:queue] = Bytes.from_s(queue.to_s) if queue
27
+ self[:passive] = passive unless passive.nil?
28
+ self[:durable] = durable unless durable.nil?
29
+ self[:exclusive] = exclusive unless exclusive.nil?
30
+ self[:auto_delete] = auto_delete unless auto_delete.nil?
31
+ self[:nowait] = nowait unless nowait.nil?
32
+ self[:arguments] = Table.from(arguments) if arguments
33
+ self
34
+ end
35
+
36
+ def to_h(free=false)
37
+ {
38
+ ticket: self[:ticket],
39
+ queue: self[:queue].to_s(free),
40
+ passive: self[:passive],
41
+ durable: self[:durable],
42
+ exclusive: self[:exclusive],
43
+ auto_delete: self[:auto_delete],
44
+ nowait: self[:nowait],
45
+ arguments: self[:arguments].to_h(free)
46
+ }
47
+ end
48
+
49
+ def free!
50
+ self[:queue].free!
51
+ self[:arguments].free!
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,40 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueDeclareOk < ::FFI::Struct
5
+ layout(
6
+ :queue, Bytes,
7
+ :message_count, :uint32,
8
+ :consumer_count, :uint32
9
+ )
10
+
11
+ def self.id
12
+ :queue_declare_ok
13
+ end
14
+
15
+ def id
16
+ :queue_declare_ok
17
+ end
18
+
19
+ def apply(queue: nil, message_count: nil, consumer_count: nil)
20
+ self[:queue] = Bytes.from_s(queue.to_s) if queue
21
+ self[:message_count] = Integer(message_count) if message_count
22
+ self[:consumer_count] = Integer(consumer_count) if consumer_count
23
+ self
24
+ end
25
+
26
+ def to_h(free=false)
27
+ {
28
+ queue: self[:queue].to_s(free),
29
+ message_count: self[:message_count],
30
+ consumer_count: self[:consumer_count]
31
+ }
32
+ end
33
+
34
+ def free!
35
+ self[:queue].free!
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,46 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueDelete < ::FFI::Struct
5
+ layout(
6
+ :ticket, :uint16,
7
+ :queue, Bytes,
8
+ :if_unused, Boolean,
9
+ :if_empty, Boolean,
10
+ :nowait, Boolean
11
+ )
12
+
13
+ def self.id
14
+ :queue_delete
15
+ end
16
+
17
+ def id
18
+ :queue_delete
19
+ end
20
+
21
+ def apply(ticket: nil, queue: nil, if_unused: nil, if_empty: nil, nowait: nil)
22
+ self[:ticket] = Integer(ticket) if ticket
23
+ self[:queue] = Bytes.from_s(queue.to_s) if queue
24
+ self[:if_unused] = if_unused unless if_unused.nil?
25
+ self[:if_empty] = if_empty unless if_empty.nil?
26
+ self[:nowait] = nowait unless nowait.nil?
27
+ self
28
+ end
29
+
30
+ def to_h(free=false)
31
+ {
32
+ ticket: self[:ticket],
33
+ queue: self[:queue].to_s(free),
34
+ if_unused: self[:if_unused],
35
+ if_empty: self[:if_empty],
36
+ nowait: self[:nowait]
37
+ }
38
+ end
39
+
40
+ def free!
41
+ self[:queue].free!
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,29 @@
1
+
2
+ module RabbitMQ
3
+ module FFI
4
+ class QueueDeleteOk < ::FFI::Struct
5
+ layout(:message_count, :uint32)
6
+
7
+ def self.id
8
+ :queue_delete_ok
9
+ end
10
+
11
+ def id
12
+ :queue_delete_ok
13
+ end
14
+
15
+ def apply(message_count: nil)
16
+ self[:message_count] = Integer(message_count) if message_count
17
+ self
18
+ end
19
+
20
+ def to_h(free=false)
21
+ {message_count: self[:message_count]}
22
+ end
23
+
24
+ def free!
25
+ end
26
+
27
+ end
28
+ end
29
+ end