diff options
Diffstat (limited to 'lib/megaco/src/text/megaco_compact_text_encoder.erl')
-rw-r--r-- | lib/megaco/src/text/megaco_compact_text_encoder.erl | 167 |
1 files changed, 137 insertions, 30 deletions
diff --git a/lib/megaco/src/text/megaco_compact_text_encoder.erl b/lib/megaco/src/text/megaco_compact_text_encoder.erl index 74638308da..ca1b9362fb 100644 --- a/lib/megaco/src/text/megaco_compact_text_encoder.erl +++ b/lib/megaco/src/text/megaco_compact_text_encoder.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2000-2016. All Rights Reserved. +%% Copyright Ericsson AB 2000-2020. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -63,22 +63,36 @@ encode_message(EncodingConfig, #'MegacoMessage'{mess = #'Message'{version = V}} = MegaMsg) -> encode_message(EncodingConfig, V, MegaMsg). +%% <BACKWARD-COMPAT-CLAUSE> encode_message([{version3,_}|EC], 1, MegaMsg) -> megaco_compact_text_encoder_v1:encode_message(EC, MegaMsg); +%% </BACKWARD-COMPAT-CLAUSE> + encode_message(EC, 1, MegaMsg) -> megaco_compact_text_encoder_v1:encode_message(EC, MegaMsg); + +%% <BACKWARD-COMPAT-CLAUSE> encode_message([{version3,_}|EC], 2, MegaMsg) -> megaco_compact_text_encoder_v2:encode_message(EC, MegaMsg); +%% </BACKWARD-COMPAT-CLAUSE> + encode_message(EC, 2, MegaMsg) -> megaco_compact_text_encoder_v2:encode_message(EC, MegaMsg); -encode_message([{version3,v3}|EC], 3, MegaMsg) -> - megaco_compact_text_encoder_v3:encode_message(EC, MegaMsg); + +%% <DEPRECATED> encode_message([{version3,prev3c}|EC], 3, MegaMsg) -> megaco_compact_text_encoder_prev3c:encode_message(EC, MegaMsg); encode_message([{version3,prev3b}|EC], 3, MegaMsg) -> megaco_compact_text_encoder_prev3b:encode_message(EC, MegaMsg); encode_message([{version3,prev3a}|EC], 3, MegaMsg) -> megaco_compact_text_encoder_prev3a:encode_message(EC, MegaMsg); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> +encode_message([{version3,v3}|EC], 3, MegaMsg) -> + megaco_compact_text_encoder_v3:encode_message(EC, MegaMsg); +%% </BACKWARD-COMPAT-CLAUSE> + encode_message(EC, 3, MegaMsg) -> megaco_compact_text_encoder_v3:encode_message(EC, MegaMsg); encode_message(_EC, V, _MegaMsg) -> @@ -124,27 +138,8 @@ decode_message([], _, Bin) when is_binary(Bin) -> {error, Reason, Line} -> %% OTP-4007 scan_error(Reason, Line, Bin) %% OTP-4007 end; -decode_message([{version3,v3}], _, Bin) when is_binary(Bin) -> - %% d("decode_message(v3) -> entry"), - case megaco_text_scanner:scan(Bin) of - {ok, Tokens, 1, _LastLine} -> - do_decode_message(?V1_PARSE_MOD, Tokens, Bin); - - {ok, Tokens, 2, _LastLine} -> - do_decode_message(?V2_PARSE_MOD, Tokens, Bin); - - {ok, Tokens, 3, _LastLine} -> - do_decode_message(?V3_PARSE_MOD, Tokens, Bin); - - {ok, _Tokens, V, _LastLine} -> - {error, {unsupported_version, V}}; - - {error, Reason, Tokens, Line} -> - scan_error(Reason, Line, Tokens, Bin); - {error, Reason, Line} -> %% OTP-4007 - scan_error(Reason, Line, Bin) %% OTP-4007 - end; +%% <DEPRECATED> decode_message([{version3,prev3c}], _, Bin) when is_binary(Bin) -> %% d("decode_message(prev3c) -> entry"), case megaco_text_scanner:scan(Bin) of @@ -208,9 +203,12 @@ decode_message([{version3,prev3a}], _, Bin) when is_binary(Bin) -> {error, Reason, Line} -> %% OTP-4007 scan_error(Reason, Line, Bin) %% OTP-4007 end; -decode_message([{flex, Port}], _, Bin) when is_binary(Bin) -> - %% d("decode_message(flex) -> entry"), - case megaco_flex_scanner:scan(Bin, Port) of +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> +decode_message([{version3,v3}], _, Bin) when is_binary(Bin) -> + %% d("decode_message(v3) -> entry"), + case megaco_text_scanner:scan(Bin) of {ok, Tokens, 1, _LastLine} -> do_decode_message(?V1_PARSE_MOD, Tokens, Bin); @@ -223,14 +221,16 @@ decode_message([{flex, Port}], _, Bin) when is_binary(Bin) -> {ok, _Tokens, V, _LastLine} -> {error, {unsupported_version, V}}; - %% {error, Reason, Tokens, Line} -> - %% scan_error(Reason, Line, Tokens, Bin); + {error, Reason, Tokens, Line} -> + scan_error(Reason, Line, Tokens, Bin); {error, Reason, Line} -> %% OTP-4007 scan_error(Reason, Line, Bin) %% OTP-4007 end; -decode_message([{version3,v3},{flex, Port}], _, Bin) when is_binary(Bin) -> - %% d("decode_message(v3,flex) -> entry"), +%% </BACKWARD-COMPAT-CLAUSE> + +decode_message([{flex, Port}], _, Bin) when is_binary(Bin) -> + %% d("decode_message(flex) -> entry"), case megaco_flex_scanner:scan(Bin, Port) of {ok, Tokens, 1, _LastLine} -> do_decode_message(?V1_PARSE_MOD, Tokens, Bin); @@ -250,6 +250,8 @@ decode_message([{version3,v3},{flex, Port}], _, Bin) when is_binary(Bin) -> {error, Reason, Line} -> %% OTP-4007 scan_error(Reason, Line, Bin) %% OTP-4007 end; + +%% <DEPRECATED> decode_message([{version3,prev3c},{flex, Port}], _, Bin) when is_binary(Bin) -> %% d("decode_message(prev3c,flex) -> entry"), case megaco_flex_scanner:scan(Bin, Port) of @@ -313,6 +315,32 @@ decode_message([{version3,prev3a},{flex, Port}], _, Bin) when is_binary(Bin) -> {error, Reason, Line} -> %% OTP-4007 scan_error(Reason, Line, Bin) %% OTP-4007 end; +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> +decode_message([{version3,v3},{flex, Port}], _, Bin) when is_binary(Bin) -> + %% d("decode_message(v3,flex) -> entry"), + case megaco_flex_scanner:scan(Bin, Port) of + {ok, Tokens, 1, _LastLine} -> + do_decode_message(?V1_PARSE_MOD, Tokens, Bin); + + {ok, Tokens, 2, _LastLine} -> + do_decode_message(?V2_PARSE_MOD, Tokens, Bin); + + {ok, Tokens, 3, _LastLine} -> + do_decode_message(?V3_PARSE_MOD, Tokens, Bin); + + {ok, _Tokens, V, _LastLine} -> + {error, {unsupported_version, V}}; + + %% {error, Reason, Tokens, Line} -> + %% scan_error(Reason, Line, Tokens, Bin); + + {error, Reason, Line} -> %% OTP-4007 + scan_error(Reason, Line, Bin) %% OTP-4007 + end; +%% <BACKWARD-COMPAT-CLAUSE> + decode_message(EC, _, Bin) when is_binary(Bin) -> {error, {bad_encoding_config, EC}}; decode_message(_EC, _, _BadBin) -> @@ -387,22 +415,37 @@ l2i(L) when is_list(L) -> %% Convert a transaction record into a deep io list %% Return {ok, DeepIoList} | {error, Reason} %%---------------------------------------------------------------------- + +%% <BACKWARD-COMPAT-CLAUSE> encode_transaction([{version3,_}|EC], 1, Trans) -> megaco_compact_text_encoder_v1:encode_transaction(EC, Trans); +%% </BACKWARD-COMPAT-CLAUSE> + encode_transaction(EC, 1, Trans) -> megaco_compact_text_encoder_v1:encode_transaction(EC, Trans); + +%% <BACKWARD-COMPAT-CLAUSE> encode_transaction([{version3,_}|EC], 2, Trans) -> megaco_compact_text_encoder_v2:encode_transaction(EC, Trans); +%% </BACKWARD-COMPAT-CLAUSE> + encode_transaction(EC, 2, Trans) -> megaco_compact_text_encoder_v2:encode_transaction(EC, Trans); + +%% <DEPRECATED> encode_transaction([{version3,prev3c}|EC], 3, Trans) -> megaco_compact_text_encoder_prev3c:encode_transaction(EC, Trans); encode_transaction([{version3,prev3b}|EC], 3, Trans) -> megaco_compact_text_encoder_prev3b:encode_transaction(EC, Trans); encode_transaction([{version3,prev3a}|EC], 3, Trans) -> megaco_compact_text_encoder_prev3a:encode_transaction(EC, Trans); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> encode_transaction([{version3,v3}|EC], 3, Trans) -> megaco_compact_text_encoder_v3:encode_transaction(EC, Trans); +%% </BACKWARD-COMPAT-CLAUSE> + encode_transaction(EC, 3, Trans) -> megaco_compact_text_encoder_v3:encode_transaction(EC, Trans); encode_transaction(_EC, V, _Trans) -> @@ -413,16 +456,26 @@ encode_transaction(_EC, V, _Trans) -> %% Convert a list of ActionRequest record's into a binary %% Return {ok, DeepIoList} | {error, Reason} %%---------------------------------------------------------------------- + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_requests([{version3,_}|EC], 1, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v1:encode_action_requests(EC, ActReqs); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_requests(EC, 1, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v1:encode_action_requests(EC, ActReqs); + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_requests([{version3,_}|EC], 2, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v2:encode_action_requests(EC, ActReqs); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_requests(EC, 2, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v2:encode_action_requests(EC, ActReqs); + +%% <DEPRECATED> encode_action_requests([{version3,prev3c}|EC], 3, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_prev3c:encode_action_requests(EC, ActReqs); @@ -432,9 +485,14 @@ encode_action_requests([{version3,prev3b}|EC], 3, ActReqs) encode_action_requests([{version3,prev3a}|EC], 3, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_prev3a:encode_action_requests(EC, ActReqs); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_requests([{version3,v3}|EC], 3, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v3:encode_action_requests(EC, ActReqs); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_requests(EC, 3, ActReqs) when is_list(ActReqs) -> megaco_compact_text_encoder_v3:encode_action_requests(EC, ActReqs); encode_action_requests(_EC, V, _ActReqs) -> @@ -445,22 +503,37 @@ encode_action_requests(_EC, V, _ActReqs) -> %% Convert a ActionRequest record into a binary %% Return {ok, DeepIoList} | {error, Reason} %%---------------------------------------------------------------------- + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_request([{version3,_}|EC], 1, ActReq) -> megaco_compact_text_encoder_v1:encode_action_request(EC, ActReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_request(EC, 1, ActReq) -> megaco_compact_text_encoder_v1:encode_action_request(EC, ActReq); + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_request([{version3,_}|EC], 2, ActReq) -> megaco_compact_text_encoder_v2:encode_action_request(EC, ActReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_request(EC, 2, ActReq) -> megaco_compact_text_encoder_v2:encode_action_request(EC, ActReq); + +%% <DEPRECATED> encode_action_request([{version3,prev3c}|EC], 3, ActReq) -> megaco_compact_text_encoder_prev3c:encode_action_request(EC, ActReq); encode_action_request([{version3,prev3b}|EC], 3, ActReq) -> megaco_compact_text_encoder_prev3b:encode_action_request(EC, ActReq); encode_action_request([{version3,prev3a}|EC], 3, ActReq) -> megaco_compact_text_encoder_prev3a:encode_action_request(EC, ActReq); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_request([{version3,v3}|EC], 3, ActReq) -> megaco_compact_text_encoder_v3:encode_action_request(EC, ActReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_request(EC, 3, ActReq) -> megaco_compact_text_encoder_v3:encode_action_request(EC, ActReq); encode_action_request(_EC, V, _ActReq) -> @@ -471,22 +544,37 @@ encode_action_request(_EC, V, _ActReq) -> %% Convert a CommandRequest record into a deep io list %% Return {ok, DeepIoList} | {error, Reason} %%---------------------------------------------------------------------- + +%% <BACKWARD-COMPAT-CLAUSE> encode_command_request([{version3,_}|EC], 1, CmdReq) -> megaco_compact_text_encoder_v1:encode_command_request(EC, CmdReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_command_request(EC, 1, CmdReq) -> megaco_compact_text_encoder_v1:encode_command_request(EC, CmdReq); + +%% <BACKWARD-COMPAT-CLAUSE> encode_command_request([{version3,_}|EC], 2, CmdReq) -> megaco_compact_text_encoder_v2:encode_command_request(EC, CmdReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_command_request(EC, 2, CmdReq) -> megaco_compact_text_encoder_v2:encode_command_request(EC, CmdReq); + +%% <DEPRECATED> encode_command_request([{version3,prev3c}|EC], 3, CmdReq) -> megaco_compact_text_encoder_prev3c:encode_command_request(EC, CmdReq); encode_command_request([{version3,prev3b}|EC], 3, CmdReq) -> megaco_compact_text_encoder_prev3b:encode_command_request(EC, CmdReq); encode_command_request([{version3,prev3a}|EC], 3, CmdReq) -> megaco_compact_text_encoder_prev3a:encode_command_request(EC, CmdReq); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> encode_command_request([{version3,v3}|EC], 3, CmdReq) -> megaco_compact_text_encoder_v3:encode_command_request(EC, CmdReq); +%% </BACKWARD-COMPAT-CLAUSE> + encode_command_request(EC, 3, CmdReq) -> megaco_compact_text_encoder_v3:encode_command_request(EC, CmdReq); encode_command_request(_EC, V, _CmdReq) -> @@ -497,22 +585,37 @@ encode_command_request(_EC, V, _CmdReq) -> %% Convert a action reply into a deep io list %% Return {ok, DeepIoList} | {error, Reason} %%---------------------------------------------------------------------- + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_reply([{version3,_}|EC], 1, ActRep) -> megaco_compact_text_encoder_v1:encode_action_reply(EC, ActRep); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_reply(EC, 1, ActRep) -> megaco_compact_text_encoder_v1:encode_action_reply(EC, ActRep); + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_reply([{version3,_}|EC], 2, ActRep) -> megaco_compact_text_encoder_v2:encode_action_reply(EC, ActRep); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_reply(EC, 2, ActRep) -> megaco_compact_text_encoder_v2:encode_action_reply(EC, ActRep); + +%% <DEPRECATED> encode_action_reply([{version3,prev3c}|EC], 3, ActRep) -> megaco_compact_text_encoder_prev3c:encode_action_reply(EC, ActRep); encode_action_reply([{version3,prev3b}|EC], 3, ActRep) -> megaco_compact_text_encoder_prev3b:encode_action_reply(EC, ActRep); encode_action_reply([{version3,prev3a}|EC], 3, ActRep) -> megaco_compact_text_encoder_prev3a:encode_action_reply(EC, ActRep); +%% </DEPRECATED> + +%% <BACKWARD-COMPAT-CLAUSE> encode_action_reply([{version3,v3}|EC], 3, ActRep) -> megaco_compact_text_encoder_v3:encode_action_reply(EC, ActRep); +%% </BACKWARD-COMPAT-CLAUSE> + encode_action_reply(EC, 3, ActRep) -> megaco_compact_text_encoder_v3:encode_action_reply(EC, ActRep); encode_action_reply(_EC, V, _ActRep) -> @@ -541,10 +644,14 @@ token_tag2string(Tag, 3) -> token_tag2string(Tag, v3); token_tag2string(Tag, v3) -> megaco_compact_text_encoder_v3:token_tag2string(Tag); + +%% <DEPRECATED> token_tag2string(Tag, prev3b) -> megaco_compact_text_encoder_prev3b:token_tag2string(Tag); token_tag2string(Tag, prev3c) -> megaco_compact_text_encoder_prev3c:token_tag2string(Tag); +%% </DEPRECATED> + token_tag2string(Tag, _Vsn) -> token_tag2string(Tag, ?TT2S_BEST_VERSION). |