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

📄 megaco_binary_transformer_v1.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 4 页
字号:
tr_opt_ContextAttrAuditRequest(asn1_NOVALUE, _State) ->    asn1_NOVALUE;tr_opt_ContextAttrAuditRequest(#'ContextAttrAuditRequest'{topology = Top,                                                          emergency = Em,                                                          priority = Prio},                               State) ->    #'ContextAttrAuditRequest'{topology  = tr_opt_null(Top, State),                               emergency = tr_opt_null(Em, State),                               priority  = tr_opt_null(Prio, State)}.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},                   State) ->    Dir2 =         case Dir of            bothway -> bothway;            isolate -> isolate;            oneway ->  oneway        end,    #'TopologyRequest'{terminationFrom   = tr_TerminationID(From, State),                       terminationTo     = tr_TerminationID(To, State),                       topologyDirection = Dir2}.tr_AmmRequest(#'AmmRequest'{terminationID = IdList,                            descriptors   = DescList},              State) ->    #'AmmRequest'{terminationID = [tr_TerminationID(Id, State) ||                                      Id <- IdList],                  descriptors   = [tr_ammDescriptor(Desc, State) ||                                      Desc <- DescList]}.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).tr_AuditDescriptor(#'AuditDescriptor'{auditToken = Tokens},                   State) ->    Tokens2 = 	case Tokens of	    asn1_NOVALUE -> asn1_NOVALUE;	    _            -> [tr_auditItem(Token, State) || Token <- Tokens]	end,    #'AuditDescriptor'{auditToken = Tokens2}.  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.tr_TerminationAudit(ParmList, State) when list(ParmList) ->    [tr_AuditReturnParameter(Parm, State) || Parm <- ParmList].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

⌨️ 快捷键说明

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