module Raft4r::RPC::RPCMachine
Public Instance Methods
call_method(conn, r)
click to toggle source
# File lib/raft4r/rpc_base.rb, line 16 def call_method conn, r @req_pool ||= Hash.new # if the machine supports async call, # try it first if self.respond_to? :"Async#{r.method}" @req_pool[r.to_id] = [conn, r] self.__send__ r.method.to_sym, r else v = self.__send__ r.method.to_sym, r p = Marshal.dump Response.new(@node_id, r.req_id, 0, v) conn.send_data p end end
response_method(req, resp)
click to toggle source
# File lib/raft4r/rpc_base.rb, line 30 def response_method req, resp r = @req_pool[req.to_id] return unless r p = Marshal.dump Response.new(@node_id, req.req_id, 0, resp) r[0].send_data p #r[0].close_connection_after_writing @req_pool.delete req.to_id #LOGGER.info req.inspect end