View Source ExTimer (ex_timer v1.0.0)
ExTimer module.
Summary
Functions
add new timer to send msg after time milliseconds.
delete all the registerd timers.
return true if found the timer at the given msg, otherwise return false
delete the previous registerd timer.
Types
@type state() :: %{ :elapsed_ticks => time_ms(), :timers => [timer_node()], optional(any()) => any() }
@type time_ms() :: ExTimer.Node.time_ms()
@type timer_node() :: ExTimer.Node.t()
@type timer_node_msg() :: ExTimer.Node.msg()
Functions
@spec add(state(), timer_node_msg(), time_ms()) :: state()
add new timer to send msg after time milliseconds.
Examples
iex> state = %{timers: [], elapsed_ticks: 0} %{elapsed_ticks: 0, timers: []} iex> state = ExTimer.add(state, {:handler, :name, "uhaha"}, 2000) %{
elapsed_ticks: 0,
timers: [%ExTimer.Node{delay: 2000, msg: {:handler, :name, "uhaha"}}]
} iex> [timer] = state.timers [%ExTimer.Node{delay: 2000, msg: {:handler, :name, "uhaha"}}] iex> timer.msg == {:handler, :name, "uhaha"} true iex> timer.delay == 2000 true
delete all the registerd timers.
Examples
iex> state = %{timers: [%ExTimer.Node{msg: {:handler, :name, "uhaha"}, delay: 2000}], elapsed_ticks: 0} %{
elapsed_ticks: 0,
timers: [%ExTimer.Node{delay: 2000, msg: {:handler, :name, "uhaha"}}]
} iex> ExTimer.clear(state) %{timers: [], elapsed_ticks: 0}
@spec exist?(state(), timer_node_msg()) :: boolean()
return true if found the timer at the given msg, otherwise return false
Examples
iex> state = %{timers: [%ExTimer.Node{msg: {:handler, :name, "uhaha"}, delay: 2000}], elapsed_ticks: 0} %{
elapsed_ticks: 0,
timers: [%ExTimer.Node{delay: 2000, msg: {:handler, :name, "uhaha"}}]
} iex> ExTimer.exist?(state, {:handler, :name, "uhaha"}) true
@spec remove(state(), timer_node_msg()) :: state()
delete the previous registerd timer.
Examples
iex> state = %{timers: [%ExTimer.Node{msg: {:handler, :name, "uhaha"}, delay: 2000}], elapsed_ticks: 0} %{
elapsed_ticks: 0,
timers: [%ExTimer.Node{delay: 2000, msg: {:handler, :name, "uhaha"}}]
} iex> ExTimer.remove(state, {:handler, :name, "uhaha"}) %{timers: [], elapsed_ticks: 0}