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,41 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionOpen < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:virtual_host, Bytes,
|
7
|
+
:capabilities, Bytes,
|
8
|
+
:insist, Boolean
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:connection_open
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:connection_open
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(virtual_host: nil, capabilities: nil, insist: nil)
|
20
|
+
self[:virtual_host] = Bytes.from_s(virtual_host.to_s) if virtual_host
|
21
|
+
self[:capabilities] = Bytes.from_s(capabilities.to_s) if capabilities
|
22
|
+
self[:insist] = insist unless insist.nil?
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
virtual_host: self[:virtual_host].to_s(free),
|
29
|
+
capabilities: self[:capabilities].to_s(free),
|
30
|
+
insist: self[:insist]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def free!
|
35
|
+
self[:virtual_host].free!
|
36
|
+
self[:capabilities].free!
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionOpenOk < ::FFI::Struct
|
5
|
+
layout(:known_hosts, Bytes)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:connection_open_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:connection_open_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(known_hosts: nil)
|
16
|
+
self[:known_hosts] = Bytes.from_s(known_hosts.to_s) if known_hosts
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{known_hosts: self[:known_hosts].to_s(free)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
self[:known_hosts].free!
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionSecure < ::FFI::Struct
|
5
|
+
layout(:challenge, Bytes)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:connection_secure
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:connection_secure
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(challenge: nil)
|
16
|
+
self[:challenge] = Bytes.from_s(challenge.to_s) if challenge
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{challenge: self[:challenge].to_s(free)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
self[:challenge].free!
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionSecureOk < ::FFI::Struct
|
5
|
+
layout(:response, Bytes)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:connection_secure_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:connection_secure_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def apply(response: nil)
|
16
|
+
self[:response] = Bytes.from_s(response.to_s) if response
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_h(free=false)
|
21
|
+
{response: self[:response].to_s(free)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def free!
|
25
|
+
self[:response].free!
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionStart < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:version_major, :uint8,
|
7
|
+
:version_minor, :uint8,
|
8
|
+
:server_properties, Table,
|
9
|
+
:mechanisms, Bytes,
|
10
|
+
:locales, Bytes
|
11
|
+
)
|
12
|
+
|
13
|
+
def self.id
|
14
|
+
:connection_start
|
15
|
+
end
|
16
|
+
|
17
|
+
def id
|
18
|
+
:connection_start
|
19
|
+
end
|
20
|
+
|
21
|
+
def apply(version_major: nil, version_minor: nil, server_properties: nil, mechanisms: nil, locales: nil)
|
22
|
+
self[:version_major] = Integer(version_major) if version_major
|
23
|
+
self[:version_minor] = Integer(version_minor) if version_minor
|
24
|
+
self[:server_properties] = Table.from(server_properties) if server_properties
|
25
|
+
self[:mechanisms] = Bytes.from_s(mechanisms.to_s) if mechanisms
|
26
|
+
self[:locales] = Bytes.from_s(locales.to_s) if locales
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_h(free=false)
|
31
|
+
{
|
32
|
+
version_major: self[:version_major],
|
33
|
+
version_minor: self[:version_minor],
|
34
|
+
server_properties: self[:server_properties].to_h(free),
|
35
|
+
mechanisms: self[:mechanisms].to_s(free),
|
36
|
+
locales: self[:locales].to_s(free)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def free!
|
41
|
+
self[:server_properties].free!
|
42
|
+
self[:mechanisms].free!
|
43
|
+
self[:locales].free!
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionStartOk < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:client_properties, Table,
|
7
|
+
:mechanism, Bytes,
|
8
|
+
:response, Bytes,
|
9
|
+
:locale, Bytes
|
10
|
+
)
|
11
|
+
|
12
|
+
def self.id
|
13
|
+
:connection_start_ok
|
14
|
+
end
|
15
|
+
|
16
|
+
def id
|
17
|
+
:connection_start_ok
|
18
|
+
end
|
19
|
+
|
20
|
+
def apply(client_properties: nil, mechanism: nil, response: nil, locale: nil)
|
21
|
+
self[:client_properties] = Table.from(client_properties) if client_properties
|
22
|
+
self[:mechanism] = Bytes.from_s(mechanism.to_s) if mechanism
|
23
|
+
self[:response] = Bytes.from_s(response.to_s) if response
|
24
|
+
self[:locale] = Bytes.from_s(locale.to_s) if locale
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_h(free=false)
|
29
|
+
{
|
30
|
+
client_properties: self[:client_properties].to_h(free),
|
31
|
+
mechanism: self[:mechanism].to_s(free),
|
32
|
+
response: self[:response].to_s(free),
|
33
|
+
locale: self[:locale].to_s(free)
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def free!
|
38
|
+
self[:client_properties].free!
|
39
|
+
self[:mechanism].free!
|
40
|
+
self[:response].free!
|
41
|
+
self[:locale].free!
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionTune < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:channel_max, :uint16,
|
7
|
+
:frame_max, :uint32,
|
8
|
+
:heartbeat, :uint16
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:connection_tune
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:connection_tune
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(channel_max: nil, frame_max: nil, heartbeat: nil)
|
20
|
+
self[:channel_max] = Integer(channel_max) if channel_max
|
21
|
+
self[:frame_max] = Integer(frame_max) if frame_max
|
22
|
+
self[:heartbeat] = Integer(heartbeat) if heartbeat
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
channel_max: self[:channel_max],
|
29
|
+
frame_max: self[:frame_max],
|
30
|
+
heartbeat: self[:heartbeat]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def free!
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ConnectionTuneOk < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:channel_max, :uint16,
|
7
|
+
:frame_max, :uint32,
|
8
|
+
:heartbeat, :uint16
|
9
|
+
)
|
10
|
+
|
11
|
+
def self.id
|
12
|
+
:connection_tune_ok
|
13
|
+
end
|
14
|
+
|
15
|
+
def id
|
16
|
+
:connection_tune_ok
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply(channel_max: nil, frame_max: nil, heartbeat: nil)
|
20
|
+
self[:channel_max] = Integer(channel_max) if channel_max
|
21
|
+
self[:frame_max] = Integer(frame_max) if frame_max
|
22
|
+
self[:heartbeat] = Integer(heartbeat) if heartbeat
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_h(free=false)
|
27
|
+
{
|
28
|
+
channel_max: self[:channel_max],
|
29
|
+
frame_max: self[:frame_max],
|
30
|
+
heartbeat: self[:heartbeat]
|
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 ConnectionUnblocked < ::FFI::Struct
|
5
|
+
layout(:dummy, :char)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:connection_unblocked
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:connection_unblocked
|
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 ExchangeBind < ::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_bind
|
16
|
+
end
|
17
|
+
|
18
|
+
def id
|
19
|
+
:exchange_bind
|
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 ExchangeBindOk < ::FFI::Struct
|
5
|
+
layout(:dummy, :char)
|
6
|
+
|
7
|
+
def self.id
|
8
|
+
:exchange_bind_ok
|
9
|
+
end
|
10
|
+
|
11
|
+
def id
|
12
|
+
:exchange_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,60 @@
|
|
1
|
+
|
2
|
+
module RabbitMQ
|
3
|
+
module FFI
|
4
|
+
class ExchangeDeclare < ::FFI::Struct
|
5
|
+
layout(
|
6
|
+
:ticket, :uint16,
|
7
|
+
:exchange, Bytes,
|
8
|
+
:type, Bytes,
|
9
|
+
:passive, Boolean,
|
10
|
+
:durable, Boolean,
|
11
|
+
:auto_delete, Boolean,
|
12
|
+
:internal, Boolean,
|
13
|
+
:nowait, Boolean,
|
14
|
+
:arguments, Table
|
15
|
+
)
|
16
|
+
|
17
|
+
def self.id
|
18
|
+
:exchange_declare
|
19
|
+
end
|
20
|
+
|
21
|
+
def id
|
22
|
+
:exchange_declare
|
23
|
+
end
|
24
|
+
|
25
|
+
def apply(ticket: nil, exchange: nil, type: nil, passive: nil, durable: nil, auto_delete: nil, internal: nil, nowait: nil, arguments: nil)
|
26
|
+
self[:ticket] = Integer(ticket) if ticket
|
27
|
+
self[:exchange] = Bytes.from_s(exchange.to_s) if exchange
|
28
|
+
self[:type] = Bytes.from_s(type.to_s) if type
|
29
|
+
self[:passive] = passive unless passive.nil?
|
30
|
+
self[:durable] = durable unless durable.nil?
|
31
|
+
self[:auto_delete] = auto_delete unless auto_delete.nil?
|
32
|
+
self[:internal] = internal unless internal.nil?
|
33
|
+
self[:nowait] = nowait unless nowait.nil?
|
34
|
+
self[:arguments] = Table.from(arguments) if arguments
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_h(free=false)
|
39
|
+
{
|
40
|
+
ticket: self[:ticket],
|
41
|
+
exchange: self[:exchange].to_s(free),
|
42
|
+
type: self[:type].to_s(free),
|
43
|
+
passive: self[:passive],
|
44
|
+
durable: self[:durable],
|
45
|
+
auto_delete: self[:auto_delete],
|
46
|
+
internal: self[:internal],
|
47
|
+
nowait: self[:nowait],
|
48
|
+
arguments: self[:arguments].to_h(free)
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
def free!
|
53
|
+
self[:exchange].free!
|
54
|
+
self[:type].free!
|
55
|
+
self[:arguments].free!
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|