class Elrpc::Service
Attributes
client[R]
cmd[R]
output[R]
port[R]
Public Class Methods
new(cmd, port)
click to toggle source
cmd = [“ruby”, “_call.rb”]
# File lib/elrpc.rb, line 69 def initialize(cmd, port) @cmd = cmd @port = port end
Public Instance Methods
_start_logger()
click to toggle source
# File lib/elrpc.rb, line 74 def _start_logger return Thread.start do loop do ret = @io.readline break if ret.nil? @logger.puts(ret) if @logger end end end
alive?()
click to toggle source
# File lib/elrpc.rb, line 109 def alive? @client.alive? end
call_method(name, *args)
click to toggle source
# File lib/elrpc.rb, line 125 def call_method(name, *args) @client.call_method(name, *args) end
call_method_async(name, *args, &block)
click to toggle source
# File lib/elrpc.rb, line 121 def call_method_async(name, *args, &block) @client.call_method_async(name, *args, &block) end
def_method(name, argdoc=nil, docstring=nil, &block)
click to toggle source
# File lib/elrpc.rb, line 117 def def_method(name, argdoc=nil, docstring=nil, &block) @client.def_method(name, argdoc, docstring, &block) end
query_methods()
click to toggle source
# File lib/elrpc.rb, line 133 def query_methods @client.query_methods end
query_methods_async(&block)
click to toggle source
# File lib/elrpc.rb, line 129 def query_methods_async(&block) @client.query_methods(&block) end
register_method(method)
click to toggle source
# File lib/elrpc.rb, line 113 def register_method(method) @client.register_method(method) end
start()
click to toggle source
# File lib/elrpc.rb, line 84 def start @io = IO.popen(@cmd) if port.nil? @port = @io.readline.to_i end @output = nil @thread = _start_logger # wait for port timeout(4) do loop do begin socket = TCPSocket.open("127.0.0.1", @port) socket.close #puts("Peer port is OK.") break rescue => e #puts("Peer port is not opened. Try next time...") sleep(0.2) end end end @client = Elrpc.start_client(@port) return self end
stop()
click to toggle source
# File lib/elrpc.rb, line 137 def stop @client.stop end