Skip to content

Commit

Permalink
Merge pull request #51 from hcs42/add_get_alarm
Browse files Browse the repository at this point in the history
Implement elarm:get_alarm(AlarmId, AlarmSrc)
  • Loading branch information
zsoltdudas-ESL authored Apr 11, 2017
2 parents 89c71ec + 505a650 commit 5885c90
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/elarm.erl
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
read_log/2,
get_alarms/0,
get_alarms/1,
get_alarm/2,
get_alarm/3,
get_alarm_by_id/1,
get_alarm_by_id/2,
get_configured/0,
Expand Down Expand Up @@ -398,6 +400,26 @@ get_alarms() ->
get_alarms(Srv) ->
elarm_server:get_alarms(Srv).

%%--------------------------------------------------------------------
%% @doc
%% Get alarm by alarm id and alarm src.
%% @equiv get_alarm(elarm_server, AlarmId, AlarmSrc)
%% @end
%%--------------------------------------------------------------------
-spec get_alarm(alarm_id(), alarm_src()) -> {ok, alarm()} | {error, term()}.
get_alarm(AlarmId, AlarmSrc) ->
get_alarm(elarm_server, AlarmId, AlarmSrc).

%%--------------------------------------------------------------------
%% @doc
%% Get alarm by alarm id and alarm src.
%% @end
%%--------------------------------------------------------------------
-spec get_alarm(pid()|atom(), alarm_id(), alarm_src()) ->
{ok, alarm()} | {error, term()}.
get_alarm(Srv, AlarmId, AlarmSrc) ->
elarm_server:get_alarm(Srv, AlarmId, AlarmSrc).

%%--------------------------------------------------------------------
%% @doc
%% Get alarm by id (event id).
Expand Down
18 changes: 18 additions & 0 deletions src/elarm_server.erl
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
unacknowledge/4,
add_comment/5,
get_alarms/1,
get_alarm/3,
read_log/2,
get_configured/1,
get_unconfigured/1,
Expand Down Expand Up @@ -121,6 +122,11 @@ add_comment(Pid, AlarmId, AlarmSrc, Text, UserId) ->
get_alarms(Pid) ->
gen_server:call(Pid, get_alarms).

-spec get_alarm(pid()|atom(), alarm_id(), alarm_src()) ->
{ok, alarm()} | {error, term()}.
get_alarm(Pid, AlarmId, AlarmSrc) ->
gen_server:call(Pid, {get_alarm, AlarmId, AlarmSrc}).

%% -------------------------------------------------------------------
%% Functions used by presentation layer to access alarm log

Expand Down Expand Up @@ -211,6 +217,9 @@ handle_call({add_comment, AlarmId, AlarmSrc, Text, UserId}, _From, State) ->
handle_call(get_alarms, _From, State) ->
{Reply, NewState} = handle_get_alarms(State),
{reply, Reply, NewState};
handle_call({get_alarm, AlarmId, AlarmSrc}, _From, State) ->
{Reply, NewState} = handle_get_alarm(AlarmId, AlarmSrc, State),
{reply, Reply, NewState};
handle_call({read_log, Filter}, _From, State) ->
{Reply, NewState} = handle_read_log(Filter, State),
{reply, Reply, NewState};
Expand Down Expand Up @@ -549,6 +558,15 @@ handle_get_alarms(#state{ alarmlist_cb = AlCB,
{Result, NewAlState} = AlCB:get_alarms(AlState),
{Result, State#state{ alarmlist_state = NewAlState}}.

handle_get_alarm(AlarmId, Src,
#state{ alarmlist_cb = AlCB, alarmlist_state = AlState } = State) ->
case AlCB:get_alarm(AlarmId, Src, AlState) of
{{ok, #alarm{} = Alarm}, NewAlState} ->
{{ok, Alarm}, State#state{ alarmlist_state = NewAlState }};
{{error, not_active}, NewAlState} ->
{{error, not_active}, State#state{ alarmlist_state = NewAlState }}
end.

handle_subscribe(Pid, Filter,
#state{ event_cb = EvtCB,
event_state = EvtState,
Expand Down

0 comments on commit 5885c90

Please sign in to comment.