Class: DeepConnect::DeepMQ::SV

Inherits:
Object
  • Object
show all
Defined in:
lib/deep-connect/deep-mq.rb

Instance Method Summary collapse

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

#startObject



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