megaco_text_gen_v2.hrl

来自「OTP是开放电信平台的简称」· HRL 代码 · 共 2,255 行 · 第 1/5 页

HRL
2,255
字号
    PkgdName = ?META_ENC(event, Val#'RequestedEvent'.pkgdName),%%     d("enc_RequestedEvent -> entry with"%%       "~n   PkgdName: ~p", [PkgdName]),    [     enc_PkgdName(PkgdName, State),     enc_opt_brackets(       enc_list([{[Val#'RequestedEvent'.streamID],  fun enc_eventStream/2},		 {Val#'RequestedEvent'.evParList, fun enc_eventOther/2} |		 decompose_requestedActions(Val#'RequestedEvent'.eventAction)],		?INC_INDENT(State)),      State)    ].decompose_requestedActions(asn1_NOVALUE) ->    [];%% %% This in the ABNF: %% at-most-once each of KeepActiveToken , eventDM and eventStream%% at most one of either embedWithSig or embedNoSig but not both%% KeepActiveToken and embedWithSig must not both be present%% %% embedWithSigdecompose_requestedActions(#'RequestedActions'{keepActive        = KA,					       eventDM           = EDM,					       secondEvent       = SE,					       signalsDescriptor = SD})   when KA /= true,       SD /= asn1_NOVALUE, SD /= [] ->%%     d("decompose_requestedActions -> entry with"%%       "~n   EDM: ~p"%%       "~n   SE:  ~p"%%       "~n   SD:  ~p", [EDM, SE, SD]),    [     {[EDM],      fun enc_EventDM/2},     {[{SE, SD}], fun enc_embedWithSig/2}    ];%% embedNoSigdecompose_requestedActions(#'RequestedActions'{keepActive        = KA,					       eventDM           = EDM,					       secondEvent       = SE,					       signalsDescriptor = SD})   when SD == asn1_NOVALUE; SD == [] ->%%     d("decompose_requestedActions -> entry with"%%       "~n   KA:  ~p"%%       "~n   EDM: ~p"%%       "~n   SE:  ~p", [KA, EDM, SE]),    [     {[KA],  fun enc_keepActive/2},     {[EDM], fun enc_EventDM/2},     {[SE],  fun enc_embedNoSig/2}    ];%% Fallback, if everything else failes....decompose_requestedActions(#'RequestedActions'{keepActive        = KA,					       eventDM           = EDM,					       secondEvent       = SE,					       signalsDescriptor = SD}) ->%%     d("decompose_requestedActions -> entry with"%%       "~n   KA:  ~p"%%       "~n   EDM: ~p"%%       "~n   SE:  ~p"%%       "~n   SD:  ~p", [KA, EDM, SE, SD]),    [     {[KA],       fun enc_keepActive/2},     {[EDM],      fun enc_EventDM/2},     {[{SE, SD}], fun enc_embedWithSig/2}    ].enc_embedNoSig(#'SecondEventsDescriptor'{requestID = RID,					 eventList = Evs}, State) ->%%     d("enc_embedNoSig -> entry with"%%       "~n   RID: ~p"%%       "~n   Evs: ~p", [RID, Evs]),    [     ?EmbedToken,     ?LBRKT_INDENT(State),     enc_embedFirst(RID, Evs, ?INC_INDENT(State)),      ?RBRKT_INDENT(State)    ].enc_embedWithSig({asn1_NOVALUE, SD}, State) ->%%     d("enc_embedWithSig -> entry with"%%       "~n   SD:  ~p", [SD]),    [     ?EmbedToken,     ?LBRKT_INDENT(State),     enc_SignalsDescriptor(SD, ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ];enc_embedWithSig({#'SecondEventsDescriptor'{requestID = RID,					    eventList = Evs}, SD}, State) ->%%     d("enc_embedWithSig -> entry with"%%       "~n   RID: ~p"%%       "~n   Evs: ~p"%%       "~n   SD:  ~p", [RID, Evs, SD]),    [     ?EmbedToken,     ?LBRKT_INDENT(State),     enc_SignalsDescriptor(SD, ?INC_INDENT(State)),     ?COMMA_INDENT(?INC_INDENT(State)),      enc_embedFirst(RID, Evs, ?INC_INDENT(State)),      ?RBRKT_INDENT(State)    ].enc_keepActive(Val, _State) ->%%     d("enc_keepActive -> entry with"%%       "~n   Val: ~p", [Val]),    case Val of	true -> [?KeepActiveToken];	false -> []    end.    enc_EventDM({'EventDM',Val}, State) ->    enc_EventDM(Val, State);enc_EventDM({Tag, Val}, State) ->%%     d("enc_EventDM -> entry with"%%       "~n   Tag: ~p"%%       "~n   Val: ~p", [Tag, Val]),    case Tag of	digitMapName ->	    [	     ?DigitMapToken,	     ?EQUAL,	     enc_DigitMapName(Val, State)	    ];	digitMapValue ->	    [	     ?DigitMapToken,	     ?LBRKT_INDENT(State),	     enc_DigitMapValue(Val, ?INC_INDENT(State)),	     ?RBRKT_INDENT(State)	    ];	_ ->	    error({invalid_EventDM_tag, Tag})    end.enc_embedFirst(RID, Evs, State)  when RID /= asn1_NOVALUE, list(Evs), Evs /= [] ->%%     d("enc_embedFirst -> entry with"%%       "~n   RID: ~p"%%       "~n   Evs: ~p", [RID, Evs]),    [     ?EventsToken,     ?EQUAL,     enc_RequestID(RID, State),     ?LBRKT_INDENT(State),     enc_list([{Evs, fun enc_SecondRequestedEvent/2}], ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ];enc_embedFirst(_RID, _Evs, _State) ->%%     d("enc_embedFirst -> entry"),    [     ?EventsToken    ].enc_SecondRequestedEvent(#'SecondRequestedEvent'{pkgdName    = N,						 streamID    = SID,						 evParList   = EPL,						 eventAction = EA}, 			 State) ->%%     d("enc_SecondRequestedEvent -> entry with"%%       "~n   N:   ~p"%%       "~n   SID: ~p"%%       "~n   EPL: ~p"%%       "~n   EA:  ~p", [N, SID, EPL, EA]),        PkgdName = ?META_ENC(event, N),    [     enc_PkgdName(PkgdName, State),     enc_opt_brackets(       enc_list(	 [{[SID], fun enc_eventStream/2},	  {EPL, fun enc_eventOther/2} |	  decompose_secondRequestedActions(EA)],	 ?INC_INDENT(State)),       State)    ].decompose_secondRequestedActions(asn1_NOVALUE) ->    [];decompose_secondRequestedActions(Val)  when record(Val, 'SecondRequestedActions') ->%%     d("decompose_secondRequestedActions -> entry with"%%       "~n   Val: ~p", [Val]),    [     {[Val#'SecondRequestedActions'.keepActive],      fun enc_keepActive/2},     {[Val#'SecondRequestedActions'.eventDM],      fun enc_EventDM/2},     {[Val#'SecondRequestedActions'.signalsDescriptor],      fun enc_embeddedSignalsDescriptor/2}    ].enc_embeddedSignalsDescriptor(Val, State) ->    [     ?EmbedToken,     ?LBRKT_INDENT(State),     enc_SignalsDescriptor(Val, ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].    enc_EventBufferDescriptor({'EventBufferDescriptor',Val}, State) ->    enc_EventBufferDescriptor(Val, State);enc_EventBufferDescriptor([], _State) ->    [     ?EventBufferToken    ];enc_EventBufferDescriptor(EventSpecs, State)   when is_list(EventSpecs) and (length(EventSpecs) >= 1) ->    [     ?EventBufferToken,     ?LBRKT_INDENT(State),     enc_eventSpecs(EventSpecs, ?INC_INDENT(State)),     ?RBRKT_INDENT(State)       ];enc_EventBufferDescriptor(EventSpecs, _State) ->    error({bad_eventSpecs, EventSpecs}).enc_eventSpecs([Mand | Opt], State) ->    [enc_eventSpec(Mand, State),     [[?COMMA_INDENT(State), enc_eventSpec(Val, State)] || Val <- Opt]].enc_eventSpec(#'EventSpec'{eventName    = Name,			   streamID     = SID,			   eventParList = EPL}, State) ->    [     enc_EventName(Name, State),     enc_opt_brackets(       enc_list([{[SID], fun enc_eventStream/2}, 		 {EPL,   fun enc_eventOther/2}],		?INC_INDENT(State)),       State)    ].enc_SignalsDescriptor({'SignalsDescriptor',Val}, State) ->    enc_SignalsDescriptor(Val, State);enc_SignalsDescriptor([], _State) ->    [     ?SignalsToken    ];enc_SignalsDescriptor(List, State) when list(List) ->%     d("enc_SignalsDescriptor -> entry with"%       "~n   List: ~p", [List]),    [     ?SignalsToken,     ?LBRKT_INDENT(State),     enc_list([{List, fun enc_SignalRequest/2}], ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].enc_SignalRequest({'SignalRequest',Val}, State) ->    enc_SignalRequest(Val, State);enc_SignalRequest({Tag, Val}, State) ->%     d("enc_SignalsDescriptor -> entry with"%       "~n   Tag: ~p"%       "~n   Val: ~p", [Tag, Val]),    case Tag of	signal ->	    enc_Signal(Val, State);	seqSigList ->	    enc_SeqSigList(Val, State);	_ ->	    error({invalid_SignalRequest_tag, Tag})    end.enc_SeqSigList(Val, State)  when record(Val, 'SeqSigList') ->    [     ?SignalListToken,     ?EQUAL,     enc_UINT16(Val#'SeqSigList'.id, State),     ?LBRKT_INDENT(State),     enc_list([{Val#'SeqSigList'.signalList, fun enc_Signal/2}],	      ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].enc_Signal(Val, State)  when record(Val, 'Signal') ->    [     enc_SignalName(Val#'Signal'.signalName, State),     enc_opt_brackets(       enc_list([{[Val#'Signal'.streamID],         fun enc_sigStream/2},		 {[Val#'Signal'.sigType],          fun enc_sigSignalType/2},		 {[Val#'Signal'.duration],         fun enc_sigDuration/2},		 {[Val#'Signal'.notifyCompletion], fun enc_notifyCompletion/2},		 {[Val#'Signal'.keepActive],       fun enc_keepActive/2},		 {Val#'Signal'.sigParList,         fun enc_sigOther/2}],		?INC_INDENT(State)),      State)    ].enc_sigStream(Val, State) ->    [     ?StreamToken,     ?EQUAL,      enc_StreamID(Val, State)    ].enc_sigSignalType(Val, State) ->    [     ?SignalTypeToken,     ?EQUAL,     enc_SignalType(Val, State)    ].enc_sigDuration(Val, State) ->    [     ?DurationToken,     ?EQUAL,     enc_UINT16(Val, State)    ].enc_notifyCompletion(List, State) when list(List) ->    [     ?NotifyCompletionToken,     ?EQUAL,     ?LBRKT_INDENT(State),     enc_list([{List, fun enc_notifyCompletionItem/2}], ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].enc_notifyCompletionItem(Val, _State) ->    case Val of	onTimeOut                   -> ?TimeOutToken;        onInterruptByEvent          -> ?InterruptByEventToken;        onInterruptByNewSignalDescr -> ?InterruptByNewSignalsDescrToken;        otherReason                 -> ?OtherReasonToken    end.enc_SignalType({'SignalType',Val}, State) ->    enc_SignalType(Val, State);enc_SignalType(Val, _State) ->    case Val of	brief ->   ?BriefToken;	onOff ->   ?OnOffToken;	timeOut -> ?TimeOutToken    end.enc_SignalName({'SignalName',Val}, State)->    enc_SignalName(Val, State);enc_SignalName(Val, State) ->    PkgdName = ?META_ENC(signal, Val),    enc_PkgdName(PkgdName, State).enc_sigOther(Val, State)  when record(Val, 'SigParameter') ->    [     enc_Name(Val#'SigParameter'.sigParameterName, State),     enc_propertyParmValues(Val#'SigParameter'.value,			    Val#'SigParameter'.extraInfo,			    State)    ].enc_RequestID({'RequestID',Val}, State) ->    enc_RequestID(Val, State);enc_RequestID(Val, _State) when Val == ?megaco_all_request_id ->    "*";enc_RequestID(Val, State) ->    enc_UINT32(Val, State).enc_ModemDescriptor(MD, _State) ->    error({deprecated, MD}).%% Corr1:%% As of corr 1 ModemDescriptor has been deprecated.%% 7.1.2: ...shall not be included as part of a transmitted content and,%%        if received, shall either be ignored or processed at the option%%        of the implementation. ...%% enc_ModemDescriptor(#'ModemDescriptor'{mtl = [Val],%% 				       mpl = [],%% 				       nonStandardData = asn1_NOVALUE},%% 		    State) ->%%     [%%      ?ModemToken,%%      ?EQUAL,%%      enc_ModemType(Val, State)%%     ];%% enc_ModemDescriptor(Val, State)%%   when record(Val, 'ModemDescriptor') ->%%     [%%      ?ModemToken,%%      ?LSBRKT,%%      enc_list([{Val#'ModemDescriptor'.mtl, fun enc_ModemType/2}], State),%%      ?RSBRKT,%%      enc_opt_brackets(%%        enc_list([{Val#'ModemDescriptor'.mpl, fun enc_PropertyParm/2}],%% 		?INC_INDENT(State)),%%        State)%%      %% BUGBUG: Is PropertyParm == NAME parmValue?%%     ].%% enc_ModemDescriptor(Val, State)%%   when record(Val, 'ModemDescriptor') ->%%     [%%      ?ModemToken,%%      %% BUGBUG: Does never generate: EQUAL modemType%%      ?LSBRKT,%%      enc_list([{Val#'ModemDescriptor'.mtl, fun enc_ModemType/2}], State),%%      ?RSBRKT,%%      enc_opt_brackets(%%        enc_list([{Val#'ModemDescriptor'.mpl, fun enc_PropertyParm/2}],%% 		?INC_INDENT(State)),%%        State)%%      %% BUGBUG: Is PropertyParm == NAME parmValue?%%     ].%% Corr1: See ModemDescriptor above%% enc_ModemType({'ModemType',Val}, State)->%%     enc_ModemType(Val, State);%% enc_ModemType(Val, _State) ->%%     %% BUGBUG: Does not handle extensionParameter%%     case Val of%%         v18    	  -> ?V18Token;%%         v22    	  -> ?V22Token;%%         v22bis 	  -> ?V22bisToken;%%         v32    	  -> ?V32Token;%%         v32bis 	  -> ?V32bisToken;%%         v34    	  -> ?V34Token;%%         v90    	  -> ?V90Token;%%         v91    	  -> ?V91Token;%%         synchISDN -> ?SynchISDNToken%%     end.enc_DigitMapDescriptor(Val, State)  when record(Val, 'DigitMapDescriptor') ->    [     ?DigitMapToken,     ?EQUAL,     enc_DigitMapName(Val#'DigitMapDescriptor'.digitMapName, State),     ?LBRKT_INDENT(State),     enc_DigitMapValue(Val#'DigitMapDescriptor'.digitMapValue,		       ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].enc_DigitMapName({'DigitMapName',Val}, State) ->    enc_DigitMapName(Val, State);enc_DigitMapName(Val, State) ->    enc_Name(Val, State).enc_DigitMapValue(Val, State)  when record(Val, 'DigitMapValue') ->    [     enc_timer(Val#'DigitMapValue'.startTimer,     $T, State),     enc_timer(Val#'DigitMapValue'.shortTimer,     $S, State),     enc_timer(Val#'DigitMapValue'.l

⌨️ 快捷键说明

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