class DRbQS::Manage::SendSignal
Constants
- MAX_WAIT_TIME
Public Class Methods
new(message)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 6 def initialize(message) @message = message end
Public Instance Methods
get_history()
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 63 def get_history send_signal_to_server(:request_history, sender_id) if mes = wait_response([:history, String]) return mes[1] end nil end
get_response()
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 71 def get_response send_signal_to_server(:request_response, [sender_id, Time.now]) if mes = wait_response([:response, sender_id, nil]) return true end nil end
get_status()
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 55 def get_status send_signal_to_server(:request_status, sender_id) if mes = wait_response([:status, String]) return mes[1] end nil end
send_data(data)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 35 def send_data(data) send_signal_to_server(:new_data, data) end
send_exit_signal()
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 19 def send_exit_signal send_signal_to_server(:exit_server, sender_id) end
send_node_exit_after_task(node_id)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 23 def send_node_exit_after_task(node_id) send_signal_to_server(:exit_after_task, node_id) end
send_node_sleep(node_id)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 31 def send_node_sleep(node_id) send_signal_to_server(:sleep_node, node_id) end
send_node_wake(node_id)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 27 def send_node_wake(node_id) send_signal_to_server(:wake_node, node_id) end
sender_id()
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 10 def sender_id "#{Socket.gethostname}/#{Process.pid}" end
Private Instance Methods
send_signal_to_server(signal, arg)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 14 def send_signal_to_server(signal, arg) @message.write([:server, signal, arg]) end
wait_response(message_cond)
click to toggle source
# File lib/drbqs/manage/send_signal.rb, line 39 def wait_response(message_cond) i = 0 loop do begin return @message.take(message_cond, 0) rescue Rinda::RequestExpiredError i += 1 if i > MAX_WAIT_TIME return nil end sleep(1) end end end