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

📄 megaco_binary_transformer_prev3a.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
  when record(Val, 'IndAudLocalControlDescriptor') ->    #'IndAudLocalControlDescriptor'{streamMode    = M,				    reserveValue  = V,				    reserveGroup  = G,				    propertyParms = P} = Val,    M2 = tr_opt_null(M, State),    V2 = tr_opt_null(V, State),    G2 = tr_opt_null(G, State),    P2 = tr_indAudLocalControlDescriptor_propertyParms(P, State),    #'IndAudLocalControlDescriptor'{streamMode    = M2,				    reserveValue  = V2,				    reserveGroup  = G2,				    propertyParms = P2}.tr_indAudLocalControlDescriptor_propertyParms(Parms, State)   when list(Parms), length(Parms) > 0 ->    [tr_indAudPropertyParm(Parm, State) || Parm <- Parms];tr_indAudLocalControlDescriptor_propertyParms(asn1_NOVALUE, _State) ->    asn1_NOVALUE.tr_indAudLocalRemoteDescriptor(#'IndAudLocalRemoteDescriptor'{propGroupID = ID,							      propGrps = Grps},			       State) ->    #'IndAudLocalRemoteDescriptor'{propGroupID = tr_opt_UINT16(ID, State),				   propGrps = tr_indAudPropertyGroup(Grps, 								     State)}.tr_indAudPropertyGroup(Grps, State) when list(Grps) ->    [tr_indAudPropertyParm(Parm, State) || Parm <- Grps].tr_indAudPropertyParm(#'IndAudPropertyParm'{name = Name0}, State) ->    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    Name = resolve(property, Name0, State, Constraint),    #'IndAudPropertyParm'{name = Name}.tr_indAudStreamDescriptor(#'IndAudStreamDescriptor'{streamID = ID,						    streamParms = Parms},			  State) ->    #'IndAudStreamDescriptor'{streamID    = tr_StreamID(ID, State),			      streamParms = tr_indAudStreamParms(Parms, 								 State)}.%% -tr_indAudEventsDescriptor(#'IndAudEventsDescriptor'{requestID = RID,						    pkgdName  = Name0,						    streamID  = SID},			  State) ->    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    Name = resolve(event, Name0, State, Constraint),    #'IndAudEventsDescriptor'{requestID = tr_opt_RequestID(RID, State),			      pkgdName  = Name, 			      streamID  = tr_opt_StreamID(SID, State)}.%% -tr_indAudSignalsDescriptor({Tag, Val}, State) ->    case Tag of	signal ->	    {signal, tr_indAudSignal(Val, State)};	seqSigList ->	    {seqSigList, tr_indAudSeqSigList(Val, State)}    end.tr_opt_indAudSignal(asn1_NOVALUE, _State) ->    asn1_NOVALUE;tr_opt_indAudSignal(Val, State) ->    tr_indAudSignal(Val, State).tr_indAudSignal(#'IndAudSignal'{signalName = Name0,				streamID   = SID}, State) ->    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    Name = resolve(signal, Name0, State, Constraint),    #'IndAudSignal'{signalName = Name, 		    streamID   = tr_opt_StreamID(SID, State)}.tr_indAudSeqSigList(#'IndAudSeqSigList'{id = ID,					signalList = SigList}, State) ->    #'IndAudSeqSigList'{id = tr_integer(ID, State, 0, 65535),			signalList = tr_opt_indAudSignal(SigList, State)}.%% -tr_indAudDigitMapDescriptor(#'IndAudDigitMapDescriptor'{digitMapName = Name},			    State) ->    #'IndAudDigitMapDescriptor'{digitMapName = 				tr_opt_DigitMapName(Name, State)}.%% -tr_indAudEventBufferDescriptor(#'IndAudEventBufferDescriptor'{eventName = N,							      streamID  = SID},			       State) ->    ?d("tr_indAudEventBufferDescriptor -> entry with"       "~n   N:   ~p"       "~n   SID: ~p", [N, SID]),    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    Name = resolve(event, N, State, Constraint),    ?d("tr_indAudEventBufferDescriptor -> entry with"       "~n   Name: ~p", [Name]),    #'IndAudEventBufferDescriptor'{eventName = Name,				   streamID  = tr_opt_StreamID(SID, State)}.%% -tr_indAudStatisticsDescriptor(#'IndAudStatisticsDescriptor'{statName = N},			      State) ->    ?d("tr_indAudEventBufferDescriptor -> entry with"       "~n   N:   ~p", [N]),    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    Name = resolve(statistics, N, State, Constraint),    #'IndAudStatisticsDescriptor'{statName = Name}.%% -tr_indAudPackagesDescriptor(#'IndAudPackagesDescriptor'{packageName    = N,							packageVersion = V}, 			    State) ->    ?d("tr_indAudPackagesDescriptor -> entry with"       "~n   N: ~p"       "~n   V: ~p", [N, V]),    Constraint = fun(Item) -> tr_Name(Item, State) end,    Name = resolve(package, N, State, Constraint),    ?d("tr_indAudPackagesDescriptor -> entry with"       "~n   Name: ~p", [Name]),    #'IndAudPackagesDescriptor'{packageName = Name, 				packageVersion = tr_integer(V, State, 0, 99)}.%% -- v2 end --tr_TerminationAudit(ParmList, State) when list(ParmList) ->    do_tr_TerminationAudit(ParmList, [], State).do_tr_TerminationAudit([], Acc, _State) ->    lists:reverse(Acc);do_tr_TerminationAudit([Parm|ParmList], Acc, State) ->    case tr_AuditReturnParameter(Parm, State) of	{_, deprecated} when State#state.mode == encode ->	    error({deprecated, Parm});	{_, deprecated} when State#state.mode == decode ->	    %% SKIP	    do_tr_TerminationAudit(ParmList, Acc, State);	{_, deprecated} ->	    %% SKIP	    do_tr_TerminationAudit(ParmList, Acc, State);	NewParm ->	    do_tr_TerminationAudit(ParmList, [NewParm|Acc], State)    end.tr_AuditReturnParameter({Tag, Val}, State) ->    Val2 =         case Tag of            errorDescriptor ->                tr_ErrorDescriptor(Val, State);            mediaDescriptor ->                tr_MediaDescriptor(Val, State);            modemDescriptor ->                tr_ModemDescriptor(Val, State);            muxDescriptor ->                tr_MuxDescriptor(Val, State);            eventsDescriptor ->                tr_EventsDescriptor(Val, State);            eventBufferDescriptor ->                tr_EventBufferDescriptor(Val, State);            signalsDescriptor ->                tr_SignalsDescriptor(Val, State);            digitMapDescriptor ->                tr_DigitMapDescriptor(Val, State);            observedEventsDescriptor ->                tr_ObservedEventsDescriptor(Val, State);            statisticsDescriptor ->                tr_StatisticsDescriptor(Val, State);            packagesDescriptor ->                tr_PackagesDescriptor(Val, State);            emptyDescriptors ->                tr_EmptyDescriptors(Val, State)        end,    {Tag, Val2}.tr_EmptyDescriptors(#'AuditDescriptor'{auditToken = Tokens},                    State) ->    case Tokens of        asn1_NOVALUE -> asn1_NOVALUE;        _            -> [tr_auditItem(Token, State) || Token <- Tokens]    end.tr_NotifyRequest(#'NotifyRequest'{terminationID            = IdList,                                  observedEventsDescriptor = ObsDesc,                                  errorDescriptor          = ErrDesc},                 State) ->    %% BUGBUG: Mismatch between ASN.1 and ABNF    %% BUGBUG: The following ought to be a 'choice'    #'NotifyRequest'{terminationID            = [tr_TerminationID(Id, State) ||                                                    Id <- IdList],                     observedEventsDescriptor = tr_ObservedEventsDescriptor(ObsDesc, State),                     errorDescriptor          = tr_opt_ErrorDescriptor(ErrDesc, State)}.tr_NotifyReply(#'NotifyReply'{terminationID   = IdList,                              errorDescriptor = ErrDesc},               State) ->    #'NotifyReply'{terminationID   = [tr_TerminationID(Id, State) || Id <- IdList],                   errorDescriptor = tr_opt_ErrorDescriptor(ErrDesc, State)}.tr_ObservedEventsDescriptor(#'ObservedEventsDescriptor'{requestId        = Id,                                                        observedEventLst = Events},                            State) when list (Events) ->    #'ObservedEventsDescriptor'{requestId        = tr_RequestID(Id, State),                                observedEventLst = [tr_ObservedEvent(E, State) || E <- Events]}.%% ;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 / eventOthertr_ObservedEvent(#'ObservedEvent'{eventName    = Name,                                  streamID     = Id,                                  eventParList = Parms,                                  timeNotation = Time},                 State) ->    #'ObservedEvent'{eventName    = tr_EventName(Name, State),                     streamID     = tr_opt_StreamID(Id, State),                     eventParList = [tr_EventParameter(P, Name, State) || P <- Parms],                     timeNotation = tr_opt_TimeNotation(Time, State)}.tr_EventName(Name, State) ->    Constraint = fun(Item) -> tr_PkgdName(Item, State) end,    resolve(event, Name, State, Constraint).tr_EventParameter(#'EventParameter'{eventParameterName = ParName,                                    value              = Value,				    extraInfo          = Extra},		  EventName,                  State) ->    %% BUGBUG: event parameter name    Constraint = fun(Item) -> tr_Name(Item, State) end,    N = resolve({event_parameter, EventName}, ParName, State, Constraint),    #'EventParameter'{eventParameterName = N,		      value              = tr_Value(Value, State),		      extraInfo          = tr_opt_extraInfo(Extra, State)}.tr_ServiceChangeRequest(#'ServiceChangeRequest'{terminationID      = IdList,                                                serviceChangeParms = Parms},                        State) ->    #'ServiceChangeRequest'{terminationID      = [tr_TerminationID(Id, State) || Id <- IdList],                            serviceChangeParms = tr_ServiceChangeParm(Parms, 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 )tr_ServiceChangeReply(#'ServiceChangeReply'{terminationID       = IdList,                                            serviceChangeResult = Res},                      State) ->    #'ServiceChangeReply'{terminationID       = [tr_TerminationID(Id, State) || Id <- IdList],                          serviceChangeResult = tr_ServiceChangeResult(Res, State)}.tr_ServiceChangeResult({Tag, Val}, State) ->    Val2 =         case Tag of            errorDescriptor       -> tr_ErrorDescriptor(Val, State);            serviceChangeResParms -> tr_ServiceChangeResParm(Val, State)        end,    {Tag, Val2}.%% TerminationID        = "ROOT" / pathNAME / "$" / "*"%% ; Total length of pathNAME must not exceed 64 chars.%% pathNAME             = ["*"] NAME *("/" / "*"/ ALPHA / DIGIT /"_" / "$" ) %%                        ["@" pathDomainName ]tr_TerminationID(TermId, State) when State#state.mode /= verify ->    resolve(term_id, TermId, State, valid);tr_TerminationID(#'TerminationID'{wildcard = Wild,                                  id       = Id},                 _State) ->    #'TerminationID'{wildcard = Wild,                     id       = Id};tr_TerminationID(#megaco_term_id{contains_wildcards = IsWild,                                 id                 = Id},                 State) ->    #megaco_term_id{contains_wildcards = tr_bool(IsWild, State),                    id                 = [tr_term_id_component(Sub, State) || Sub <- Id]}.tr_opt_bool(asn1_NOVALUE, _State) -> asn1_NOVALUE;tr_opt_bool(Bool, State)         -> tr_bool(Bool, State).tr_bool(true, _State)  -> true;tr_bool(false, _State) -> false.tr_term_id_component(Sub, _State) ->    case Sub of        all    -> all;        choose -> 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) RBRKTtr_MediaDescriptor(#'MediaDescriptor'{termStateDescr = TermState,                                      streams        = Streams},                   State) ->    #'MediaDescriptor'{termStateDescr = tr_opt_TerminationStateDescriptor(TermState, State),                       streams        = tr_opt_streams(Streams, State)}.

⌨️ 快捷键说明

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