megaco_binary_encoder.erl

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

ERL
570
字号
    Decoders = [{megaco_ber_bin_drv_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_drv_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_drv_media_gateway_control_prev3c,		 megaco_binary_transformer_prev3c}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,prev3b},driver|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_drv_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_drv_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_drv_media_gateway_control_prev3b,		 megaco_binary_transformer_prev3b}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,prev3a},driver|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_drv_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_drv_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_drv_media_gateway_control_prev3a,		 megaco_binary_transformer_prev3a}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,v3},driver|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_drv_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_drv_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_drv_media_gateway_control_v3,		 megaco_binary_transformer_v3}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([driver|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_drv_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_drv_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_drv_media_gateway_control_v3,		 megaco_binary_transformer_v3}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,prev3c}|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_media_gateway_control_prev3c,		 megaco_binary_transformer_prev3c}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,prev3b}|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_media_gateway_control_prev3b,		 megaco_binary_transformer_prev3b}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,prev3a}|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_media_gateway_control_prev3a,		 megaco_binary_transformer_prev3a}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message([{version3,v3}|EC], dynamic, Binary) ->    Decoders = [{megaco_ber_bin_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_media_gateway_control_v3,		 megaco_binary_transformer_v3}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);decode_message(EC, dynamic, Binary) ->    Decoders = [{megaco_ber_bin_media_gateway_control_v1,		 megaco_binary_transformer_v1},		{megaco_ber_bin_media_gateway_control_v2,		 megaco_binary_transformer_v2},		{megaco_ber_bin_media_gateway_control_v3,		 megaco_binary_transformer_v3}],    ?BIN_LIB:decode_message_dynamic(EC, Binary, Decoders, binary);%% -- Version 1 -- decode_message([{version3,_},driver|EC], 1, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v1,    TransMod = megaco_binary_transformer_v1,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 1, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v1,    TransMod = megaco_binary_transformer_v1,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,_}|EC], 1, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v1,    TransMod = megaco_binary_transformer_v1,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message(EC, 1, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v1,    TransMod = megaco_binary_transformer_v1,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% -- Version 2 -- decode_message([{version3,_},driver|EC], 2, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v2,    TransMod = megaco_binary_transformer_v2,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 2, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v2,    TransMod = megaco_binary_transformer_v2,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,_}|EC], 2, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v2,    TransMod = megaco_binary_transformer_v2,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message(EC, 2, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v2,    TransMod = megaco_binary_transformer_v2,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);%% -- Version 3 -- decode_message([{version3,prev3c},driver|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_prev3c,    TransMod = megaco_binary_transformer_prev3c,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3b},driver|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_prev3b,    TransMod = megaco_binary_transformer_prev3b,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3a},driver|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_prev3a,    TransMod = megaco_binary_transformer_prev3a,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,v3},driver|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v3,    TransMod = megaco_binary_transformer_v3,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([driver|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_drv_media_gateway_control_v3,    TransMod = megaco_binary_transformer_v3,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3c}|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_prev3c,    TransMod = megaco_binary_transformer_prev3c,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3b}|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_prev3b,    TransMod = megaco_binary_transformer_prev3b,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,prev3a}|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_prev3a,    TransMod = megaco_binary_transformer_prev3a,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message([{version3,v3}|EC], 3, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v3,    TransMod = megaco_binary_transformer_v3,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary);decode_message(EC, 3, Binary) ->    AsnMod   = megaco_ber_bin_media_gateway_control_v3,    TransMod = megaco_binary_transformer_v3,    ?BIN_LIB:decode_message(EC, Binary, AsnMod, TransMod, binary).decode_mini_message([{version3,prev3c},driver|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_drv_media_gateway_control_v1,	    megaco_ber_bin_drv_media_gateway_control_v2,	    megaco_ber_bin_drv_media_gateway_control_prev3c],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,prev3b},driver|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_drv_media_gateway_control_v1,	    megaco_ber_bin_drv_media_gateway_control_v2,	    megaco_ber_bin_drv_media_gateway_control_prev3b],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,prev3a},driver|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_drv_media_gateway_control_v1,	    megaco_ber_bin_drv_media_gateway_control_v2,	    megaco_ber_bin_drv_media_gateway_control_prev3a],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,v3},driver|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_drv_media_gateway_control_v1,	    megaco_ber_bin_drv_media_gateway_control_v2,	    megaco_ber_bin_drv_media_gateway_control_v3],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([driver|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_drv_media_gateway_control_v1,	    megaco_ber_bin_drv_media_gateway_control_v2,	    megaco_ber_bin_drv_media_gateway_control_v3],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,prev3c}|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_media_gateway_control_v1,	    megaco_ber_bin_media_gateway_control_v2,	    megaco_ber_bin_media_gateway_control_prev3c],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,prev3b}|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_media_gateway_control_v1,	    megaco_ber_bin_media_gateway_control_v2,	    megaco_ber_bin_media_gateway_control_prev3b],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,prev3a}|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_media_gateway_control_v1,	    megaco_ber_bin_media_gateway_control_v2,	    megaco_ber_bin_media_gateway_control_prev3a],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,v3}|EC], dynamic, Bin) ->    Mods = [megaco_ber_bin_media_gateway_control_v1,	    megaco_ber_bin_media_gateway_control_v2,	    megaco_ber_bin_media_gateway_control_v3],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message(EC, dynamic, Bin) ->    Mods = [megaco_ber_bin_media_gateway_control_v1,	    megaco_ber_bin_media_gateway_control_v2,	    megaco_ber_bin_media_gateway_control_v3],    ?BIN_LIB:decode_mini_message_dynamic(EC, Bin, Mods, binary);decode_mini_message([{version3,_},driver|EC], 1, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v1,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([driver|EC], 1, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v1,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,_}|EC], 1, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v1,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message(EC, 1, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v1,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,_},driver|EC], 2, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v2,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([driver|EC], 2, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v2,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,_}|EC], 2, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v2,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message(EC, 2, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v2,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3c},driver|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_prev3c,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3b},driver|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_prev3b,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3a},driver|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_prev3a,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,v3},driver|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v3,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([driver|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_drv_media_gateway_control_v3,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3c}|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_prev3c,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3b}|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_prev3b,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,prev3a}|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_prev3a,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message([{version3,v3}|EC], 3, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v3,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary);decode_mini_message(EC, 3, Bin) ->    AsnMod = megaco_ber_bin_media_gateway_control_v3,    ?BIN_LIB:decode_mini_message(EC, Bin, AsnMod, binary).

⌨️ 快捷键说明

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