📄 megaco_text_gen_prev3a.hrl
字号:
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 + -