refactor(gw): remove needless modules

This commit is contained in:
JianBo He 2021-07-20 14:58:39 +08:00
parent 21796314f3
commit 18eaadae08
2 changed files with 0 additions and 1212 deletions

View File

@ -1,65 +0,0 @@
%%--------------------------------------------------------------------
%% Copyright (c) 2020-2021 EMQ Technologies Co., Ltd. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%--------------------------------------------------------------------
-module(emqx_sn_asleep_timer).
-export([ init/0
, ensure/2
, cancel/1
]).
-record(asleep_state, {
%% Time internal (seconds)
duration :: integer(),
%% Timer reference
tref :: reference() | undefined
}).
-type(asleep_state() :: #asleep_state{}).
-export_type([asleep_state/0]).
%%--------------------------------------------------------------------
%% APIs
%%--------------------------------------------------------------------
-spec(init() -> asleep_state()).
init() ->
#asleep_state{duration = 0}.
-spec(ensure(undefined | integer(), asleep_state()) -> asleep_state()).
ensure(undefined, State = #asleep_state{duration = Duration}) ->
ensure(Duration, State);
ensure(Duration, State) ->
cancel(State),
State#asleep_state{duration = Duration, tref = start(Duration)}.
%%--------------------------------------------------------------------
%% Internal funcs
%%--------------------------------------------------------------------
-compile({inline, [start/1, cancel/1]}).
start(Duration) ->
erlang:send_after(timer:seconds(Duration), self(), asleep_timeout).
cancel(#asleep_state{tref = Timer}) when is_reference(Timer) ->
case erlang:cancel_timer(Timer) of
false ->
receive {timeout, Timer, _} -> ok after 0 -> ok end;
_ -> ok
end;
cancel(_) -> ok.

File diff suppressed because it is too large Load Diff