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