megaco_per_bin_encoder.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 434 行 · 第 1/2 页

ERL
434
字号
%%     AsnMod   = ?V1_ASN1_MOD, %%     TransMod = ?V1_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod, %% 					     io_list);%% encode_transaction([driver|EC], 1, Trans) ->%%     AsnMod   = ?V1_ASN1_MOD_DRV, %%     TransMod = ?V1_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod, %% 					     io_list);encode_transaction(_EC, 1, _Trans) ->    %%     AsnMod   = ?V1_ASN1_MOD,     %%     TransMod = ?V1_TRANS_MOD,    %%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,     %% 					     io_list);    {error, not_implemented};%% encode_transaction([] = EC, 2, Trans) ->%%     AsnMod   = ?V2_ASN1_MOD, %%     TransMod = ?V2_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%% 					     io_list);%% encode_transaction([native] = EC, 2, Trans) ->%%     AsnMod   = ?V2_ASN1_MOD, %%     TransMod = ?V2_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%% 					     io_list);%% encode_transaction([driver|EC], 2, Trans) ->%%     AsnMod   = ?V2_ASN1_MOD_DRV, %%     TransMod = ?V2_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%% 					     io_list);encode_transaction(_EC, 2, _Trans) ->    %%     AsnMod   = ?V2_ASN1_MOD,     %%     TransMod = ?V2_TRANS_MOD,    %%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,    %% 					     io_list).    {error, not_implemented};                                                                                %% encode_transaction([] = EC, 3, Trans) ->%%     AsnMod   = ?V3_ASN1_MOD,%%     TransMod = ?V3_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%%                                           io_list);%% encode_transaction([native] = EC, 3, Trans) ->%%     AsnMod   = ?V3_ASN1_MOD,%%     TransMod = ?V3_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%%                                           io_list);%% encode_transaction([driver|EC], 3, Trans) ->%%     AsnMod   = ?V3_ASN1_MOD_DRV,%%     TransMod = ?V3_TRANS_MOD,%%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,%%                                           io_list);encode_transaction(_EC, 3, _Trans) ->    %%     AsnMod   = ?V3_ASN1_MOD,    %%     TransMod = ?V3_TRANS_MOD,    %%     ?BIN_LIB:encode_transaction(EC, Trans, AsnMod, TransMod,    %%                                       io_list).    {error, not_implemented}.%%----------------------------------------------------------------------%% Convert a list of ActionRequest record's into a binary%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_action_requests(_EC, 1, ActReqs) when list(ActReqs) ->    %%     ?BIN_LIB:encode_action_requests(EC, ActReqs,    %% 						 ?V1_ASN1_MOD,     %% 						 ?V1_TRANS_MOD,    %% 						 io_list);    {error, not_implemented};encode_action_requests(_EC, 2, ActReqs) when list(ActReqs) ->    %%     ?BIN_LIB:encode_action_requests(EC, ActReqs,    %% 						 ?V1_ASN1_MOD,     %% 						 ?V1_TRANS_MOD,    %% 						 io_list).    {error, not_implemented};encode_action_requests(_EC, 3, ActReqs) when list(ActReqs) ->    %%     ?BIN_LIB:encode_action_requests(EC, ActReqs,    %% 						 ?V1_ASN1_MOD,     %% 						 ?V1_TRANS_MOD,    %% 						 io_list).    {error, not_implemented}.%%----------------------------------------------------------------------%% Convert a ActionRequest record into a binary%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_action_request(_EC, 1, _ActReq) ->    %%     ?BIN_LIB:encode_action_request(EC, ActReq,    %% 						?V1_ASN1_MOD,     %% 						?V1_TRANS_MOD,    %% 						io_list);    {error, not_implemented};encode_action_request(_EC, 2, _ActReq) ->    %%     ?BIN_LIB:encode_action_request(EC, ActReq,    %% 						?V1_ASN1_MOD,     %% 						?V1_TRANS_MOD,    %% 						io_list).    {error, not_implemented};encode_action_request(_EC, 3, _ActReq) ->    %%     ?BIN_LIB:encode_action_request(EC, ActReq,    %% 						?V1_ASN1_MOD,     %% 						?V1_TRANS_MOD,    %% 						io_list).    {error, not_implemented}.%%----------------------------------------------------------------------%% Convert a binary into a 'MegacoMessage' record%% Return {ok, MegacoMessageRecord} | {error, Reason}%%----------------------------------------------------------------------decode_message(EC, Binary) ->    decode_message(EC, 1, Binary).%% PER does not support partial decode, so this means V1decode_message(EC, dynamic, Binary) ->    decode_message(EC, 1, Binary);%% -- Version 1 --decode_message([{version3,_},driver|EC], 1, Binary) ->    AsnMod   = ?V1_ASN1_MOD_DRV,     TransMod = ?V1_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 1, Binary) ->    AsnMod   = ?V1_ASN1_MOD_DRV,     TransMod = ?V1_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,_}|EC], 1, Binary) ->    AsnMod   = ?V1_ASN1_MOD,     TransMod = ?V1_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% All values we need to take (special) care of has been delt with, %% so just pass the rest ondecode_message(EC, 1, Binary) ->    AsnMod   = ?V1_ASN1_MOD,     TransMod = ?V1_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% -- Version 2 --decode_message([{version3,_},driver|EC], 2, Binary) ->    AsnMod   = ?V2_ASN1_MOD_DRV,     TransMod = ?V2_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 2, Binary) ->    AsnMod   = ?V2_ASN1_MOD_DRV,     TransMod = ?V2_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,_}|EC], 2, Binary) ->    AsnMod   = ?V2_ASN1_MOD,     TransMod = ?V2_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% All values we need to take (special) care of has been delt with, %% so just pass the rest ondecode_message(EC, 2, Binary) ->    AsnMod   = ?V2_ASN1_MOD,     TransMod = ?V2_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% -- Version 3 --decode_message([{version3,prev3c},driver|EC], 3, Binary) ->    AsnMod   = ?PREV3C_ASN1_MOD_DRV,     TransMod = ?PREV3C_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3b},driver|EC], 3, Binary) ->    AsnMod   = ?PREV3B_ASN1_MOD_DRV,     TransMod = ?PREV3B_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3a},driver|EC], 3, Binary) ->    AsnMod   = ?PREV3A_ASN1_MOD_DRV,     TransMod = ?PREV3A_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,v3},driver|EC], 3, Binary) ->    AsnMod   = ?V3_ASN1_MOD_DRV,     TransMod = ?V3_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 3, Binary) ->    AsnMod   = ?V3_ASN1_MOD_DRV,     TransMod = ?V3_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3c}|EC], 3, Binary) ->    AsnMod   = ?PREV3C_ASN1_MOD,     TransMod = ?PREV3C_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3b}|EC], 3, Binary) ->    AsnMod   = ?PREV3B_ASN1_MOD,     TransMod = ?PREV3B_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3a}|EC], 3, Binary) ->    AsnMod   = ?PREV3A_ASN1_MOD,     TransMod = ?PREV3A_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,v3}|EC], 3, Binary) ->    AsnMod   = ?V3_ASN1_MOD,     TransMod = ?V3_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% All values we need to take (special) care of has been delt with, %% so just pass the rest ondecode_message(EC, 3, Binary) ->    AsnMod   = ?V3_ASN1_MOD,     TransMod = ?V3_TRANS_MOD,     ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary).decode_mini_message(_EC, _Vsn, _Bin) ->    {error, not_implemented}.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?