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

📄 megaco_binary_transformer_prev3c.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
		      contextList = CtxList2}.tr_opt_ContextAttrAuditRequest(asn1_NOVALUE, _State) ->    asn1_NOVALUE;tr_opt_ContextAttrAuditRequest(CAAR, State) ->    tr_ContextAttrAuditRequest(CAAR, State).tr_ContextAttrAuditRequest(#'ContextAttrAuditRequest'{topology        = Top,						      emergency       = Em,						      priority        = Prio,						      iepscallind     = Ind,						      contextPropAud  = Props,						      selectpriority  = SPrio,						      selectemergency = SEm,						      selectiepscallind = SInd,						      selectLogic     = SLog},                               State) ->    Top2   = tr_opt_null(Top,  State),    Em2    = tr_opt_null(Em,   State),    Prio2  = tr_opt_null(Prio, State),    Ind2   = tr_opt_null(Ind,  State),    Props2 = 	case Props of	    asn1_NOVALUE -> 		asn1_NOVALUE;	    _            -> 		[tr_indAudPropertyParm(Prop, State) || Prop <- Props]	end,    SPrio2 =         case SPrio of            asn1_NOVALUE -> asn1_NOVALUE;            _            -> tr_integer(SPrio, State, 0, 15)        end,    SEm2 =         case SEm of            asn1_NOVALUE -> asn1_NOVALUE;            false        -> false;            true         -> true        end,    SInd2 = 	case SInd of            asn1_NOVALUE -> asn1_NOVALUE;            false        -> false;            true         -> true        end,    SLog2 =         case SLog of            asn1_NOVALUE -> asn1_NOVALUE;            _            -> tr_SelectLogic(SLog, State)        end,    #'ContextAttrAuditRequest'{topology          = Top2,                               emergency         = Em2,                                priority          = Prio2, 			       iepscallind       = Ind2, 			       contextPropAud    = Props2,			       selectpriority    = SPrio2,			       selectemergency   = SEm2,			       selectiepscallind = SInd2,			       selectLogic       = SLog2}.tr_SelectLogic({andAUDITSelect, 'NULL'} = Val, _State) ->    Val;tr_SelectLogic({orAUDITSelect, 'NULL'} = Val, _State) ->    Val.    tr_CommandRequest(#'CommandRequest'{command        = Cmd,                                    optional       = Opt,                                    wildcardReturn = Wild},                  State) ->    #'CommandRequest'{optional       = tr_opt_null(Opt, State),                      wildcardReturn = tr_opt_null(Wild, State),                      command        = tr_Command(Cmd, State)}.tr_Command({Tag, Val}, State) ->    Val2 =         case Tag of            addReq ->            tr_AmmRequest(Val, State);            moveReq ->           tr_AmmRequest(Val, State);            modReq ->            tr_AmmRequest(Val, State);            subtractReq ->       tr_SubtractRequest(Val, State);            auditCapRequest ->   tr_AuditRequest(Val, State);            auditValueRequest -> tr_AuditRequest(Val, State);            notifyReq ->         tr_NotifyRequest(Val, State);            serviceChangeReq ->  tr_ServiceChangeRequest(Val, State)        end,    {Tag, Val2}.tr_CommandReply({Tag, Val}, State) ->    Val2 =         case Tag of            addReply ->           tr_AmmsReply(Val, State);            moveReply ->          tr_AmmsReply(Val, State);            modReply ->           tr_AmmsReply(Val, State);            subtractReply ->      tr_AmmsReply(Val, State);            auditCapReply ->      tr_AuditReply(Val, State);            auditValueReply ->    tr_AuditReply(Val, State);            notifyReply ->        tr_NotifyReply(Val, State);            serviceChangeReply -> tr_ServiceChangeReply(Val, State)        end,    {Tag, Val2}.tr_TopologyRequest(#'TopologyRequest'{terminationFrom            = From,                                      terminationTo              = To,                                      topologyDirection          = Dir,				      streamID                   = SID,				      topologyDirectionExtension = TDE},                   State) ->    Dir2 =         case Dir of            bothway -> bothway;            isolate -> isolate;            oneway ->  oneway        end,    TDE2 = 	case TDE of	    onewayexternal -> onewayexternal;	    onewayboth     -> onewayboth;	    asn1_NOVALUE   -> asn1_NOVALUE	end,    #'TopologyRequest'{terminationFrom   = tr_TerminationID(From, State),                       terminationTo     = tr_TerminationID(To, State),                       topologyDirection = Dir2,		       streamID          = tr_opt_StreamID(SID, State),		       topologyDirectionExtension = TDE2}.tr_AmmRequest(#'AmmRequest'{terminationID = IdList,                            descriptors   = DescList},              State) ->    #'AmmRequest'{terminationID = [tr_TerminationID(Id, State) || 				      Id <- IdList],                  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);	    statisticsDescriptor  -> tr_StatisticsDescriptor(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,				terminationIDList = TIDList},                State) ->    TIDList2 = 	case TIDList of	    asn1_NOVALUE -> asn1_NOVALUE;            _            -> [tr_TerminationID(TID, State) || TID <- TIDList]	end,    #'AuditRequest'{terminationID     = tr_TerminationID(Id, State),                    auditDescriptor   = tr_AuditDescriptor(Desc, State),		    terminationIDList = TIDList2}.%% 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);	    auditResultTermList ->		tr_TermListAuditResult(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_TermListAuditResult(  #'TermListAuditResult'{terminationIDList      = TIDList,			 terminationAuditResult = TAR},  State) ->    TIDList2 = [tr_TerminationID(TID, State) || TID <- TIDList],    TAR2     = tr_TerminationAudit(TAR, State),     #'TermListAuditResult'{terminationIDList      = TIDList2,			   terminationAuditResult = TAR2}.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,					serviceStateSel    = SSS} = Val,    Parms2 = [tr_indAudPropertyParm(Parm, State) || Parm <- Parms],    EBC2   = tr_opt_null(EBC, State),    SS2    = tr_opt_null(SS, State),    SSS2   = tr_opt_ServiceState(SSS, State),    #'IndAudTerminationStateDescriptor'{propertyParms      = Parms2, 					eventBufferControl = EBC2,					serviceState       = SS2,					serviceStateSel    = SSS2}.    tr_indAudStreamParms(#'IndAudStreamParms'{localControlDescriptor = LCD, 					  localDescriptor        = LD, 					  remoteDescriptor       = RD,					  statisticsDescriptor   = SD}, 		     State) ->

⌨️ 快捷键说明

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