Class: OMQ::Backend::Libzmq::Engine::RoutingStub
- Inherits:
-
Object
- Object
- OMQ::Backend::Libzmq::Engine::RoutingStub
- Defined in:
- lib/omq/backend/libzmq/engine.rb
Overview
Routing stub that delegates subscribe/unsubscribe/join/leave to libzmq socket options via the I/O thread.
Instance Attribute Summary collapse
-
#subscriber_joined ⇒ Async::Promise
readonly
Resolved when a subscriber joins.
Instance Method Summary collapse
-
#initialize(engine) ⇒ RoutingStub
constructor
A new instance of RoutingStub.
-
#join(group) ⇒ void
Joins a DISH group for receiving RADIO messages.
-
#leave(group) ⇒ void
Leaves a DISH group.
-
#subscribe(prefix) ⇒ void
Subscribes to messages matching the given prefix.
-
#unsubscribe(prefix) ⇒ void
Removes a subscription for the given prefix.
Constructor Details
#initialize(engine) ⇒ RoutingStub
Returns a new instance of RoutingStub.
51 52 53 54 |
# File 'lib/omq/backend/libzmq/engine.rb', line 51 def initialize(engine) @engine = engine @subscriber_joined = Async::Promise.new end |
Instance Attribute Details
#subscriber_joined ⇒ Async::Promise (readonly)
Returns resolved when a subscriber joins.
48 49 50 |
# File 'lib/omq/backend/libzmq/engine.rb', line 48 def subscriber_joined @subscriber_joined end |
Instance Method Details
#join(group) ⇒ void
This method returns an undefined value.
Joins a DISH group for receiving RADIO messages.
79 80 81 |
# File 'lib/omq/backend/libzmq/engine.rb', line 79 def join(group) @engine.send_cmd(:join, group) end |
#leave(group) ⇒ void
This method returns an undefined value.
Leaves a DISH group.
88 89 90 |
# File 'lib/omq/backend/libzmq/engine.rb', line 88 def leave(group) @engine.send_cmd(:leave, group) end |
#subscribe(prefix) ⇒ void
This method returns an undefined value.
Subscribes to messages matching the given prefix.
61 62 63 |
# File 'lib/omq/backend/libzmq/engine.rb', line 61 def subscribe(prefix) @engine.send_cmd(:subscribe, prefix.b) end |
#unsubscribe(prefix) ⇒ void
This method returns an undefined value.
Removes a subscription for the given prefix.
70 71 72 |
# File 'lib/omq/backend/libzmq/engine.rb', line 70 def unsubscribe(prefix) @engine.send_cmd(:unsubscribe, prefix.b) end |