⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_text_gen_prev3a.hrl

📁 OTP是开放电信平台的简称
💻 HRL
📖 第 1 页 / 共 5 页
字号:
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) ->%     d("enc_IndAudStatisticsDescriptor -> entry with"%       "~n   Name: ~p", [Name]),    [     ?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) ->%     d("enc_TerminationAudit -> entry with"%       "~n   Mand: ~p", [Mand]),    [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) ->%     d("enc_AuditReturnParameter -> entry with"%       "~n   Tag: ~p"%       "~n   Val: ~p", [Tag, Val]),    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) ->    [     enc_Name(Name, State),     enc_propertyParmValues(Value, Extra, State)    ].enc_ServiceChangeRequest(Val, State)  when record(Val, 'ServiceChangeRequest') ->    [     %% Assume that Token is added elsewhere     ?EQUAL,     enc_TerminationIDList1(Val#'ServiceChangeRequest'.terminationID, State),     ?LBRKT_INDENT(State),     enc_ServiceChangeParm(Val#'ServiceChangeRequest'.serviceChangeParms,			   ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].%% serviceChangeReply   = ServiceChangeToken EQUAL TerminationID%% 			  [LBRKT (errorDescriptor / %% 			  serviceChangeReplyDescriptor) RBRKT]%% serviceChangeReplyDescriptor = ServicesToken LBRKT%% 			  servChgReplyParm *(COMMA servChgReplyParm) RBRKT%% %% ;at-most-once. Version is REQUIRED on first ServiceChange response%% servChgReplyParm     = (serviceChangeAddress / serviceChangeMgcId /%% 			  serviceChangeProfile / serviceChangeVersion )enc_ServiceChangeReply(Val, State)  when record(Val, 'ServiceChangeReply') ->    [     %% Assume that Token is added elsewhere     ?EQUAL,     enc_TerminationIDList1(Val#'ServiceChangeReply'.terminationID, State),     enc_ServiceChangeResult(Val#'ServiceChangeReply'.serviceChangeResult, State)     ].enc_ServiceChangeResult({'ServiceChangeResult',Val}, State) ->    enc_ServiceChangeResult(Val, State);enc_ServiceChangeResult({Tag, Val}, State) ->    case Tag of	errorDescriptor ->	    [	     ?LBRKT_INDENT(State),	     enc_ErrorDescriptor(Val, ?INC_INDENT(State)),	     ?RBRKT_INDENT(State)	    ];	serviceChangeResParms ->	    case enc_ServiceChangeResParm(Val, ?INC_INDENT(?INC_INDENT(State))) of		[] ->		    [];		ResParms ->		    [		     ?LBRKT_INDENT(State),		     ?ServicesToken,		     fun(_S) ->			     [			      ?LBRKT_INDENT(_S),			      ResParms,			      ?RBRKT_INDENT(_S)			     ]		     end(?INC_INDENT(State)),		     ?RBRKT_INDENT(State)		    ]	    end;	_ ->	    error({invalid_ServiceChangeResult_tag, Tag})    end.%% Required length of termination ID list is 1enc_TerminationIDList1({'TerminationIDList',Val}, State) ->    enc_TerminationIDList1(Val, State);enc_TerminationIDList1([Singleton], State) ->    enc_TerminationID(Singleton, State).%% No required length of termination ID listenc_TerminationIDListN({'TerminationIDList',Val}, State) ->    enc_TerminationIDListN(Val, State);enc_TerminationIDListN([TID], State) ->    [     ?LBRKT_INDENT(State),     enc_TerminationID(TID, State),     ?RBRKT_INDENT(State)    ];enc_TerminationIDListN(TIDs, State) ->    [     ?LBRKT_INDENT(State),     enc_list([{TIDs, fun enc_TerminationID/2}], State),     ?RBRKT_INDENT(State)    ].%% TerminationID        = "ROOT" / pathNAME / "$" / "*"%% ; Total length of pathNAME must not exceed 64 chars.%% pathNAME             = ["*"] NAME *("/" / "*"/ ALPHA / DIGIT /"_" / "$" ) %% 			  ["@" pathDomainName ]enc_TerminationID(Tid, State)  when record(Tid,  megaco_term_id) ->    List = [{Tid#megaco_term_id.id, fun enc_tid_component/2 }],    enc_list(List, State, fun(_S) -> ?SLASH end, false).    enc_tid_component(Component, State) when list(Component) ->    [enc_tid_sub_component(Sub, State) || Sub <- Component];enc_tid_component(Invalid, _State) ->    error({invalid_id_list_component, Invalid}).enc_tid_sub_component(Sub, _State) ->    case Sub of	all    -> ?megaco_all;	choose -> ?megaco_choose;	Char when integer(Char) -> Char    end.%% mediaDescriptor      = MediaToken LBRKT mediaParm *(COMMA mediaParm) RBRKT%% ; at-most-once per item%% ; and either streamParm or streamDescriptor but not both%% mediaParm            = (streamParm / streamDescriptor / %% 			   terminationStateDescriptor)%% ; at-most-once%% streamParm           = ( localDescriptor / remoteDescriptor / %% 			   localControlDescriptor )%% streamDescriptor     = StreamToken EQUAL StreamID LBRKT streamParm %% 			  *(COMMA streamParm) RBRKTenc_MediaDescriptor(Val, State)  when record(Val, 'MediaDescriptor') ->    [     ?MediaToken,     ?LBRKT_INDENT(State),     enc_list([{[Val#'MediaDescriptor'.termStateDescr],		fun enc_TerminationStateDescriptor/2} |	       decompose_streams(Val#'MediaDescriptor'.streams)],	      ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].decompose_streams(asn1_NOVALUE) ->    [];decompose_streams({'MediaDescriptor_streams',Val}) ->    decompose_streams(Val);decompose_streams({Tag, Val}) ->    case Tag of	oneStream ->	    decompose_StreamParms(Val);	multiStream ->	    [{Val, fun enc_StreamDescriptor/2}];	_ ->	    error({invalid_streams_tag, Tag})    end.decompose_StreamParms(Val)  when record(Val, 'StreamParms') ->    [     {[Val#'StreamParms'.localControlDescriptor],      fun enc_LocalControlDescriptor/2},     {[Val#'StreamParms'.localDescriptor],      fun enc_localDescriptor/2},     {[Val#'StreamParms'.remoteDescriptor],      fun enc_remoteDescriptor/2},     {[Val#'StreamParms'.statisticsDescriptor],      fun enc_StatisticsDescriptor/2}    ].enc_StreamDescriptor(Val, State)     when record(Val, 'StreamDescriptor') ->    [     ?StreamToken,     ?EQUAL,     enc_StreamID(Val#'StreamDescriptor'.streamID, State),     ?LBRKT_INDENT(State),     enc_list(decompose_StreamParms(Val#'StreamDescriptor'.streamParms),	      ?INC_INDENT(State)),     ?RBRKT_INDENT(State)    ].%% localControlDescriptor = LocalControlToken LBRKT localParm %% 			    *(COMMA localParm) RBRKT%% %% ; at-most-once per item%% localParm            = ( streamMode / propertyParm /%%                          reservedValueMode  / reservedGroupMode ) %% reservedValueMode       = ReservedValueToken EQUAL ( "ON" / "OFF" ) %% reservedGroupMode       = ReservedGroupToken EQUAL ( "ON" / "OFF" ) %% %% reservedMode	     = ReservedToken EQUAL ( "ON" / "OFF" )%% %% streamMode           = ModeToken EQUAL streamModesenc_LocalControlDescriptor(  #'LocalControlDescriptor'{streamMode    = asn1_NOVALUE, 			    reserveValue  = asn1_NOVALUE, 			    reserveGroup  = asn1_NOVALUE, 			    propertyParms = []}, _State) ->    error({invalid_LocalControlDescriptor, empty});enc_LocalControlDescriptor(  #'LocalControlDescriptor'{streamMode    = SM, 			    reserveValue  = RV, 			    reserveGroup  = RG, 			    propertyParms = PPs}, State) ->    [     ?LocalControlToken,     ?LBRKT_INDENT(State),     enc_list([{[SM], fun enc_StreamMode/2},	       {[RG], fun enc_reservedGroupMode/2},	       {[RV], fun enc_reservedValueMode/2},	       {PPs,  fun enc_PropertyParm/2}], ?INC_INDENT(State)),     ?RBRKT_INDENT(State)

⌨️ 快捷键说明

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