📄 megaco_pretty_text_encoder_v3.erl
字号:
%% ``The contents of this file are subject to the Erlang Public License,%% Version 1.1, (the "License"); you may not use this file except in%% compliance with the License. You should have received a copy of the%% Erlang Public License along with this software. If not, it can be%% retrieved via the world wide web at http://www.erlang.org/.%% %% Software distributed under the License is distributed on an "AS IS"%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See%% the License for the specific language governing rights and limitations%% under the License.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %% $Id$%%%%----------------------------------------------------------------------%%% Purpose: Encode PRETTY Megaco/H.248 text messages from internal form%%-----------------------------------------------------------------------module(megaco_pretty_text_encoder_v3).-export([encode_message/2, encode_transaction/2, encode_action_requests/2, encode_action_request/2, encode_command_request/2, encode_action_reply/2]).-include_lib("megaco/include/megaco.hrl").-include_lib("megaco/include/megaco_message_v3.hrl").-include("megaco_text_tokens.hrl").%%----------------------------------------------------------------------%% Convert a 'MegacoMessage' record into a binary%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_message([], MegaMsg) when record(MegaMsg, 'MegacoMessage') -> case catch enc_MegacoMessage(MegaMsg) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end;encode_message([{flex,_}], MegaMsg) when record(MegaMsg, 'MegacoMessage') -> case catch enc_MegacoMessage(MegaMsg) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end;encode_message(EncodingConfig, MegaMsg) when record(MegaMsg, 'MegacoMessage') -> {error, {bad_encoding_config, EncodingConfig}};encode_message(_EncodingConfig, _MegaMsg) -> {error, bad_megaco_message}. %%----------------------------------------------------------------------%% Convert a binary into a 'MegacoMessage' record%% Return {ok, MegacoMessageRecord} | {error, Reason}%% %% See megaco_pretty_text_encoder:decode_message/2%% %%----------------------------------------------------------------------%%----------------------------------------------------------------------%% Convert a transaction record into a deep io list%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_transaction(_EC, Trans) -> case (catch enc_Transaction(Trans)) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end.%%----------------------------------------------------------------------%% Convert a list of ActionRequest record's into a binary%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_action_requests(_EC, ActReqs) when list(ActReqs) -> case (catch enc_ActionRequests(ActReqs)) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end.%%----------------------------------------------------------------------%% Convert a ActionRequest record into a binary%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_action_request(_EC, ActReq) when record(ActReq, 'ActionRequest') -> case (catch enc_ActionRequest(ActReq)) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end.%%----------------------------------------------------------------------%% Convert a CommandRequest record into a deep io list%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_command_request(_EC, CmdReq) when record(CmdReq, 'CommandRequest') -> case (catch enc_CommandRequest(CmdReq)) of {'EXIT', Reason} -> {error, Reason}; Bin when binary(Bin) -> {ok, Bin}; DeepIoList -> Bin = erlang:list_to_binary(DeepIoList), {ok, Bin} end.%%----------------------------------------------------------------------%% Convert a action reply into a deep io list%% Return {ok, DeepIoList} | {error, Reason}%%----------------------------------------------------------------------encode_action_reply(_EC, ActRep) when record(ActRep, 'ActionReply') -> case (catch enc_ActionReply(ActRep)) of {'EXIT', Reason} -> {error, Reason}; DeepIoList -> {ok, DeepIoList} end.%%----------------------------------------------------------------------%% Define various macros used by the actual generator code%%-----------------------------------------------------------------------define(EQUAL, [?SpToken, ?EqualToken, ?SpToken]).-define(COLON, [?ColonToken]).-define(LBRKT, [?SpToken, ?LbrktToken, ?SpToken]).-define(RBRKT, [?SpToken, ?RbrktToken, ?SpToken]).-define(LSBRKT, [?SpToken, ?LsbrktToken, ?SpToken]).-define(RSBRKT, [?SpToken, ?RsbrktToken, ?SpToken]).-define(COMMA, [?CommaToken, ?SpToken]).-define(DOT, [?DotToken]).-define(SLASH, [?SlashToken]).-define(DQUOTE, [?DoubleQuoteToken]).-define(SP, [?SpToken]).-define(HTAB, [?HtabToken]).-define(CR, [?CrToken]).-define(LF, [?LfToken]).-define(LWSP, []).-define(EOL, ?LF).-define(WSP, ?SP).-define(SEP, ?WSP).-define(INIT_INDENT, []).-define(INC_INDENT(State), [?HtabToken | State]).-define(INDENT(State), [?LfToken | State]).-define(LBRKT_INDENT(State), [?SpToken, ?LbrktToken, ?INDENT(?INC_INDENT(State))]).-define(RBRKT_INDENT(State), [?INDENT(State), ?RbrktToken]).-define(LSBRKT_INDENT(State), [?SpToken, ?LsbrktToken, ?INDENT(?INC_INDENT(State))]).-define(RSBRKT_INDENT(State), [?INDENT(State), ?RsbrktToken]).-define(COMMA_INDENT(State), [?CommaToken, ?INDENT(State)]).-define(SEP_INDENT(_State), [?LfToken]).%%----------------------------------------------------------------------%% Define token macros%%-----------------------------------------------------------------------define(AddToken , ?PrettyAddToken).-define(AuditToken , ?PrettyAuditToken).-define(AuditCapToken , ?PrettyAuditCapToken).-define(AuditValueToken , ?PrettyAuditValueToken).-define(AuthToken , ?PrettyAuthToken).-define(BothToken , ?PrettyBothToken).-define(BothwayToken , ?PrettyBothwayToken).-define(BriefToken , ?PrettyBriefToken).-define(BufferToken , ?PrettyBufferToken).-define(CtxToken , ?PrettyCtxToken).-define(ContextAuditToken , ?PrettyContextAuditToken).-define(ContextAttrToken , ?PrettyContextAttrToken).-define(DigitMapToken , ?PrettyDigitMapToken).-define(DirectionToken , ?PrettyDirectionToken).-define(DiscardToken , ?PrettyDiscardToken).-define(DisconnectedToken , ?PrettyDisconnectedToken).-define(DelayToken , ?PrettyDelayToken).-define(DeleteToken , ?PrettyDeleteToken).-define(DurationToken , ?PrettyDurationToken).-define(EmbedToken , ?PrettyEmbedToken).-define(EmergencyToken , ?PrettyEmergencyToken).-define(EmergencyOffToken , ?PrettyEmergencyOffToken).-define(ErrorToken , ?PrettyErrorToken).-define(EventBufferToken , ?PrettyEventBufferToken).-define(EventsToken , ?PrettyEventsToken).-define(ExternalToken , ?PrettyExternalToken).-define(FailoverToken , ?PrettyFailoverToken).-define(ForcedToken , ?PrettyForcedToken).-define(GracefulToken , ?PrettyGracefulToken).-define(H221Token , ?PrettyH221Token).-define(H223Token , ?PrettyH223Token).-define(H226Token , ?PrettyH226Token).-define(HandOffToken , ?PrettyHandOffToken).-define(IEPSToken , ?PrettyIEPSToken).-define(ImmAckRequiredToken , ?PrettyImmAckRequiredToken).-define(InactiveToken , ?PrettyInactiveToken).-define(InternalToken , ?PrettyInternalToken).-define(IsolateToken , ?PrettyIsolateToken).-define(InSvcToken , ?PrettyInSvcToken).-define(InterruptByEventToken , ?PrettyInterruptByEventToken).-define(InterruptByNewSignalsDescrToken, ?PrettyInterruptByNewSignalsDescrToken).-define(KeepActiveToken , ?PrettyKeepActiveToken).-define(LocalToken , ?PrettyLocalToken).-define(LocalControlToken , ?PrettyLocalControlToken).-define(LockStepToken , ?PrettyLockStepToken).-define(LoopbackToken , ?PrettyLoopbackToken).-define(MediaToken , ?PrettyMediaToken).-define(MegacopToken , ?PrettyMegacopToken).-define(MethodToken , ?PrettyMethodToken).-define(MgcIdToken , ?PrettyMgcIdToken).-define(ModeToken , ?PrettyModeToken).-define(ModifyToken , ?PrettyModifyToken).-define(ModemToken , ?PrettyModemToken).-define(MoveToken , ?PrettyMoveToken).-define(MtpToken , ?PrettyMtpToken).-define(MuxToken , ?PrettyMuxToken).-define(NotifyToken , ?PrettyNotifyToken).-define(NotifyCompletionToken , ?PrettyNotifyCompletionToken).-define(Nx64kToken , ?PrettyNx64kToken).-define(ObservedEventsToken , ?PrettyObservedEventsToken).-define(OffToken , ?PrettyOffToken).-define(OnewayToken , ?PrettyOnewayToken).-define(OnOffToken , ?PrettyOnOffToken).-define(OnToken , ?PrettyOnToken).-define(OtherReasonToken , ?PrettyOtherReasonToken).-define(OutOfSvcToken , ?PrettyOutOfSvcToken).-define(PackagesToken , ?PrettyPackagesToken).-define(PendingToken , ?PrettyPendingToken).-define(PriorityToken , ?PrettyPriorityToken).-define(ProfileToken , ?PrettyProfileToken).-define(ReasonToken , ?PrettyReasonToken).-define(RecvonlyToken , ?PrettyRecvonlyToken).-define(ReplyToken , ?PrettyReplyToken).-define(RequestIDToken , ?PrettyRequestIDToken).-define(ResponseAckToken , ?PrettyResponseAckToken).-define(RestartToken , ?PrettyRestartToken).-define(RemoteToken , ?PrettyRemoteToken).-define(ReservedGroupToken , ?PrettyReservedGroupToken).-define(ReservedValueToken , ?PrettyReservedValueToken).-define(SendonlyToken , ?PrettySendonlyToken).-define(SendrecvToken , ?PrettySendrecvToken).-define(ServicesToken , ?PrettyServicesToken).-define(ServiceStatesToken , ?PrettyServiceStatesToken).-define(ServiceChangeToken , ?PrettyServiceChangeToken).-define(ServiceChangeAddressToken , ?PrettyServiceChangeAddressToken).-define(ServiceChangeIncompleteToken , ?PrettyServiceChangeIncompleteToken).-define(SignalListToken , ?PrettySignalListToken).-define(SignalsToken , ?PrettySignalsToken).-define(SignalTypeToken , ?PrettySignalTypeToken).-define(StatsToken , ?PrettyStatsToken).-define(StreamToken , ?PrettyStreamToken).-define(SubtractToken , ?PrettySubtractToken).-define(SynchISDNToken , ?PrettySynchISDNToken).-define(TerminationStateToken , ?PrettyTerminationStateToken).-define(TestToken , ?PrettyTestToken).-define(TimeOutToken , ?PrettyTimeOutToken).-define(TopologyToken , ?PrettyTopologyToken).-define(TransToken , ?PrettyTransToken).-define(V18Token , ?PrettyV18Token).-define(V22Token , ?PrettyV22Token).-define(V22bisToken , ?PrettyV22bisToken).-define(V32Token , ?PrettyV32Token).-define(V32bisToken , ?PrettyV32bisToken).-define(V34Token , ?PrettyV34Token).-define(V76Token , ?PrettyV76Token).-define(V90Token , ?PrettyV90Token).-define(V91Token , ?PrettyV91Token).-define(VersionToken , ?PrettyVersionToken).%%----------------------------------------------------------------------%% Include the generator code%%-----------------------------------------------------------------------include("megaco_text_gen_v3.hrl").
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -