class Miu::RPC::Server

Public Class Methods

new(address, handler) click to toggle source
# File lib/miu/rpc/server.rb, line 17
def initialize(address, handler)
  @socket = Celluloid::ZMQ::RouterSocket.new
  @socket.bind address
  @evaluator = Evaluator.new handler

  async.run
end

Public Instance Methods

close() click to toggle source
# File lib/miu/rpc/server.rb, line 25
def close
  @socket.close
  terminate
end
handle_message(parts) click to toggle source
# File lib/miu/rpc/server.rb, line 37
def handle_message(parts)
  id, request = parts
  response = @evaluator.process_request request
  @socket.write id, response
end
run() click to toggle source
# File lib/miu/rpc/server.rb, line 30
def run
  loop do
    parts = read_parts @socket
    async.handle_message parts
  end
end