Class: DeepConnect::DeepMQ::SV
Instance Method Summary collapse
- #enq(session, ev) ⇒ Object
- #evaluate_request(session, ev) ⇒ Object
-
#initialize(org) ⇒ SV
constructor
A new instance of SV.
- #start ⇒ Object
Constructor Details
#initialize(org) ⇒ SV
Returns a new instance of SV.
16 17 18 19 20 |
# File 'lib/deep-connect/deep-mq.rb', line 16 def initialize(org) @organizer = org @event_q = Queue.new start end |
Instance Method Details
#enq(session, ev) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/deep-connect/deep-mq.rb', line 22 def enq(session, ev) begin @event_q.push [session, ev] session.accept ev.reply(nil) rescue SystemExit raise rescue Exception session.accept event.reply(ret, $!) end end |
#evaluate_request(session, ev) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/deep-connect/deep-mq.rb', line 41 def evaluate_request(session, ev) receiver = ev.args.first method = ev.args[1] args = ev.args[2..-1] callback = ev.callback ev0 = Event::Request.request(session, receiver, method, args) @organizer.evaluator.evaluate_mq_request(session, ev0, callback) end |
#start ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/deep-connect/deep-mq.rb', line 33 def start Thread.start do loop do evaluate_request(*@event_q.pop) end end end |