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 + -
显示快捷键?