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

📄 megaco_binary_transformer_v2.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 4 页
字号:
                  descriptors   = tr_ammDescriptors(DescList, [], State)}.tr_ammDescriptors([], Acc, _State) ->    lists:reverse(Acc);tr_ammDescriptors([Desc|Descs], Acc, State) ->    case tr_ammDescriptor(Desc, State) of	{_, deprecated} when State#state.mode == encode ->	    ?error({deprecated, Desc});	{_, deprecated} when State#state.mode == decode ->	    %% SKIP	    tr_ammDescriptors(Descs, Acc, State);	{_, deprecated} ->	    %% SKIP	    tr_ammDescriptors(Descs, Acc, State);	NewDesc ->	    tr_ammDescriptors(Descs, [NewDesc|Acc], State)    end.tr_ammDescriptor({Tag, Desc}, State) ->    Desc2 =         case Tag of            mediaDescriptor       -> tr_MediaDescriptor(Desc, State);            modemDescriptor       -> tr_ModemDescriptor(Desc, State);                  muxDescriptor         -> tr_MuxDescriptor(Desc, State);               eventsDescriptor      -> tr_EventsDescriptor(Desc, State);                  eventBufferDescriptor -> tr_EventBufferDescriptor(Desc, State);             signalsDescriptor     -> tr_SignalsDescriptor(Desc, State);                digitMapDescriptor    -> tr_DigitMapDescriptor(Desc, State);                auditDescriptor       -> tr_AuditDescriptor(Desc, State)        end,    {Tag, Desc2}.tr_AmmsReply(#'AmmsReply'{terminationID    = IdList,                          terminationAudit = TermAudit},             State) ->    TermAudit2 =        case TermAudit of            asn1_NOVALUE -> asn1_NOVALUE;            _            -> tr_TerminationAudit(TermAudit, State)        end,    #'AmmsReply'{terminationID    = [tr_TerminationID(Id, State) ||                                        Id <- IdList],                 terminationAudit = TermAudit2}.tr_SubtractRequest(#'SubtractRequest'{terminationID   = IdList,                                      auditDescriptor = Desc},                   State) ->    #'SubtractRequest'{terminationID   = [tr_TerminationID(Id, State) ||                                             Id <- IdList],                       auditDescriptor = tr_opt_AuditDescriptor(Desc, State)}.tr_AuditRequest(#'AuditRequest'{terminationID   = Id,                                auditDescriptor = Desc},                State) ->    #'AuditRequest'{terminationID = tr_TerminationID(Id, State),                    auditDescriptor = tr_AuditDescriptor(Desc, State)}.%% auditReply           = (AuditValueToken / AuditCapToken ) %%                        ( contextTerminationAudit  / auditOther)%% auditOther           = EQUAL TerminationID LBRKT %%                        terminationAudit RBRKT%% terminationAudit     = auditReturnParameter *(COMMA auditReturnParameter) %% %% contextTerminationAudit = EQUAL CtxToken ( terminationIDList / %%                        LBRKT errorDescriptor RBRKT )tr_AuditReply({Tag, Val}, State) ->    Val2 =	case Tag of	    contextAuditResult ->		[tr_TerminationID(Id, State) || Id <- Val];	    error ->		tr_ErrorDescriptor(Val, State);	    auditResult ->		tr_AuditResult(Val, State)	end,    {Tag, Val2}.tr_AuditResult(#'AuditResult'{terminationID          = Id,			      terminationAuditResult = AuditRes},              State) ->    #'AuditResult'{terminationID          = tr_TerminationID(Id, State),		   terminationAuditResult = tr_TerminationAudit(AuditRes, State)}.tr_opt_AuditDescriptor(asn1_NOVALUE, _State) ->    asn1_NOVALUE;tr_opt_AuditDescriptor(Desc, State) ->    tr_AuditDescriptor(Desc, State).%% BUGBUG BUGBUG BUGBUG %% With this construction it is possible to have both auditToken%% and auditPropertyToken, but it is actually valid?tr_AuditDescriptor(#'AuditDescriptor'{auditToken         = Tokens,				      auditPropertyToken = APTs},                   State) ->    Tokens2 = 	case Tokens of	    asn1_NOVALUE -> asn1_NOVALUE;	    _            -> [tr_auditItem(Token, State) || Token <- Tokens]	end,    %% v2    APTs2 = 	case APTs of	    asn1_NOVALUE -> 		asn1_NOVALUE;	    _ -> 		[tr_indAuditParameter(APT, State) || APT <- APTs]	end,    #'AuditDescriptor'{auditToken         = Tokens2,		       auditPropertyToken = APTs2}.  tr_auditItem(Token, _State) ->    case Token of        muxToken            -> muxToken;        modemToken          -> modemToken;        mediaToken          -> mediaToken;        eventsToken         -> eventsToken;        signalsToken        -> signalsToken;        digitMapToken       -> digitMapToken;        statsToken          -> statsToken;        observedEventsToken -> observedEventsToken;        packagesToken       -> packagesToken;        eventBufferToken    -> eventBufferToken    end.%% --- v2 begin ---tr_indAuditParameter({Tag, Val}, State) ->    Val2 = 	case Tag of	    indAudMediaDescriptor       -> 		tr_indAudMediaDescriptor(Val, State);	    indAudEventsDescriptor      -> 		tr_indAudEventsDescriptor(Val, State);	    indAudSignalsDescriptor     -> 		tr_indAudSignalsDescriptor(Val, State);	    indAudDigitMapDescriptor    -> 		tr_indAudDigitMapDescriptor(Val, State);	    indAudEventBufferDescriptor -> 		tr_indAudEventBufferDescriptor(Val, State);	    indAudStatisticsDescriptor  -> 		tr_indAudStatisticsDescriptor(Val, State);	    indAudPackagesDescriptor    -> 		tr_indAudPackagesDescriptor(Val, State)	end,    {Tag, Val2}.%% -tr_indAudMediaDescriptor(#'IndAudMediaDescriptor'{termStateDescr = TSD,						  streams        = S}, 			 State) ->    TSD2 = 	case TSD of	    asn1_NOVALUE -> 		asn1_NOVALUE;	    _ -> 		tr_indAudTerminationStateDescriptor(TSD, State)	end,    S2 = 	case S of	    asn1_NOVALUE -> 		asn1_NOVALUE;	    {oneStream, OS} ->		{oneStream, tr_indAudStreamParms(OS, State)};	    {multiStream, MS} ->		MS2 = [tr_indAudStreamDescriptor(MS1, State) || MS1 <- MS],		{multiStream, MS2}	end,    #'IndAudMediaDescriptor'{termStateDescr = TSD2,			     streams        = S2}.tr_indAudTerminationStateDescriptor(Val, State)   when record(Val, 'IndAudTerminationStateDescriptor') ->    #'IndAudTerminationStateDescriptor'{propertyParms      = Parms,					eventBufferControl = EBC,					serviceState       = SS} = Val,    Parms2 = [tr_indAudPropertyParm(Parm, State) || Parm <- Parms],    EBC2   = tr_opt_null(EBC, State),    SS2    = tr_opt_null(SS, State),    #'IndAudTerminationStateDescriptor'{propertyParms = Parms2, 					eventBufferControl = EBC2,					serviceState       = SS2}.    tr_indAudStreamParms(#'IndAudStreamParms'{localControlDescriptor = LCD, 					  localDescriptor        = LD, 					  remoteDescriptor       = RD}, 		     State) ->    LCD2 = 	case LCD of	    asn1_NOVALUE ->		asn1_NOVALUE;	    _ ->		tr_indAudLocalControlDescriptor(LCD, State)	end,    LD2 = 	case LD of	    asn1_NOVALUE ->		asn1_NOVALUE;	    _ ->		tr_indAudLocalRemoteDescriptor(LD, State)	end,    RD2 = 	case RD of	    asn1_NOVALUE ->		asn1_NOVALUE;	    _ ->		tr_indAudLocalRemoteDescriptor(RD, State)	end,    #'IndAudStreamParms'{localControlDescriptor = LCD2, 			 localDescriptor        = LD2, 			 remoteDescriptor       = RD2}.    tr_indAudLocalControlDescriptor(Val, State)   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) ->%     i("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),%     i("tr_indAudEventBufferDescriptor -> entry with"%       "~n   Name: ~p", [Name]),    #'IndAudEventBufferDescriptor'{eventName = Name,				   streamID  = tr_opt_StreamID(SID, State)}.%% -tr_indAudStatisticsDescriptor(#'IndAudStatisticsDescriptor'{statName = N},			      State) ->%     i("tr_indAudEventBufferDescriptor -> entry with"%       "~n   N:   ~p"%       "~n   SID: ~p", [N, SID]),    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) ->%     i("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),%     i("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 ->

⌨️ 快捷键说明

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