fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/37457?usp=email )
Change subject: sctp_client: add type hints ......................................................................
sctp_client: add type hints
Change-Id: I89f237706dfbd6004e7644b3b68446fab7f31c7c --- M src/sctp_client.erl 1 file changed, 28 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw refs/changes/57/37457/1
diff --git a/src/sctp_client.erl b/src/sctp_client.erl index 24ec75d..ab02791 100644 --- a/src/sctp_client.erl +++ b/src/sctp_client.erl @@ -46,16 +46,33 @@
-include("s1ap.hrl").
+ +-type loc_addr() :: any | list() | inet:ip_address(). +-type rem_addr() :: localhost | list() | inet:ip_address(). +-type loc_rem_addr() :: {loc_addr(), rem_addr()}. +-type connect_result() :: {ok, gen_sctp:sctp_socket()}. +-type sock_aid() :: {gen_sctp:sctp_socket(), + gen_sctp:assoc_id()}. + +-export_type([loc_addr/0, + rem_addr/0, + loc_rem_addr/0, + connect_result/0, + sock_aid/0]). + %% ------------------------------------------------------------------ %% public API %% ------------------------------------------------------------------
+-spec connect() -> connect_result(). connect() -> connect({any, localhost}).
+-spec connect(loc_rem_addr()) -> connect_result(). connect(LocRemAddr) -> connect(LocRemAddr, ?S1AP_PORT).
+-spec connect(loc_rem_addr(), inet:port_number()) -> connect_result(). connect({LocAddrStr, RemAddr}, Port) when is_list(LocAddrStr) -> {ok, LocAddr} = inet:parse_address(LocAddrStr), connect({LocAddr, RemAddr}, Port); @@ -72,12 +89,14 @@ {ok, Sock}.
+-spec send_data(sock_aid(), binary()) -> ok | {error, term()}. send_data({Sock, Aid}, Data) -> gen_sctp:send(Sock, #sctp_sndrcvinfo{stream = ?S1AP_SCTP_STREAM, ppid = ?S1AP_SCTP_PPID, assoc_id = Aid}, Data).
+-spec disconnect(sock_aid()) -> ok | {error, term()}. disconnect({Sock, Aid}) -> gen_sctp:eof(Sock, #sctp_assoc_change{assoc_id = Aid}).