aboutsummaryrefslogtreecommitdiffstats
path: root/lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl
downloadotp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2
otp-84adefa331c4159d432d22840663c38f155cd4c1.zip
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl')
-rw-r--r--lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl297
1 files changed, 297 insertions, 0 deletions
diff --git a/lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl b/lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl
new file mode 100644
index 0000000000..a45d35cc43
--- /dev/null
+++ b/lib/megaco/src/text/megaco_compact_text_encoder_prev3a.erl
@@ -0,0 +1,297 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-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 COMPACT Megaco/H.248 text messages from internal form
+%%----------------------------------------------------------------------
+
+-module(megaco_compact_text_encoder_prev3a).
+
+-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_prev3a.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 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) ->
+ 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.
+
+
+%%----------------------------------------------------------------------
+%% 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_prev3a.hrl").
+