Current section

Files

Jump to
smppex lib smppex protocol command_names.ex
Raw

lib/smppex/protocol/command_names.ex

defmodule SMPPEX.Protocol.CommandNames do
@moduledoc false
command_ids = [
{:generic_nack, 0x80000000},
{:bind_receiver, 0x00000001},
{:bind_receiver_resp, 0x80000001},
{:bind_transmitter, 0x00000002},
{:bind_transmitter_resp, 0x80000002},
{:query_sm, 0x00000003},
{:query_sm_resp, 0x80000003},
{:submit_sm, 0x00000004},
{:submit_sm_resp, 0x80000004},
{:deliver_sm, 0x00000005},
{:deliver_sm_resp, 0x80000005},
{:unbind, 0x00000006},
{:unbind_resp, 0x80000006},
{:replace_sm, 0x00000007},
{:replace_sm_resp, 0x80000007},
{:cancel_sm, 0x00000008},
{:cancel_sm_resp, 0x80000008},
{:bind_transceiver, 0x00000009},
{:bind_transceiver_resp, 0x80000009},
{:outbind, 0x0000000B},
{:enquire_link, 0x00000015},
{:enquire_link_resp, 0x80000015},
{:submit_multi, 0x00000021},
{:submit_multi_resp, 0x80000021},
{:alert_notification, 0x00000102},
{:data_sm, 0x00000103},
{:data_sm_resp, 0x80000103}
]
@spec name_by_id(integer) :: :unknown | {:ok, atom}
@spec id_by_name(atom) :: :unknown | {:ok, non_neg_integer}
for {name, id} <- command_ids do
def name_by_id(unquote(id)) do
{:ok, unquote(name)}
end
def id_by_name(unquote(name)) do
{:ok, unquote(id)}
end
end
def name_by_id(_) do
:unknown
end
def id_by_name(_) do
:unknown
end
end