From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- .../src/text/megaco_pretty_text_encoder_prev3b.erl | 437 +++++++++++++++++++++ 1 file changed, 437 insertions(+) create mode 100644 lib/megaco/src/text/megaco_pretty_text_encoder_prev3b.erl (limited to 'lib/megaco/src/text/megaco_pretty_text_encoder_prev3b.erl') diff --git a/lib/megaco/src/text/megaco_pretty_text_encoder_prev3b.erl b/lib/megaco/src/text/megaco_pretty_text_encoder_prev3b.erl new file mode 100644 index 0000000000..44bdc4690d --- /dev/null +++ b/lib/megaco/src/text/megaco_pretty_text_encoder_prev3b.erl @@ -0,0 +1,437 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2005-2009. All Rights Reserved. +%% +%% 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 online 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. +%% +%% %CopyrightEnd% +%% + +%% +%%---------------------------------------------------------------------- +%%% Purpose: Encode PRETTY Megaco/H.248 text messages from internal form +%%---------------------------------------------------------------------- + +-module(megaco_pretty_text_encoder_prev3b). + +-export([encode_message/2, + encode_transaction/2, + encode_action_requests/2, + encode_action_request/2, + encode_command_request/2, + encode_action_reply/2]). + +-export([token_tag2string/1]). + +-include_lib("megaco/include/megaco.hrl"). +-include_lib("megaco/include/megaco_message_prev3b.hrl"). +-define(encoder_version_pre_prev3c,true). +-include("megaco_text_tokens.hrl"). + + +%%---------------------------------------------------------------------- +%% Convert a 'MegacoMessage' record into a binary +%% Return {ok, DeepIoList} | {error, Reason} +%%---------------------------------------------------------------------- + +encode_message(EC, MegaMsg) + when is_list(EC) andalso is_record(MegaMsg, 'MegacoMessage') -> + case (catch enc_MegacoMessage(MegaMsg)) of + {'EXIT', Reason} -> + {error, Reason}; + Bin when is_binary(Bin) -> + {ok, Bin}; + DeepIoList -> + Bin = erlang:list_to_binary(DeepIoList), + {ok, Bin} + end; +encode_message(EncodingConfig, MegaMsg) + when is_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 is_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 is_list(ActReqs) -> + case (catch enc_ActionRequests(ActReqs)) of + {'EXIT', Reason} -> + {error, Reason}; + Bin when is_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 is_record(ActReq, 'ActionRequest') -> + case (catch enc_ActionRequest(ActReq)) of + {'EXIT', Reason} -> + {error, Reason}; + Bin when is_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 is_record(CmdReq, 'CommandRequest') -> + case (catch enc_CommandRequest(CmdReq)) of + {'EXIT', Reason} -> + {error, Reason}; + Bin when is_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 is_record(ActRep, 'ActionReply') -> + case (catch enc_ActionReply(ActRep)) of + {'EXIT', Reason} -> + {error, Reason}; + Bin when is_binary(Bin) -> + {ok, Bin}; + DeepIoList -> + Bin = erlang:list_to_binary(DeepIoList), + {ok, Bin} + end. + + +%%---------------------------------------------------------------------- +%% A utility function to pretty print the tags found in a megaco message +%%---------------------------------------------------------------------- + +token_tag2string(addReq) -> ?PrettyAddToken; +token_tag2string(addReply) -> ?PrettyAddToken; +token_tag2string(auditDescriptor) -> ?PrettyAuditToken; +token_tag2string(auditCapRequest) -> ?PrettyAuditCapToken; +token_tag2string(auditCapReply) -> ?PrettyAuditCapToken; +token_tag2string(auditValueRequest) -> ?PrettyAuditValueToken; +token_tag2string(auditValueReply) -> ?PrettyAuditValueToken; +%% token_tag2string(X) -> ?PrettyAuthToken; +token_tag2string(both) -> ?PrettyBothToken; +token_tag2string(bothway) -> ?PrettyBothwayToken; +token_tag2string(brief) -> ?PrettyBriefToken; +%% token_tag2string(X) -> ?PrettyBufferToken; +%% token_tag2string(X) -> ?PrettyCtxToken; +%% token_tag2string(X) -> ?PrettyContextAttrToken; +%% token_tag2string(X) -> ?PrettyContextAuditToken; +%% token_tag2string(X) -> ?PrettyContextListToken; +token_tag2string(digitMapDescriptor) -> ?PrettyDigitMapToken; +token_tag2string(digitMapToken) -> ?PrettyDigitMapToken; +%% token_tag2string(X) -> ?PrettyDirectionToken; +%% token_tag2string(X) -> ?PrettyDiscardToken; +%% token_tag2string(X) -> ?PrettyDisconnectedToken; +%% token_tag2string(X) -> ?PrettyDelayToken; +token_tag2string(duration) -> ?PrettyDurationToken; +%% token_tag2string(X) -> ?PrettyEmbedToken; +token_tag2string(emergencyAudit) -> ?PrettyEmergencyToken; +%% token_tag2string(X) -> ?PrettyEmergencyOffToken; +token_tag2string(errorDescriptor) -> ?PrettyErrorToken; +token_tag2string(eventBufferDescriptor) -> ?PrettyEventBufferToken; +token_tag2string(eventBufferToken) -> ?PrettyEventBufferToken; +token_tag2string(eventsDescriptor) -> ?PrettyEventsToken; +token_tag2string(eventsToken) -> ?PrettyEventsToken; +token_tag2string(external) -> ?PrettyExternalToken; +%% token_tag2string(X) -> ?PrettyFailoverToken; +%% token_tag2string(X) -> ?PrettyForcedToken; +%% token_tag2string(X) -> ?PrettyGracefulToken; +%% token_tag2string(X) -> ?PrettyH221Token; +%% token_tag2string(X) -> ?PrettyH223Token; +%% token_tag2string(X) -> ?PrettyH226Token; +%% token_tag2string(X) -> ?PrettyHandOffToken; +token_tag2string(iepsCallind) -> ?PrettyIEPSToken; +%% token_tag2string(X) -> ?PrettyImmAckRequiredToken; +token_tag2string(inactive) -> ?PrettyInactiveToken; +token_tag2string(internal) -> ?PrettyInternalToken; +token_tag2string(onInterruptByEvent) -> ?PrettyInterruptByEventToken; +token_tag2string(onInterruptByNewSignalDescr) -> ?PrettyInterruptByNewSignalsDescrToken; +token_tag2string(isolate) -> ?PrettyIsolateToken; +token_tag2string(inSvc) -> ?PrettyInSvcToken; +token_tag2string(keepActive) -> ?PrettyKeepActiveToken; +token_tag2string(localDescriptor) -> ?PrettyLocalToken; +token_tag2string(localControlDescriptor) -> ?PrettyLocalControlToken; +token_tag2string(lockStep) -> ?PrettyLockStepToken; +token_tag2string(loopBack) -> ?PrettyLoopbackToken; +token_tag2string(mediaDescriptor) -> ?PrettyMediaToken; +token_tag2string(mediaToken) -> ?PrettyMediaToken; +%% token_tag2string(X) -> ?PrettyMegacopToken; +%% token_tag2string(X) -> ?PrettyMethodToken; +%% token_tag2string(X) -> ?PrettyMgcIdToken; +%% token_tag2string(X) -> ?PrettyModeToken; +token_tag2string(modReq) -> ?PrettyModifyToken; +token_tag2string(modReply) -> ?PrettyModifyToken; +token_tag2string(modemDescriptor) -> ?PrettyModemToken; +token_tag2string(modemToken) -> ?PrettyModemToken; +token_tag2string(moveReq) -> ?PrettyMoveToken; +token_tag2string(moveReply) -> ?PrettyMoveToken; +%% token_tag2string(X) -> ?PrettyMtpToken; +token_tag2string(muxDescriptor) -> ?PrettyMuxToken; +token_tag2string(muxToken) -> ?PrettyMuxToken; +token_tag2string(notifyReq) -> ?PrettyNotifyToken; +%% token_tag2string(X) -> ?PrettyNotifyCompletionToken; +%% token_tag2string(X) -> ?PrettyNx64kToken; +token_tag2string(observedEventsDescriptor) -> ?PrettyObservedEventsToken; +token_tag2string(observedEventsToken) -> ?PrettyObservedEventsToken; +token_tag2string(false) -> ?PrettyOffToken; +token_tag2string(off) -> ?PrettyOffToken; +token_tag2string(oneway) -> ?PrettyOnewayToken; +token_tag2string(onOff) -> ?PrettyOnOffToken; +token_tag2string(true) -> ?PrettyOnToken; +token_tag2string(otherReason) -> ?PrettyOtherReasonToken; +token_tag2string(outOfSvc) -> ?PrettyOutOfSvcToken; +token_tag2string(packagesDescriptor) -> ?PrettyPackagesToken; +token_tag2string(packagesToken) -> ?PrettyPackagesToken; +%% token_tag2string(X) -> ?PrettyPendingToken; +token_tag2string(priorityAudit) -> ?PrettyPriorityToken; +%% token_tag2string(X) -> ?PrettyProfileToken; +%% token_tag2string(X) -> ?PrettyReasonToken; +token_tag2string(recvOnly) -> ?PrettyRecvonlyToken; +%% token_tag2string(X) -> ?PrettyReplyToken; +%% token_tag2string(X) -> ?PrettyRequestIDToken; +%% token_tag2string(X) -> ?PrettyResponseAckToken; +%% token_tag2string(X) -> ?PrettyRestartToken; +token_tag2string(remoteDescriptor) -> ?PrettyRemoteToken; +%% token_tag2string(X) -> ?PrettyReservedGroupToken; +%% token_tag2string(X) -> ?PrettyReservedValueToken; +token_tag2string(sendOnly) -> ?PrettySendonlyToken; +token_tag2string(sendRecv) -> ?PrettySendrecvToken; +%% token_tag2string(X) -> ?PrettyServicesToken; +%% token_tag2string(X) -> ?PrettyServiceStatesToken; +token_tag2string(serviceChangeReq) -> ?PrettyServiceChangeToken; +%% token_tag2string(X) -> ?PrettyServiceChangeAddressToken; +token_tag2string(incomplete) -> ?PrettyServiceChangeIncompleteToken; +%% token_tag2string(X) -> ?PrettySignalListToken; +token_tag2string(signalsDescriptor) -> ?PrettySignalsToken; +token_tag2string(signalsToken) -> ?PrettySignalsToken; +%% token_tag2string(X) -> ?PrettySignalTypeToken; +token_tag2string(statisticsDescriptor) -> ?PrettyStatsToken; +token_tag2string(statsToken) -> ?PrettyStatsToken; +%% token_tag2string(X) -> ?PrettyStreamToken; +token_tag2string(subtractReq) -> ?PrettySubtractToken; +token_tag2string(subtractReply) -> ?PrettySubtractToken; +%% token_tag2string(X) -> ?PrettySynchISDNToken; +%% token_tag2string(X) -> ?PrettyTerminationStateToken; +token_tag2string(test) -> ?PrettyTestToken; +token_tag2string(timeOut) -> ?PrettyTimeOutToken; +token_tag2string(onTimeOut) -> ?PrettyTimeOutToken; +token_tag2string(topologyAudit) -> ?PrettyTopologyToken; +%% token_tag2string(X) -> ?PrettyTransToken; +%% token_tag2string(X) -> ?PrettyV18Token; +%% token_tag2string(X) -> ?PrettyV22Token; +%% token_tag2string(X) -> ?PrettyV22bisToken; +%% token_tag2string(X) -> ?PrettyV32Token; +%% token_tag2string(X) -> ?PrettyV32bisToken; +%% token_tag2string(X) -> ?PrettyV34Token; +%% token_tag2string(X) -> ?PrettyV76Token; +%% token_tag2string(X) -> ?PrettyV90Token; +%% token_tag2string(X) -> ?PrettyV91Token; +%% token_tag2string(X) -> ?PrettyVersionToken; +token_tag2string(_) -> []. + + +%%---------------------------------------------------------------------- +%% 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_prev3b.hrl"). + -- cgit v1.2.3