diff options
-rw-r--r-- | ebin/rexi.app | 9 | ||||
-rw-r--r-- | src/rexi_app.erl | 11 | ||||
-rw-r--r-- | src/rexi_server.erl | 33 | ||||
-rw-r--r-- | src/rexi_sup.erl | 15 |
4 files changed, 68 insertions, 0 deletions
diff --git a/ebin/rexi.app b/ebin/rexi.app new file mode 100644 index 00000000..bc7350a9 --- /dev/null +++ b/ebin/rexi.app @@ -0,0 +1,9 @@ +{application, rexi, [ + {description, "lightweight RPC server"}, + {vsn, "1.0"}, + {modules, [rexi_app, rexi_sup, rexi_server]}, + {registered, [rexi_sup, rexi_server]}, + {applications, [kernel, stdlib]}, + {mod, {rexi_app,[]}}, + {start_phases, []} +]}.
\ No newline at end of file diff --git a/src/rexi_app.erl b/src/rexi_app.erl new file mode 100644 index 00000000..dda57752 --- /dev/null +++ b/src/rexi_app.erl @@ -0,0 +1,11 @@ +-module(rexi_app). +-behaviour(application). +-export([start/2, stop/1]). + +-include_lib("eunit/include/eunit.hrl"). + +start(_Type, StartArgs) -> + rexi_sup:start_link(StartArgs). + +stop(_State) -> + ok. diff --git a/src/rexi_server.erl b/src/rexi_server.erl new file mode 100644 index 00000000..0e443607 --- /dev/null +++ b/src/rexi_server.erl @@ -0,0 +1,33 @@ +-module(rexi_server). +-behaviour(gen_server). +-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, + code_change/3]). + +-export([start_link/0]). + +-include_lib("eunit/include/eunit.hrl"). + +-record(st, { + field = value +}). + +start_link() -> + gen_server:start_link({local, ?MODULE}, ?MODULE, [], []). + +init([]) -> + {ok, #st{}}. + +handle_call(_Request, _From, State) -> + {reply, ok, State}. + +handle_cast(_Msg, State) -> + {noreply, State}. + +handle_info(_Info, State) -> + {noreply, State}. + +terminate(_Reason, _State) -> + ok. + +code_change(_OldVsn, State, _Extra) -> + {ok, State}. diff --git a/src/rexi_sup.erl b/src/rexi_sup.erl new file mode 100644 index 00000000..3a518e7b --- /dev/null +++ b/src/rexi_sup.erl @@ -0,0 +1,15 @@ +-module(rexi_sup). +-behaviour(supervisor). +-export([init/1]). + +-export([start_link/1]). + +-include_lib("eunit/include/eunit.hrl"). + +start_link(Args) -> + supervisor:start_link({local,?MODULE}, ?MODULE, Args). + +init([]) -> + Mod = rexi_server, + Spec = {Mod, {Mod,start_link,[]}, permanent, 100, worker, [Mod]}, + {ok, {{one_for_one, 3, 10}, [Spec]}}. |