⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_compact_text_encoder_v3.erl

📁 OTP是开放电信平台的简称
💻 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 COMPACT Megaco/H.248 text messages from internal form%%-----------------------------------------------------------------------module(megaco_compact_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([_|T], MegaMsg) ->    encode_message(T, MegaMsg);encode_message(EncodingConfig, MegaMsg)   when record(MegaMsg, 'MegacoMessage')  ->    {error, {bad_encoding_config, EncodingConfig}};encode_message(_EncodingConfig, _MegaMsg) ->    {error, bad_megaco_message}.%%----------------------------------------------------------------------%% 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) ->    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,  [?EqualToken]).-define(COLON,  [?ColonToken]).-define(LBRKT,  [?LbrktToken]).-define(RBRKT,  [?RbrktToken]).-define(LSBRKT, [?LsbrktToken]).-define(RSBRKT, [?RsbrktToken]).-define(COMMA,  [?CommaToken]).-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),     State).-define(INDENT(State),         State).-define(LBRKT_INDENT(_State),  [?LbrktToken]).-define(RBRKT_INDENT(_State),  [?RbrktToken]).-define(LSBRKT_INDENT(_State), [?LsbrktToken]).-define(RSBRKT_INDENT(_State), [?RsbrktToken]).-define(COMMA_INDENT(_State),  [?CommaToken]).-define(SEP_INDENT(_State),    [?LfToken]).%%----------------------------------------------------------------------%% Define token macros%%-----------------------------------------------------------------------define(AddToken                   , ?CompactAddToken).-define(AuditToken                 , ?CompactAuditToken).-define(AuditCapToken              , ?CompactAuditCapToken).-define(AuditValueToken            , ?CompactAuditValueToken).-define(AuthToken                  , ?CompactAuthToken).-define(BothToken                  , ?CompactBothToken).-define(BothwayToken               , ?CompactBothwayToken).-define(BriefToken                 , ?CompactBriefToken).-define(BufferToken                , ?CompactBufferToken).-define(CtxToken                   , ?CompactCtxToken).-define(ContextAuditToken          , ?CompactContextAuditToken).-define(ContextAttrToken           , ?CompactContextAttrToken).-define(DigitMapToken              , ?CompactDigitMapToken).-define(DirectionToken             , ?CompactDirectionToken).-define(DiscardToken               , ?CompactDiscardToken).-define(DisconnectedToken          , ?CompactDisconnectedToken).-define(DelayToken                 , ?CompactDelayToken).-define(DeleteToken                , ?CompactDeleteToken).-define(DurationToken              , ?CompactDurationToken).-define(EmbedToken                 , ?CompactEmbedToken).-define(EmergencyToken             , ?CompactEmergencyToken).-define(EmergencyOffToken          , ?CompactEmergencyOffToken).-define(ErrorToken                 , ?CompactErrorToken).-define(EventBufferToken           , ?CompactEventBufferToken).-define(EventsToken                , ?CompactEventsToken).-define(ExternalToken              , ?CompactExternalToken).-define(FailoverToken              , ?CompactFailoverToken).-define(ForcedToken                , ?CompactForcedToken).-define(GracefulToken              , ?CompactGracefulToken).-define(H221Token                  , ?CompactH221Token).-define(H223Token                  , ?CompactH223Token).-define(H226Token                  , ?CompactH226Token).-define(HandOffToken               , ?CompactHandOffToken).-define(IEPSToken                  , ?CompactIEPSToken).-define(ImmAckRequiredToken        , ?CompactImmAckRequiredToken).-define(InactiveToken              , ?CompactInactiveToken).-define(InternalToken              , ?CompactInternalToken).-define(InterruptByEventToken      , ?CompactInterruptByEventToken).-define(InterruptByNewSignalsDescrToken, ?CompactInterruptByNewSignalsDescrToken).-define(IsolateToken               , ?CompactIsolateToken).-define(InSvcToken                 , ?CompactInSvcToken).-define(KeepActiveToken            , ?CompactKeepActiveToken).-define(LocalToken                 , ?CompactLocalToken).-define(LocalControlToken          , ?CompactLocalControlToken).-define(LockStepToken              , ?CompactLockStepToken).-define(LoopbackToken              , ?CompactLoopbackToken).-define(MediaToken                 , ?CompactMediaToken).-define(MegacopToken               , ?CompactMegacopToken).-define(MethodToken                , ?CompactMethodToken).-define(MgcIdToken                 , ?CompactMgcIdToken).-define(ModeToken                  , ?CompactModeToken).-define(ModifyToken                , ?CompactModifyToken).-define(ModemToken                 , ?CompactModemToken).-define(MoveToken                  , ?CompactMoveToken).-define(MtpToken                   , ?CompactMtpToken).-define(MuxToken                   , ?CompactMuxToken).-define(NotifyToken                , ?CompactNotifyToken).-define(NotifyCompletionToken      , ?CompactNotifyCompletionToken).-define(Nx64kToken                 , ?CompactNx64kToken).-define(ObservedEventsToken        , ?CompactObservedEventsToken).-define(OffToken                   , ?CompactOffToken).-define(OnewayToken                , ?CompactOnewayToken).-define(OnOffToken                 , ?CompactOnOffToken).-define(OnToken                    , ?CompactOnToken).-define(OtherReasonToken           , ?CompactOtherReasonToken).-define(OutOfSvcToken              , ?CompactOutOfSvcToken).-define(PackagesToken              , ?CompactPackagesToken).-define(PendingToken               , ?CompactPendingToken).-define(PriorityToken              , ?CompactPriorityToken).-define(ProfileToken               , ?CompactProfileToken).-define(ReasonToken                , ?CompactReasonToken).-define(RecvonlyToken              , ?CompactRecvonlyToken).-define(ReplyToken                 , ?CompactReplyToken).-define(ResponseAckToken           , ?CompactResponseAckToken).-define(RestartToken               , ?CompactRestartToken).-define(RemoteToken                , ?CompactRemoteToken).-define(RequestIDToken             , ?CompactRequestIDToken).-define(ReservedGroupToken         , ?CompactReservedGroupToken).-define(ReservedValueToken         , ?CompactReservedValueToken).-define(SendonlyToken              , ?CompactSendonlyToken).-define(SendrecvToken              , ?CompactSendrecvToken).-define(ServicesToken              , ?CompactServicesToken).-define(ServiceStatesToken         , ?CompactServiceStatesToken).-define(ServiceChangeToken         , ?CompactServiceChangeToken).-define(ServiceChangeAddressToken  , ?CompactServiceChangeAddressToken).-define(ServiceChangeIncompleteToken , ?CompactServiceChangeIncompleteToken).-define(SignalListToken            , ?CompactSignalListToken).-define(SignalsToken               , ?CompactSignalsToken).-define(SignalTypeToken            , ?CompactSignalTypeToken).-define(StatsToken                 , ?CompactStatsToken).-define(StreamToken                , ?CompactStreamToken).-define(SubtractToken              , ?CompactSubtractToken).-define(SynchISDNToken             , ?CompactSynchISDNToken).-define(TerminationStateToken      , ?CompactTerminationStateToken).-define(TestToken                  , ?CompactTestToken).-define(TimeOutToken               , ?CompactTimeOutToken).-define(TopologyToken              , ?CompactTopologyToken).-define(TransToken                 , ?CompactTransToken).-define(V18Token                   , ?CompactV18Token).-define(V22Token                   , ?CompactV22Token).-define(V22bisToken                , ?CompactV22bisToken).-define(V32Token                   , ?CompactV32Token).-define(V32bisToken                , ?CompactV32bisToken).-define(V34Token                   , ?CompactV34Token).-define(V76Token                   , ?CompactV76Token).-define(V90Token                   , ?CompactV90Token).-define(V91Token                   , ?CompactV91Token).-define(VersionToken               , ?CompactVersionToken).%%----------------------------------------------------------------------%% Include the generator code%%-----------------------------------------------------------------------include("megaco_text_gen_v3.hrl").

⌨️ 快捷键说明

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