%%% -*- coding: utf-8 -*- %%%------------------------------------------------------------------- %%% @author Your Name <your@mail.address> %%% @doc Module Description %%% -module(gen_server_edoc_skelton). -behaviour(gen_server). %% API -export([start_link/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). %% @type void() = ok | void | none %% @type state() = #state{} %% -record(state, {}). %%==================================================================== %% API %%==================================================================== %% @spec start_link() -> {ok,Pid} | ignore | {error,Error} %% where %% Pid = pid() %% Error = term() %% %% @doc Starts the server start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). %%==================================================================== %% gen_server callbacks %%==================================================================== %% @private %% @spec init(Args) -> {ok, State} | %% {ok, State, Timeout} | %% ignore | %% {stop, Reason} %% where %% State = #state{} %% Timeout = integer() | infinity %% Reason = term() %% %% @doc Initiates the server init([]) -> {ok, #state{}}. %% @private %% @spec handle_call(Request, From, State) -> {reply, Reply, State} | %% {reply, Reply, State, Timeout} | %% {noreply, State} | %% {noreply, State, Timeout} | %% {stop, Reason, Reply, State} | %% {stop, Reason, State} %% where %% Request = term() %% From = {pid(), reference()} %% State = #state{} %% Timeout = integer() | infinity %% Reason = term() %% %% @doc Handling call messages handle_call(_Request, _From, State) -> Reply = ok, {reply, Reply, State}. %% @private %% @spec handle_cast(Msg, State) -> {noreply, State} | %% {noreply, State, Timeout} | %% {stop, Reason, State} %% where %% Msg = term() %% State = #state{} %% Timeout = integer() | infinity %% Reason = term() %% %% @doc Handling cast messages handle_cast(_Msg, State) -> {noreply, State}. %% @private %% @spec handle_info(Info, State) -> {noreply, State} | %% {noreply, State, Timeout} | %% {stop, Reason, State} %% where %% Info = term() %% State = #state{} %% Timeout = integer() | infinity %% Reason = term() %% @doc Handling all non call/cast messages handle_info(_Info, State) -> {noreply, State}. %% @private %% @spec terminate(Reason, State) -> void() %% where %% Reason = normal | shutdown | term() %% State = #state{} %% %% @doc This function is called by a gen_server when it is about to %% terminate. It should be the opposite of Module:init/1 and do any necessary %% cleaning up. When it returns, the gen_server terminates with Reason. %% The return value is ignored. terminate(_Reason, _State) -> ok. %% @private %% @spec code_change(OldVsn, State, Extra) -> {ok, NewState} %% where %% OldVsn = term() | {down, term()} %% State = #state{} %% Extra = term() %% NewState = #state{} %% %% @doc Convert process state when code is changed code_change(_OldVsn, State, _Extra) -> {ok, State}. %%-------------------------------------------------------------------- %% Internal functions %%-------------------------------------------------------------------- %% the end