aboutsummaryrefslogtreecommitdiffstats
path: root/calc/remote.erl
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-10-13 11:52:54 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2010-10-13 11:52:54 +0200
commited7f050a0f6d008b327098ad930c4873d3b3e461 (patch)
tree2fce818b0d6aa0716fce251788b373e1b74f9eb8 /calc/remote.erl
parent69c37e13acd820ef48f949afc795bf01d3690ae1 (diff)
downloaderlang-ed7f050a0f6d008b327098ad930c4873d3b3e461.tar.gz
erlang-ed7f050a0f6d008b327098ad930c4873d3b3e461.tar.xz
erlang-ed7f050a0f6d008b327098ad930c4873d3b3e461.zip
changed repository layout
Diffstat (limited to 'calc/remote.erl')
-rw-r--r--calc/remote.erl22
1 files changed, 22 insertions, 0 deletions
diff --git a/calc/remote.erl b/calc/remote.erl
new file mode 100644
index 0000000..793c27c
--- /dev/null
+++ b/calc/remote.erl
@@ -0,0 +1,22 @@
+-module(remote).
+-export([start/0, calculate/1]).
+
+rpc(C) ->
+ rechner ! {self(), C},
+ receive
+ {rechner, Reply} ->
+ Reply
+ end.
+
+loop() ->
+ receive
+ {From, {calculate, String}} ->
+ From ! {rechner, calc:eval(String)},
+ loop()
+ end.
+
+start() ->
+ register(rechner, spawn(fun() -> loop() end)).
+
+calculate(String) ->
+ rpc({calculate, String}).