Сделать вызов gen_server через Jinterface?
Как мне сделать звонок, как это:
order_cat(Pid, Name, Color, Desc) ->
gen_server:call(Pid, {order, Name, Color, Desc}).
что-то вроде этого:
handle_call({order, Name, Color, Desc}, _From, Cats) ->
if Cats =:= [] ->
{reply, make_cat(Name, Color, Desc), Cats};
Cats =/= [] ->
{reply, hd(Cats), tl(Cats)}
end;
handle_call(terminate, _From, Cats) ->
{stop, normal, ok, Cats}.
используя Java и Jinterface вместо первого кода? Я знаю, как отправить сообщение в pid с помощью Jinterface, но затем у меня есть оператор получения, который обрабатывает его. Я хочу использовать OTP, но не понимаю как.
1 ответ
Решение
Есть два способа подключения к вашему коду Erlang через Jinterface: сообщения и RPC.
RPC задокументирован здесь: http://www.erlang.org/doc/apps/jinterface/jinterface_users_guide.html
Обратите внимание, что это не "не OTP" для использования сообщений. Если у вас есть gen_server, вы можете отправить его напрямую и получить сообщение в функции handle_info.