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