megaco_text_gen_v2.hrl
来自「OTP是开放电信平台的简称」· HRL 代码 · 共 2,255 行 · 第 1/5 页
HRL
2,255 行
auditPropertyToken = Prop}, State) -> [ ?AuditToken, [ ?LBRKT_INDENT(State), enc_auditPropertyToken(Prop, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ] ];enc_AuditDescriptor(#'AuditDescriptor'{auditToken = List, auditPropertyToken = Prop}, State) -> [ ?AuditToken, [ ?LBRKT_INDENT(State), enc_list([{List, fun enc_auditItem/2}], ?INC_INDENT(State)), ?COMMA_INDENT(State), enc_auditPropertyToken(Prop, ?INC_INDENT(State)), % v2 ?RBRKT_INDENT(State) ] ].enc_auditItem(signalsToken, _State) -> ?SignalsToken;enc_auditItem(eventBufferToken, _State) -> ?EventBufferToken;enc_auditItem(eventsToken, _State) -> ?EventsToken;enc_auditItem(Val, State) -> enc_auditReturnItem(Val, State).enc_auditReturnItem(muxToken, _State) -> ?MuxToken;enc_auditReturnItem(modemToken, _State) -> ?ModemToken;enc_auditReturnItem(mediaToken, _State) -> ?MediaToken;enc_auditReturnItem(digitMapToken, _State) -> ?DigitMapToken;enc_auditReturnItem(statsToken, _State) -> ?StatsToken;enc_auditReturnItem(observedEventsToken, _State) -> ?ObservedEventsToken;enc_auditReturnItem(packagesToken, _State) -> ?PackagesToken.%% - v2 begin -enc_auditPropertyToken([], _State) -> [];enc_auditPropertyToken([Param | Params], State) -> [enc_IndAudauditReturnParameter(Param, State), [[?COMMA_INDENT(State), enc_IndAudauditReturnParameter(P, State)] || P <- Params]].enc_IndAudauditReturnParameter({Tag, Val}, State) -> case Tag of indAudMediaDescriptor -> enc_IndAudMediaDescriptor(Val, State); indAudEventsDescriptor -> enc_IndAudEventsDescriptor(Val, State); indAudSignalsDescriptor -> enc_IndAudSignalsDescriptor(Val, State); indAudDigitMapDescriptor -> enc_IndAudDigitMapDescriptor(Val, State); indAudEventBufferDescriptor -> enc_IndAudEventBufferDescriptor(Val, State); indAudStatisticsDescriptor -> enc_IndAudStatisticsDescriptor(Val, State); indAudPackagesDescriptor -> enc_IndAudPackagesDescriptor(Val, State); _ -> error({invalid_IndAudauditReturnParameter_tag, Tag}) end.%% The ASN.1 does not limit to just one of termStateDescr or streams,%% but the ABNF seams to do that...enc_IndAudMediaDescriptor(#'IndAudMediaDescriptor'{termStateDescr = asn1_NOVALUE, streams = Val}, State) -> [ ?MediaToken, ?LBRKT_INDENT(State), enc_IndAudMediaDescriptor_streams(Val, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ];enc_IndAudMediaDescriptor(#'IndAudMediaDescriptor'{termStateDescr = Val, streams = asn1_NOVALUE}, State) -> [ ?MediaToken, ?LBRKT_INDENT(State), enc_IndAudTerminationStateDescriptor(Val, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudMediaDescriptor_streams({Tag, Val}, State) -> case Tag of oneStream -> enc_IndAudStreamParms(Val, State); multiStream -> enc_IndAudMediaDescriptor_multiStream(Val, State); _ -> error({invalid_IndAudMediaDescriptor_streams_tag, Tag}) end.enc_IndAudTerminationStateDescriptor( #'IndAudTerminationStateDescriptor'{propertyParms = [], eventBufferControl = asn1_NOVALUE, serviceState = 'NULL'}, _State) -> [ ?TerminationStateToken, ?LBRKT_INDENT(_State), ?ServiceStatesToken, ?RBRKT_INDENT(_State) ];enc_IndAudTerminationStateDescriptor( #'IndAudTerminationStateDescriptor'{propertyParms = [], eventBufferControl = 'NULL', serviceState = asn1_NOVALUE}, _State) -> [ ?TerminationStateToken, ?LBRKT_INDENT(_State), ?BufferToken, ?RBRKT_INDENT(_State) ];enc_IndAudTerminationStateDescriptor( #'IndAudTerminationStateDescriptor'{propertyParms = [Parms], eventBufferControl = asn1_NOVALUE, serviceState = asn1_NOVALUE}, State) -> #'IndAudPropertyParm'{name = Name} = Parms, [ ?TerminationStateToken, ?LBRKT_INDENT(State), enc_PkgdName(Name, State), ?RBRKT_INDENT(State) ].enc_IndAudStreamParms(#'IndAudStreamParms'{localControlDescriptor = Val, localDescriptor = asn1_NOVALUE, remoteDescriptor = asn1_NOVALUE}, State) -> [ enc_IndAudLocalControlDescriptor(Val, ?INC_INDENT(State)) ]. enc_IndAudLocalControlDescriptor(Val, State) when record(Val, 'IndAudLocalControlDescriptor') -> [ ?LocalControlToken, ?LBRKT_INDENT(State), enc_list([{[Val#'IndAudLocalControlDescriptor'.streamMode], fun('NULL', _) -> ?ModeToken end}, {[Val#'IndAudLocalControlDescriptor'.reserveValue], fun('NULL', _) -> ?ReservedValueToken end}, {[Val#'IndAudLocalControlDescriptor'.reserveGroup], fun('NULL', _) -> ?ReservedGroupToken end}, {Val#'IndAudLocalControlDescriptor'.propertyParms, fun enc_IndAudPropertyParm/2}], ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudPropertyParm(#'IndAudPropertyParm'{name = PkgdName}, State) -> enc_PkgdName(PkgdName, State).enc_IndAudMediaDescriptor_multiStream([Val], State) -> [ enc_IndAudStreamDescriptor(Val, ?INC_INDENT(State)) ];enc_IndAudMediaDescriptor_multiStream(Vals, _State) when list(Vals) -> error({invalid_IndAudMediaDescriptor_multiStream_length, Vals});enc_IndAudMediaDescriptor_multiStream(Val, _State) -> error({invalid_IndAudMediaDescriptor_multiStream, Val}).enc_IndAudStreamDescriptor(#'IndAudStreamDescriptor'{streamID = SID, streamParms = Parms}, State) -> [ ?StreamToken, ?EQUAL, enc_StreamID(SID, State), ?LBRKT_INDENT(State), enc_IndAudStreamParms(Parms, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ]. enc_IndAudEventBufferDescriptor(Val, State) when record(Val, 'IndAudEventBufferDescriptor') -> #'IndAudEventBufferDescriptor'{eventName = EvName, streamID = ID} = Val, [ ?EventBufferToken, ?LBRKT_INDENT(State), enc_PkgdName(EvName, State), enc_IndAudEventBufferDescriptor_eventSpec(ID, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudEventBufferDescriptor_eventSpec(asn1_NOVALUE, _State) -> [ ];enc_IndAudEventBufferDescriptor_eventSpec({eventParameterName, ParamName}, State) -> [ ?LBRKT_INDENT(State), enc_Name(ParamName, State), ?RBRKT_INDENT(State) ];enc_IndAudEventBufferDescriptor_eventSpec(ID, State) -> [ ?LBRKT_INDENT(State), enc_eventStream(ID, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudEventsDescriptor(Val, State) when record(Val, 'IndAudEventsDescriptor') -> #'IndAudEventsDescriptor'{requestID = ReqID, pkgdName = Name, streamID = asn1_NOVALUE} = Val, [ ?EventsToken, ?EQUAL, enc_RequestID(ReqID, State), ?LBRKT_INDENT(State), enc_PkgdName(Name, State), ?RBRKT_INDENT(State) ].enc_IndAudSignalsDescriptor(Val, State) -> [ ?SignalsToken, ?LBRKT_INDENT(State), enc_IndAudSignalsDescriptor_value(Val, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudSignalsDescriptor_value({signal, Val}, State) -> enc_IndAudSignal(Val, State);enc_IndAudSignalsDescriptor_value({seqSigList, Val}, State) -> enc_IndAudSeqSigList(Val, State). enc_IndAudSignal(#'IndAudSignal'{signalName = SignalName, streamID = asn1_NOVALUE}, State) -> [ enc_SignalName(SignalName, State) ].enc_IndAudSeqSigList(#'IndAudSeqSigList'{id = ID, signalList = Parm}, State) -> [ ?SignalListToken, ?EQUAL, enc_UINT16(ID, State), ?LBRKT_INDENT(State), enc_IndAudSignal(Parm, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_IndAudDigitMapDescriptor(#'IndAudDigitMapDescriptor'{digitMapName = Name}, State) -> [ ?DigitMapToken, ?EQUAL, enc_DigitMapName(Name, State) ].enc_IndAudStatisticsDescriptor(#'IndAudStatisticsDescriptor'{statName = Name}, State) -> [ ?StatsToken, ?LBRKT_INDENT(State), enc_PkgdName(Name, State), ?RBRKT_INDENT(State) ].enc_IndAudPackagesDescriptor(#'IndAudPackagesDescriptor'{packageName = N, packageVersion = V}, State) -> [ ?PackagesToken, ?LBRKT_INDENT(State), enc_Name(N, State), "-", enc_UINT16(V, State), ?RBRKT_INDENT(State) ].%% - v2 end - enc_TerminationAudit({'TerminationAudit',Val}, State) -> enc_TerminationAudit(Val, State);enc_TerminationAudit([], _State) -> [];enc_TerminationAudit([Mand | Opt], State) -> [enc_AuditReturnParameter(Mand, State), [[?COMMA_INDENT(State), enc_AuditReturnParameter(Val, State)] || Val <- Opt]].enc_AuditReturnParameter({'AuditReturnParameter',Val}, State) -> enc_AuditReturnParameter(Val, State);enc_AuditReturnParameter({Tag, Val}, State) -> case Tag of mediaDescriptor -> enc_MediaDescriptor(Val, State); modemDescriptor -> enc_ModemDescriptor(Val, State); muxDescriptor -> enc_MuxDescriptor(Val, State); eventsDescriptor -> enc_EventsDescriptor(Val, State); signalsDescriptor -> enc_SignalsDescriptor(Val, State); digitMapDescriptor -> enc_DigitMapDescriptor(Val, State); observedEventsDescriptor -> enc_ObservedEventsDescriptor(Val, State); eventBufferDescriptor -> enc_EventBufferDescriptor(Val, State); statisticsDescriptor -> enc_StatisticsDescriptor(Val, State); packagesDescriptor -> enc_PackagesDescriptor(Val, State); errorDescriptor -> enc_ErrorDescriptor(Val, State); emptyDescriptors -> enc_EmptyDescriptors(Val, State); _ -> error({invalid_AuditReturnParameter_tag, Tag}) end.enc_EmptyDescriptors(#'AuditDescriptor'{auditToken = asn1_NOVALUE}, _State) -> [];enc_EmptyDescriptors(#'AuditDescriptor'{auditToken = []}, _State) -> [];enc_EmptyDescriptors(#'AuditDescriptor'{auditToken = List}, State) -> enc_list([{List, fun enc_auditReturnItem/2}], ?INC_INDENT(State)).enc_NotifyRequest(Val, State) when record(Val, 'NotifyRequest') -> [ %% Assume that Token is added elsewhere ?EQUAL, enc_TerminationIDList1(Val#'NotifyRequest'.terminationID, State), ?LBRKT_INDENT(State), %% BUGBUG: Mismatch between ASN.1 and ABNF %% BUGBUG: The following ought to be a 'choice' case Val#'NotifyRequest'.errorDescriptor of asn1_NOVALUE -> OED = Val#'NotifyRequest'.observedEventsDescriptor, enc_ObservedEventsDescriptor(OED, ?INC_INDENT(State)); ErrorDescr -> enc_ErrorDescriptor(ErrorDescr, ?INC_INDENT(State)) end, ?RBRKT_INDENT(State) ].enc_NotifyReply(Val, State) when record(Val, 'NotifyReply') -> [ %% Assume that Token is added elsewhere ?EQUAL, case Val#'NotifyReply'.terminationID of asn1_NOVALUE -> error(asn1_not_compliant_with_abnf); TermId -> enc_TerminationIDList1(TermId, State) end, case Val#'NotifyReply'.errorDescriptor of asn1_NOVALUE -> []; ErrorDescr -> [ ?LBRKT_INDENT(State), enc_ErrorDescriptor(ErrorDescr, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ] end ].enc_ObservedEventsDescriptor(Val, State) when record(Val, 'ObservedEventsDescriptor') -> [ ?ObservedEventsToken, ?EQUAL, enc_RequestID(Val#'ObservedEventsDescriptor'.requestId, State), ?LBRKT_INDENT(State), enc_observedEventsDescriptors(Val#'ObservedEventsDescriptor'.observedEventLst, ?INC_INDENT(State)), ?RBRKT_INDENT(State) ].enc_observedEventsDescriptors([Mand | Opt], State) -> [enc_ObservedEvent(Mand, State), [[?COMMA_INDENT(State), enc_ObservedEvent(Val, State)] || Val <- Opt]].%% ;time per event, because it might be buffered%% observedEvent = [ TimeStamp LWSP COLON] LWSP %% pkgdName [ LBRKT observedEventParameter%% *(COMMA observedEventParameter) RBRKT ]%% %% ;at-most-once eventStream, every eventParameterName at most once%% observedEventParameter = eventStream / eventOtherenc_ObservedEvent(Val, State) when record(Val, 'ObservedEvent') -> [ case Val#'ObservedEvent'.timeNotation of asn1_NOVALUE -> []; TimeStamp -> [ enc_TimeNotation(TimeStamp, State), ?LWSP, ?COLON ] end, ?LWSP, enc_EventName(Val#'ObservedEvent'.eventName, State), enc_opt_brackets( enc_list([{[Val#'ObservedEvent'.streamID], fun enc_eventStream/2}, {Val#'ObservedEvent'.eventParList, fun enc_eventOther/2}], ?INC_INDENT(State)), State) ].enc_EventName({'EventName',Val}, State) -> enc_EventName(Val, State);enc_EventName(Val, State) -> PkgdName = ?META_ENC(event, Val), enc_PkgdName(PkgdName, State).enc_eventStream(Val, State) -> [ ?StreamToken, ?EQUAL, enc_StreamID(Val, State) ].enc_eventOther(#'EventParameter'{eventParameterName = Name, value = Value, extraInfo = Extra}, State) ->
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?