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 + -
显示快捷键?