Packages
smppex
2.4.0
3.3.0
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
retired
3.1.0
retired
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.4.0
2.3.3
2.3.2
2.3.1
2.3.0
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
1.0.1
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
SMPP 3.4 protocol and framework implemented in Elixir
Current section
Files
Jump to
Current section
Files
lib/smppex/compat.ex
defmodule SMPPEX.Compat do
@moduledoc false
alias :ets, as: ETS
@spec monotonic_time() :: integer
otp_release = :erlang.system_info(:otp_release)
case :string.to_integer(otp_release) do
{17, ''} ->
def monotonic_time do
{mega, sec, micro} = :erlang.now()
(mega * 1_000_000 + sec) * 1000 + div(micro, 1000)
end
{n, ''} when n >= 18 ->
def monotonic_time do
:erlang.monotonic_time(:milli_seconds)
end
_ ->
raise "OTP version #{otp_release} is not supported"
end
@spec to_charlist(term) :: list
if System.version() |> Version.match?(">= 1.3.0") do
def to_charlist(s), do: Kernel.to_charlist(s)
else
def to_charlist(s), do: Kernel.to_char_list(s)
end
@spec ets_take(tab :: :ets.tab(), key :: term) :: [tuple]
case :string.to_integer(otp_release) do
{17, ''} ->
def ets_take(tab, key) do
objects = ETS.lookup(tab, key)
true = ETS.delete(tab, key)
objects
end
{n, ''} when n >= 18 ->
def ets_take(tab, key) do
ETS.take(tab, key)
end
_ ->
raise "OTP version #{otp_release} is not supported"
end
end