sdlan/src/sdlan_domain_regedit.erl
2026-04-02 14:26:48 +08:00

36 lines
1.0 KiB
Erlang

%%%-------------------------------------------------------------------
%%% @author anlicheng
%%% @copyright (C) 2025, <COMPANY>
%%% @doc
%%% 内部地址协议注册表
%%% @end
%%% Created : 13. 12月 2025 21:09
%%%-------------------------------------------------------------------
-module(sdlan_domain_regedit).
-author("anlicheng").
%% API
-export([init/0, insert/1, maybe_domain/1]).
-define(TABLE, sdlan_domain_regedit).
init() ->
ets:new(?TABLE, [named_table, ordered_set, public, {read_concurrency, true}, {write_concurrency, true}]).
-spec maybe_domain(QName :: binary()) -> boolean().
maybe_domain(QName) when is_binary(QName) ->
case binary:split(QName, <<".">>) of
[_, Domain] ->
case ets:lookup(?TABLE, Domain) of
[{Domain}] ->
true;
[] ->
false
end;
_ ->
false
end.
-spec insert(Domain :: binary()) -> no_return().
insert(Domain) when is_binary(Domain) ->
true = ets:insert(?TABLE, {Domain}).