Class: Hx::Interop::RPC::Client
Overview
An RPC client.
Instance Attribute Summary collapse
-
#id_prefix ⇒ Object
Returns the value of attribute id_prefix.
Instance Method Summary collapse
- #call(request, *args) ⇒ Message (also: #[])
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #magic(&block) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize ⇒ Client
12 13 14 15 16 17 |
# File 'lib/interop/rpc/client.rb', line 12 def initialize(*) @next_id = 1 @queues = {} @mutex = Mutex.new super end |
Instance Attribute Details
#id_prefix ⇒ Object
Returns the value of attribute id_prefix.
10 11 12 |
# File 'lib/interop/rpc/client.rb', line 10 def id_prefix @id_prefix end |
Instance Method Details
#call(request, *args) ⇒ Message Also known as: []
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/interop/rpc/client.rb', line 21 def call(request, *args) request = (request, *args) queue = Queue.new @mutex.synchronize do id = "#{id_prefix}#{@next_id}" @next_id += 1 request[Headers::ID] = id @queues[id] = queue end write request queue.pop end |