Module: MessagePack::RPC::RPCSocket

Included in:
RevSocket
Defined in:
lib/msgpack/rpc.rb

Instance Method Summary collapse

Instance Method Details

#on_closeObject



88
89
90
91
92
93
94
# File 'lib/msgpack/rpc.rb', line 88

def on_close
	return unless @session
	@session.on_close(self)
	@session = nil
rescue
	nil
end

#on_message(msg) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
# File 'lib/msgpack/rpc.rb', line 76

def on_message(msg)
	if msg[0] == REQUEST
		on_request(msg[1], msg[2], msg[3])
	elsif msg[0] == RESPONSE
		on_response(msg[1], msg[3], msg[2])
	elsif msg[0] == REQUEST
		on_notify(msg[1], msg[2])
	else
		raise RPCError.new("unknown message type #{msg[0]}")
	end
end

#on_notify(method, param) ⇒ Object



101
102
103
104
# File 'lib/msgpack/rpc.rb', line 101

def on_notify(method, param)
	return unless @session
	@session.on_notify(method, param)
end

#on_request(msgid, method, param) ⇒ Object



96
97
98
99
# File 'lib/msgpack/rpc.rb', line 96

def on_request(msgid, method, param)
	return unless @session
	@session.on_request(method, param, Responder.new(self,msgid))
end

#on_response(msgid, res, err) ⇒ Object



106
107
108
109
# File 'lib/msgpack/rpc.rb', line 106

def on_response(msgid, res, err)
	return unless @session
	@session.on_response(msgid, res, err)
end

#send_notify(method, param) ⇒ Object



119
120
121
# File 'lib/msgpack/rpc.rb', line 119

def send_notify(method, param)
	send_message [NOTIFY, method, param]
end

#send_request(msgid, method, param) ⇒ Object



111
112
113
# File 'lib/msgpack/rpc.rb', line 111

def send_request(msgid, method, param)
	send_message [REQUEST, msgid, method, param]
end

#send_response(msgid, retval, err) ⇒ Object



115
116
117
# File 'lib/msgpack/rpc.rb', line 115

def send_response(msgid, retval, err)
	send_message [RESPONSE, msgid, err, retval]
end

#session=(s) ⇒ Object



71
72
73
74
# File 'lib/msgpack/rpc.rb', line 71

def session=(s)
	@session = s
	s.add_socket(self)
end